]> git.immae.eu Git - perso/Immae/Projets/packagist/piedsjaloux-ckeditor-component.git/commitdiff
Add oembed 4.7.3
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 4 Dec 2017 16:54:04 +0000 (17:54 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 4 Dec 2017 16:54:04 +0000 (17:54 +0100)
2241 files changed:
build-config.js
release/CHANGES.md
release/LICENSE.md
release/README.md
release/adapters/jquery.js
release/ckeditor.js
release/config.js
release/contents.css
release/lang/en.js
release/lang/fr.js
release/plugins/Audio/dialogs/audio.js [new file with mode: 0644]
release/plugins/Audio/docs/install.html [new file with mode: 0644]
release/plugins/Audio/docs/styles.css [new file with mode: 0644]
release/plugins/Audio/images/audio.png [new file with mode: 0644]
release/plugins/Audio/images/icon.png [new file with mode: 0644]
release/plugins/Audio/images/placeholder.png [new file with mode: 0644]
release/plugins/a11yhelp/dialogs/a11yhelp.js
release/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
release/plugins/a11yhelp/dialogs/lang/af.js
release/plugins/a11yhelp/dialogs/lang/ar.js
release/plugins/a11yhelp/dialogs/lang/az.js [new file with mode: 0644]
release/plugins/a11yhelp/dialogs/lang/bg.js
release/plugins/a11yhelp/dialogs/lang/ca.js
release/plugins/a11yhelp/dialogs/lang/cs.js
release/plugins/a11yhelp/dialogs/lang/cy.js
release/plugins/a11yhelp/dialogs/lang/da.js
release/plugins/a11yhelp/dialogs/lang/de-ch.js
release/plugins/a11yhelp/dialogs/lang/de.js
release/plugins/a11yhelp/dialogs/lang/el.js
release/plugins/a11yhelp/dialogs/lang/en-gb.js
release/plugins/a11yhelp/dialogs/lang/en.js
release/plugins/a11yhelp/dialogs/lang/eo.js
release/plugins/a11yhelp/dialogs/lang/es-mx.js [new file with mode: 0644]
release/plugins/a11yhelp/dialogs/lang/es.js
release/plugins/a11yhelp/dialogs/lang/et.js
release/plugins/a11yhelp/dialogs/lang/eu.js
release/plugins/a11yhelp/dialogs/lang/fa.js
release/plugins/a11yhelp/dialogs/lang/fi.js
release/plugins/a11yhelp/dialogs/lang/fo.js
release/plugins/a11yhelp/dialogs/lang/fr-ca.js
release/plugins/a11yhelp/dialogs/lang/fr.js
release/plugins/a11yhelp/dialogs/lang/gl.js
release/plugins/a11yhelp/dialogs/lang/gu.js
release/plugins/a11yhelp/dialogs/lang/he.js
release/plugins/a11yhelp/dialogs/lang/hi.js
release/plugins/a11yhelp/dialogs/lang/hr.js
release/plugins/a11yhelp/dialogs/lang/hu.js
release/plugins/a11yhelp/dialogs/lang/id.js
release/plugins/a11yhelp/dialogs/lang/it.js
release/plugins/a11yhelp/dialogs/lang/ja.js
release/plugins/a11yhelp/dialogs/lang/km.js
release/plugins/a11yhelp/dialogs/lang/ko.js
release/plugins/a11yhelp/dialogs/lang/ku.js
release/plugins/a11yhelp/dialogs/lang/lt.js
release/plugins/a11yhelp/dialogs/lang/lv.js
release/plugins/a11yhelp/dialogs/lang/mk.js
release/plugins/a11yhelp/dialogs/lang/mn.js
release/plugins/a11yhelp/dialogs/lang/nb.js
release/plugins/a11yhelp/dialogs/lang/nl.js
release/plugins/a11yhelp/dialogs/lang/no.js
release/plugins/a11yhelp/dialogs/lang/oc.js [new file with mode: 0644]
release/plugins/a11yhelp/dialogs/lang/pl.js
release/plugins/a11yhelp/dialogs/lang/pt-br.js
release/plugins/a11yhelp/dialogs/lang/pt.js
release/plugins/a11yhelp/dialogs/lang/ro.js
release/plugins/a11yhelp/dialogs/lang/ru.js
release/plugins/a11yhelp/dialogs/lang/si.js
release/plugins/a11yhelp/dialogs/lang/sk.js
release/plugins/a11yhelp/dialogs/lang/sl.js
release/plugins/a11yhelp/dialogs/lang/sq.js
release/plugins/a11yhelp/dialogs/lang/sr-latn.js
release/plugins/a11yhelp/dialogs/lang/sr.js
release/plugins/a11yhelp/dialogs/lang/sv.js
release/plugins/a11yhelp/dialogs/lang/th.js
release/plugins/a11yhelp/dialogs/lang/tr.js
release/plugins/a11yhelp/dialogs/lang/tt.js
release/plugins/a11yhelp/dialogs/lang/ug.js
release/plugins/a11yhelp/dialogs/lang/uk.js
release/plugins/a11yhelp/dialogs/lang/vi.js
release/plugins/a11yhelp/dialogs/lang/zh-cn.js
release/plugins/a11yhelp/dialogs/lang/zh.js
release/plugins/dialog/dialogDefinition.js
release/plugins/html5video/dialogs/html5video.js [new file with mode: 0644]
release/plugins/icons.png
release/plugins/icons_hidpi.png
release/plugins/iframe/dialogs/iframe.js
release/plugins/image/dialogs/image.js
release/plugins/link/dialogs/anchor.js
release/plugins/link/dialogs/link.js
release/plugins/link/images/anchor.png
release/plugins/link/images/hidpi/anchor.png
release/plugins/liststyle/dialogs/liststyle.js
release/plugins/oembed/LICENSE.md [new file with mode: 0644]
release/plugins/oembed/README.md [new file with mode: 0644]
release/plugins/oembed/libs/jquery.oembed.min.js [new file with mode: 0644]
release/plugins/widget/images/handle.png [new file with mode: 0644]
release/samples/css/samples.css
release/samples/index.html
release/samples/js/sample.js
release/samples/js/sf.js
release/samples/old/ajax.html
release/samples/old/api.html
release/samples/old/appendto.html
release/samples/old/assets/outputxhtml/outputxhtml.css
release/samples/old/assets/posteddata.php
release/samples/old/assets/uilanguages/languages.js
release/samples/old/datafiltering.html
release/samples/old/dialog/assets/my_dialog.js
release/samples/old/dialog/dialog.html
release/samples/old/divreplace.html
release/samples/old/enterkey/enterkey.html
release/samples/old/htmlwriter/outputforflash.html
release/samples/old/htmlwriter/outputhtml.html
release/samples/old/index.html
release/samples/old/inlineall.html
release/samples/old/inlinebycode.html
release/samples/old/inlinetextarea.html
release/samples/old/jquery.html
release/samples/old/magicline/magicline.html
release/samples/old/readonly.html
release/samples/old/replacebyclass.html
release/samples/old/replacebycode.html
release/samples/old/sample.css
release/samples/old/sample.js
release/samples/old/sample_posteddata.php
release/samples/old/tabindex.html
release/samples/old/toolbar/toolbar.html
release/samples/old/uicolor.html
release/samples/old/uilanguages.html
release/samples/old/wysiwygarea/fullpage.html
release/samples/old/xhtmlstyle.html
release/samples/toolbarconfigurator/index.html
release/skins/moono/dialog.css
release/skins/moono/dialog_ie.css
release/skins/moono/dialog_ie7.css
release/skins/moono/dialog_ie8.css
release/skins/moono/dialog_iequirks.css
release/skins/moono/editor.css
release/skins/moono/editor_gecko.css
release/skins/moono/editor_ie.css
release/skins/moono/editor_ie7.css
release/skins/moono/editor_ie8.css
release/skins/moono/editor_iequirks.css
release/skins/moono/icons.png
release/skins/moono/icons_hidpi.png
release/skins/moono/images/anchor.png [new file with mode: 0644]
release/skins/moono/images/close.png
release/skins/moono/images/hidpi/anchor.png [new file with mode: 0644]
release/skins/moono/images/hidpi/close.png
release/skins/moono/images/hidpi/lock-open.png
release/skins/moono/images/hidpi/lock.png
release/skins/moono/images/hidpi/refresh.png
release/skins/moono/images/lock-open.png
release/skins/moono/images/lock.png
release/skins/moono/images/refresh.png
release/skins/moono/readme.md
release/styles.js
sources/CHANGES.md
sources/LICENSE.md
sources/README.md
sources/adapters/jquery.js [new file with mode: 0644]
sources/build-config.js [new file with mode: 0644]
sources/ckeditor.js
sources/config.js
sources/contents.css
sources/core/_bootstrap.js
sources/core/ckeditor.js
sources/core/ckeditor_base.js
sources/core/ckeditor_basic.js
sources/core/command.js
sources/core/commanddefinition.js
sources/core/config.js
sources/core/creators/inline.js
sources/core/creators/themedui.js
sources/core/dataprocessor.js
sources/core/dom.js
sources/core/dom/comment.js
sources/core/dom/document.js
sources/core/dom/documentfragment.js
sources/core/dom/domobject.js
sources/core/dom/element.js
sources/core/dom/elementpath.js
sources/core/dom/event.js
sources/core/dom/iterator.js
sources/core/dom/node.js
sources/core/dom/nodelist.js
sources/core/dom/range.js
sources/core/dom/rangelist.js
sources/core/dom/text.js
sources/core/dom/walker.js
sources/core/dom/window.js
sources/core/dtd.js
sources/core/editable.js
sources/core/editor.js
sources/core/editor_basic.js
sources/core/env.js
sources/core/event.js
sources/core/eventInfo.js
sources/core/filter.js
sources/core/focusmanager.js
sources/core/htmldataprocessor.js
sources/core/htmlparser.js
sources/core/htmlparser/basicwriter.js
sources/core/htmlparser/cdata.js
sources/core/htmlparser/comment.js
sources/core/htmlparser/element.js
sources/core/htmlparser/filter.js
sources/core/htmlparser/fragment.js
sources/core/htmlparser/node.js
sources/core/htmlparser/text.js
sources/core/keystrokehandler.js
sources/core/lang.js
sources/core/loader.js
sources/core/log.js
sources/core/plugindefinition.js
sources/core/plugins.js
sources/core/resourcemanager.js
sources/core/scriptloader.js
sources/core/selection.js
sources/core/skin.js
sources/core/style.js
sources/core/template.js
sources/core/tools.js
sources/core/ui.js
sources/lang/_translationstatus.txt
sources/lang/af.js
sources/lang/ar.js
sources/lang/az.js [new file with mode: 0644]
sources/lang/bg.js
sources/lang/bn.js
sources/lang/bs.js
sources/lang/ca.js
sources/lang/cs.js
sources/lang/cy.js
sources/lang/da.js
sources/lang/de-ch.js
sources/lang/de.js
sources/lang/el.js
sources/lang/en-au.js
sources/lang/en-ca.js
sources/lang/en-gb.js
sources/lang/en.js
sources/lang/eo.js
sources/lang/es-mx.js [new file with mode: 0644]
sources/lang/es.js
sources/lang/et.js
sources/lang/eu.js
sources/lang/fa.js
sources/lang/fi.js
sources/lang/fo.js
sources/lang/fr-ca.js
sources/lang/fr.js
sources/lang/gl.js
sources/lang/gu.js
sources/lang/he.js
sources/lang/hi.js
sources/lang/hr.js
sources/lang/hu.js
sources/lang/id.js
sources/lang/is.js
sources/lang/it.js
sources/lang/ja.js
sources/lang/ka.js
sources/lang/km.js
sources/lang/ko.js
sources/lang/ku.js
sources/lang/lt.js
sources/lang/lv.js
sources/lang/mk.js
sources/lang/mn.js
sources/lang/ms.js
sources/lang/nb.js
sources/lang/nl.js
sources/lang/no.js
sources/lang/oc.js [new file with mode: 0644]
sources/lang/pl.js
sources/lang/pt-br.js
sources/lang/pt.js
sources/lang/ro.js
sources/lang/ru.js
sources/lang/si.js
sources/lang/sk.js
sources/lang/sl.js
sources/lang/sq.js
sources/lang/sr-latn.js
sources/lang/sr.js
sources/lang/sv.js
sources/lang/th.js
sources/lang/tr.js
sources/lang/tt.js
sources/lang/ug.js
sources/lang/uk.js
sources/lang/vi.js
sources/lang/zh-cn.js
sources/lang/zh.js
sources/plugins/Audio/dialogs/audio.js [new file with mode: 0644]
sources/plugins/Audio/docs/install.html [new file with mode: 0644]
sources/plugins/Audio/docs/styles.css [new file with mode: 0644]
sources/plugins/Audio/images/audio.png [new file with mode: 0644]
sources/plugins/Audio/images/icon.png [new file with mode: 0644]
sources/plugins/Audio/images/placeholder.png [new file with mode: 0644]
sources/plugins/Audio/plugin.js [new file with mode: 0644]
sources/plugins/a11yhelp/dialogs/a11yhelp.js
sources/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
sources/plugins/a11yhelp/dialogs/lang/af.js
sources/plugins/a11yhelp/dialogs/lang/ar.js
sources/plugins/a11yhelp/dialogs/lang/az.js [new file with mode: 0644]
sources/plugins/a11yhelp/dialogs/lang/bg.js
sources/plugins/a11yhelp/dialogs/lang/ca.js
sources/plugins/a11yhelp/dialogs/lang/cs.js
sources/plugins/a11yhelp/dialogs/lang/cy.js
sources/plugins/a11yhelp/dialogs/lang/da.js
sources/plugins/a11yhelp/dialogs/lang/de-ch.js
sources/plugins/a11yhelp/dialogs/lang/de.js
sources/plugins/a11yhelp/dialogs/lang/el.js
sources/plugins/a11yhelp/dialogs/lang/en-gb.js
sources/plugins/a11yhelp/dialogs/lang/en.js
sources/plugins/a11yhelp/dialogs/lang/eo.js
sources/plugins/a11yhelp/dialogs/lang/es-mx.js [new file with mode: 0644]
sources/plugins/a11yhelp/dialogs/lang/es.js
sources/plugins/a11yhelp/dialogs/lang/et.js
sources/plugins/a11yhelp/dialogs/lang/eu.js
sources/plugins/a11yhelp/dialogs/lang/fa.js
sources/plugins/a11yhelp/dialogs/lang/fi.js
sources/plugins/a11yhelp/dialogs/lang/fo.js
sources/plugins/a11yhelp/dialogs/lang/fr-ca.js
sources/plugins/a11yhelp/dialogs/lang/fr.js
sources/plugins/a11yhelp/dialogs/lang/gl.js
sources/plugins/a11yhelp/dialogs/lang/gu.js
sources/plugins/a11yhelp/dialogs/lang/he.js
sources/plugins/a11yhelp/dialogs/lang/hi.js
sources/plugins/a11yhelp/dialogs/lang/hr.js
sources/plugins/a11yhelp/dialogs/lang/hu.js
sources/plugins/a11yhelp/dialogs/lang/id.js
sources/plugins/a11yhelp/dialogs/lang/it.js
sources/plugins/a11yhelp/dialogs/lang/ja.js
sources/plugins/a11yhelp/dialogs/lang/km.js
sources/plugins/a11yhelp/dialogs/lang/ko.js
sources/plugins/a11yhelp/dialogs/lang/ku.js
sources/plugins/a11yhelp/dialogs/lang/lt.js
sources/plugins/a11yhelp/dialogs/lang/lv.js
sources/plugins/a11yhelp/dialogs/lang/mk.js
sources/plugins/a11yhelp/dialogs/lang/mn.js
sources/plugins/a11yhelp/dialogs/lang/nb.js
sources/plugins/a11yhelp/dialogs/lang/nl.js
sources/plugins/a11yhelp/dialogs/lang/no.js
sources/plugins/a11yhelp/dialogs/lang/oc.js [new file with mode: 0644]
sources/plugins/a11yhelp/dialogs/lang/pl.js
sources/plugins/a11yhelp/dialogs/lang/pt-br.js
sources/plugins/a11yhelp/dialogs/lang/pt.js
sources/plugins/a11yhelp/dialogs/lang/ro.js
sources/plugins/a11yhelp/dialogs/lang/ru.js
sources/plugins/a11yhelp/dialogs/lang/si.js
sources/plugins/a11yhelp/dialogs/lang/sk.js
sources/plugins/a11yhelp/dialogs/lang/sl.js
sources/plugins/a11yhelp/dialogs/lang/sq.js
sources/plugins/a11yhelp/dialogs/lang/sr-latn.js
sources/plugins/a11yhelp/dialogs/lang/sr.js
sources/plugins/a11yhelp/dialogs/lang/sv.js
sources/plugins/a11yhelp/dialogs/lang/th.js
sources/plugins/a11yhelp/dialogs/lang/tr.js
sources/plugins/a11yhelp/dialogs/lang/tt.js
sources/plugins/a11yhelp/dialogs/lang/ug.js
sources/plugins/a11yhelp/dialogs/lang/uk.js
sources/plugins/a11yhelp/dialogs/lang/vi.js
sources/plugins/a11yhelp/dialogs/lang/zh-cn.js
sources/plugins/a11yhelp/dialogs/lang/zh.js
sources/plugins/a11yhelp/plugin.js
sources/plugins/basicstyles/icons/bold.png
sources/plugins/basicstyles/icons/hidpi/bold.png
sources/plugins/basicstyles/icons/hidpi/italic.png
sources/plugins/basicstyles/icons/hidpi/strike.png
sources/plugins/basicstyles/icons/hidpi/subscript.png
sources/plugins/basicstyles/icons/hidpi/superscript.png
sources/plugins/basicstyles/icons/hidpi/underline.png
sources/plugins/basicstyles/icons/italic.png
sources/plugins/basicstyles/icons/strike.png
sources/plugins/basicstyles/icons/subscript.png
sources/plugins/basicstyles/icons/superscript.png
sources/plugins/basicstyles/icons/underline.png
sources/plugins/basicstyles/lang/af.js
sources/plugins/basicstyles/lang/ar.js
sources/plugins/basicstyles/lang/az.js [new file with mode: 0644]
sources/plugins/basicstyles/lang/bg.js
sources/plugins/basicstyles/lang/bn.js
sources/plugins/basicstyles/lang/bs.js
sources/plugins/basicstyles/lang/ca.js
sources/plugins/basicstyles/lang/cs.js
sources/plugins/basicstyles/lang/cy.js
sources/plugins/basicstyles/lang/da.js
sources/plugins/basicstyles/lang/de-ch.js
sources/plugins/basicstyles/lang/de.js
sources/plugins/basicstyles/lang/el.js
sources/plugins/basicstyles/lang/en-au.js
sources/plugins/basicstyles/lang/en-ca.js
sources/plugins/basicstyles/lang/en-gb.js
sources/plugins/basicstyles/lang/en.js
sources/plugins/basicstyles/lang/eo.js
sources/plugins/basicstyles/lang/es-mx.js [new file with mode: 0644]
sources/plugins/basicstyles/lang/es.js
sources/plugins/basicstyles/lang/et.js
sources/plugins/basicstyles/lang/eu.js
sources/plugins/basicstyles/lang/fa.js
sources/plugins/basicstyles/lang/fi.js
sources/plugins/basicstyles/lang/fo.js
sources/plugins/basicstyles/lang/fr-ca.js
sources/plugins/basicstyles/lang/fr.js
sources/plugins/basicstyles/lang/gl.js
sources/plugins/basicstyles/lang/gu.js
sources/plugins/basicstyles/lang/he.js
sources/plugins/basicstyles/lang/hi.js
sources/plugins/basicstyles/lang/hr.js
sources/plugins/basicstyles/lang/hu.js
sources/plugins/basicstyles/lang/id.js
sources/plugins/basicstyles/lang/is.js
sources/plugins/basicstyles/lang/it.js
sources/plugins/basicstyles/lang/ja.js
sources/plugins/basicstyles/lang/ka.js
sources/plugins/basicstyles/lang/km.js
sources/plugins/basicstyles/lang/ko.js
sources/plugins/basicstyles/lang/ku.js
sources/plugins/basicstyles/lang/lt.js
sources/plugins/basicstyles/lang/lv.js
sources/plugins/basicstyles/lang/mk.js
sources/plugins/basicstyles/lang/mn.js
sources/plugins/basicstyles/lang/ms.js
sources/plugins/basicstyles/lang/nb.js
sources/plugins/basicstyles/lang/nl.js
sources/plugins/basicstyles/lang/no.js
sources/plugins/basicstyles/lang/oc.js [new file with mode: 0644]
sources/plugins/basicstyles/lang/pl.js
sources/plugins/basicstyles/lang/pt-br.js
sources/plugins/basicstyles/lang/pt.js
sources/plugins/basicstyles/lang/ro.js
sources/plugins/basicstyles/lang/ru.js
sources/plugins/basicstyles/lang/si.js
sources/plugins/basicstyles/lang/sk.js
sources/plugins/basicstyles/lang/sl.js
sources/plugins/basicstyles/lang/sq.js
sources/plugins/basicstyles/lang/sr-latn.js
sources/plugins/basicstyles/lang/sr.js
sources/plugins/basicstyles/lang/sv.js
sources/plugins/basicstyles/lang/th.js
sources/plugins/basicstyles/lang/tr.js
sources/plugins/basicstyles/lang/tt.js
sources/plugins/basicstyles/lang/ug.js
sources/plugins/basicstyles/lang/uk.js
sources/plugins/basicstyles/lang/vi.js
sources/plugins/basicstyles/lang/zh-cn.js
sources/plugins/basicstyles/lang/zh.js
sources/plugins/basicstyles/plugin.js
sources/plugins/button/lang/af.js
sources/plugins/button/lang/ar.js
sources/plugins/button/lang/ast.js [deleted file]
sources/plugins/button/lang/az.js [new file with mode: 0644]
sources/plugins/button/lang/bg.js
sources/plugins/button/lang/ca.js
sources/plugins/button/lang/cs.js
sources/plugins/button/lang/da.js
sources/plugins/button/lang/de-ch.js
sources/plugins/button/lang/de.js
sources/plugins/button/lang/el.js
sources/plugins/button/lang/en-gb.js
sources/plugins/button/lang/en.js
sources/plugins/button/lang/eo.js
sources/plugins/button/lang/es-mx.js [new file with mode: 0644]
sources/plugins/button/lang/es.js
sources/plugins/button/lang/eu.js
sources/plugins/button/lang/fa.js
sources/plugins/button/lang/fi.js
sources/plugins/button/lang/fr.js
sources/plugins/button/lang/gl.js
sources/plugins/button/lang/he.js
sources/plugins/button/lang/hr.js [new file with mode: 0644]
sources/plugins/button/lang/hu.js
sources/plugins/button/lang/id.js
sources/plugins/button/lang/it.js
sources/plugins/button/lang/ja.js
sources/plugins/button/lang/km.js
sources/plugins/button/lang/ko.js
sources/plugins/button/lang/ku.js
sources/plugins/button/lang/lt.js
sources/plugins/button/lang/nb.js
sources/plugins/button/lang/nl.js
sources/plugins/button/lang/no.js [new file with mode: 0644]
sources/plugins/button/lang/oc.js [new file with mode: 0644]
sources/plugins/button/lang/pl.js
sources/plugins/button/lang/pt-br.js
sources/plugins/button/lang/pt.js
sources/plugins/button/lang/ro.js
sources/plugins/button/lang/ru.js
sources/plugins/button/lang/sk.js
sources/plugins/button/lang/sl.js
sources/plugins/button/lang/sq.js
sources/plugins/button/lang/sv.js
sources/plugins/button/lang/tr.js
sources/plugins/button/lang/tt.js
sources/plugins/button/lang/ug.js
sources/plugins/button/lang/uk.js
sources/plugins/button/lang/vi.js
sources/plugins/button/lang/zh-cn.js
sources/plugins/button/lang/zh.js
sources/plugins/button/plugin.js
sources/plugins/clipboard/dev/clipboard.html [new file with mode: 0644]
sources/plugins/clipboard/dev/console.js [new file with mode: 0644]
sources/plugins/clipboard/dev/dnd.html [new file with mode: 0644]
sources/plugins/clipboard/icons/copy-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/copy.png [new file with mode: 0644]
sources/plugins/clipboard/icons/cut-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/cut.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/copy-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/copy.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/cut-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/cut.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/paste-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/hidpi/paste.png [new file with mode: 0644]
sources/plugins/clipboard/icons/paste-rtl.png [new file with mode: 0644]
sources/plugins/clipboard/icons/paste.png [new file with mode: 0644]
sources/plugins/clipboard/lang/af.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ar.js [new file with mode: 0644]
sources/plugins/clipboard/lang/az.js [new file with mode: 0644]
sources/plugins/clipboard/lang/bg.js [new file with mode: 0644]
sources/plugins/clipboard/lang/bn.js [new file with mode: 0644]
sources/plugins/clipboard/lang/bs.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ca.js [new file with mode: 0644]
sources/plugins/clipboard/lang/cs.js [new file with mode: 0644]
sources/plugins/clipboard/lang/cy.js [new file with mode: 0644]
sources/plugins/clipboard/lang/da.js [new file with mode: 0644]
sources/plugins/clipboard/lang/de-ch.js [new file with mode: 0644]
sources/plugins/clipboard/lang/de.js [new file with mode: 0644]
sources/plugins/clipboard/lang/el.js [new file with mode: 0644]
sources/plugins/clipboard/lang/en-au.js [new file with mode: 0644]
sources/plugins/clipboard/lang/en-ca.js [new file with mode: 0644]
sources/plugins/clipboard/lang/en-gb.js [new file with mode: 0644]
sources/plugins/clipboard/lang/en.js [new file with mode: 0644]
sources/plugins/clipboard/lang/eo.js [new file with mode: 0644]
sources/plugins/clipboard/lang/es-mx.js [new file with mode: 0644]
sources/plugins/clipboard/lang/es.js [new file with mode: 0644]
sources/plugins/clipboard/lang/et.js [new file with mode: 0644]
sources/plugins/clipboard/lang/eu.js [new file with mode: 0644]
sources/plugins/clipboard/lang/fa.js [new file with mode: 0644]
sources/plugins/clipboard/lang/fi.js [new file with mode: 0644]
sources/plugins/clipboard/lang/fo.js [new file with mode: 0644]
sources/plugins/clipboard/lang/fr-ca.js [new file with mode: 0644]
sources/plugins/clipboard/lang/fr.js [new file with mode: 0644]
sources/plugins/clipboard/lang/gl.js [new file with mode: 0644]
sources/plugins/clipboard/lang/gu.js [new file with mode: 0644]
sources/plugins/clipboard/lang/he.js [new file with mode: 0644]
sources/plugins/clipboard/lang/hi.js [new file with mode: 0644]
sources/plugins/clipboard/lang/hr.js [new file with mode: 0644]
sources/plugins/clipboard/lang/hu.js [new file with mode: 0644]
sources/plugins/clipboard/lang/id.js [new file with mode: 0644]
sources/plugins/clipboard/lang/is.js [new file with mode: 0644]
sources/plugins/clipboard/lang/it.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ja.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ka.js [new file with mode: 0644]
sources/plugins/clipboard/lang/km.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ko.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ku.js [new file with mode: 0644]
sources/plugins/clipboard/lang/lt.js [new file with mode: 0644]
sources/plugins/clipboard/lang/lv.js [new file with mode: 0644]
sources/plugins/clipboard/lang/mk.js [new file with mode: 0644]
sources/plugins/clipboard/lang/mn.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ms.js [new file with mode: 0644]
sources/plugins/clipboard/lang/nb.js [new file with mode: 0644]
sources/plugins/clipboard/lang/nl.js [new file with mode: 0644]
sources/plugins/clipboard/lang/no.js [new file with mode: 0644]
sources/plugins/clipboard/lang/oc.js [new file with mode: 0644]
sources/plugins/clipboard/lang/pl.js [new file with mode: 0644]
sources/plugins/clipboard/lang/pt-br.js [new file with mode: 0644]
sources/plugins/clipboard/lang/pt.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ro.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ru.js [new file with mode: 0644]
sources/plugins/clipboard/lang/si.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sk.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sl.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sq.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sr-latn.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sr.js [new file with mode: 0644]
sources/plugins/clipboard/lang/sv.js [new file with mode: 0644]
sources/plugins/clipboard/lang/th.js [new file with mode: 0644]
sources/plugins/clipboard/lang/tr.js [new file with mode: 0644]
sources/plugins/clipboard/lang/tt.js [new file with mode: 0644]
sources/plugins/clipboard/lang/ug.js [new file with mode: 0644]
sources/plugins/clipboard/lang/uk.js [new file with mode: 0644]
sources/plugins/clipboard/lang/vi.js [new file with mode: 0644]
sources/plugins/clipboard/lang/zh-cn.js [new file with mode: 0644]
sources/plugins/clipboard/lang/zh.js [new file with mode: 0644]
sources/plugins/clipboard/plugin.js [new file with mode: 0644]
sources/plugins/contextmenu/lang/af.js
sources/plugins/contextmenu/lang/ar.js
sources/plugins/contextmenu/lang/az.js [new file with mode: 0644]
sources/plugins/contextmenu/lang/bg.js
sources/plugins/contextmenu/lang/bn.js
sources/plugins/contextmenu/lang/bs.js
sources/plugins/contextmenu/lang/ca.js
sources/plugins/contextmenu/lang/cs.js
sources/plugins/contextmenu/lang/cy.js
sources/plugins/contextmenu/lang/da.js
sources/plugins/contextmenu/lang/de-ch.js
sources/plugins/contextmenu/lang/de.js
sources/plugins/contextmenu/lang/el.js
sources/plugins/contextmenu/lang/en-au.js
sources/plugins/contextmenu/lang/en-ca.js
sources/plugins/contextmenu/lang/en-gb.js
sources/plugins/contextmenu/lang/en.js
sources/plugins/contextmenu/lang/eo.js
sources/plugins/contextmenu/lang/es-mx.js [new file with mode: 0644]
sources/plugins/contextmenu/lang/es.js
sources/plugins/contextmenu/lang/et.js
sources/plugins/contextmenu/lang/eu.js
sources/plugins/contextmenu/lang/fa.js
sources/plugins/contextmenu/lang/fi.js
sources/plugins/contextmenu/lang/fo.js
sources/plugins/contextmenu/lang/fr-ca.js
sources/plugins/contextmenu/lang/fr.js
sources/plugins/contextmenu/lang/gl.js
sources/plugins/contextmenu/lang/gu.js
sources/plugins/contextmenu/lang/he.js
sources/plugins/contextmenu/lang/hi.js
sources/plugins/contextmenu/lang/hr.js
sources/plugins/contextmenu/lang/hu.js
sources/plugins/contextmenu/lang/id.js
sources/plugins/contextmenu/lang/is.js
sources/plugins/contextmenu/lang/it.js
sources/plugins/contextmenu/lang/ja.js
sources/plugins/contextmenu/lang/ka.js
sources/plugins/contextmenu/lang/km.js
sources/plugins/contextmenu/lang/ko.js
sources/plugins/contextmenu/lang/ku.js
sources/plugins/contextmenu/lang/lt.js
sources/plugins/contextmenu/lang/lv.js
sources/plugins/contextmenu/lang/mk.js
sources/plugins/contextmenu/lang/mn.js
sources/plugins/contextmenu/lang/ms.js
sources/plugins/contextmenu/lang/nb.js
sources/plugins/contextmenu/lang/nl.js
sources/plugins/contextmenu/lang/no.js
sources/plugins/contextmenu/lang/oc.js [new file with mode: 0644]
sources/plugins/contextmenu/lang/pl.js
sources/plugins/contextmenu/lang/pt-br.js
sources/plugins/contextmenu/lang/pt.js
sources/plugins/contextmenu/lang/ro.js
sources/plugins/contextmenu/lang/ru.js
sources/plugins/contextmenu/lang/si.js
sources/plugins/contextmenu/lang/sk.js
sources/plugins/contextmenu/lang/sl.js
sources/plugins/contextmenu/lang/sq.js
sources/plugins/contextmenu/lang/sr-latn.js
sources/plugins/contextmenu/lang/sr.js
sources/plugins/contextmenu/lang/sv.js
sources/plugins/contextmenu/lang/th.js
sources/plugins/contextmenu/lang/tr.js
sources/plugins/contextmenu/lang/tt.js
sources/plugins/contextmenu/lang/ug.js
sources/plugins/contextmenu/lang/uk.js
sources/plugins/contextmenu/lang/vi.js
sources/plugins/contextmenu/lang/zh-cn.js
sources/plugins/contextmenu/lang/zh.js
sources/plugins/contextmenu/plugin.js
sources/plugins/dialog/dialogDefinition.js
sources/plugins/dialog/plugin.js
sources/plugins/dialog/samples/assets/my_dialog.js
sources/plugins/dialog/samples/dialog.html
sources/plugins/dialogadvtab/plugin.js
sources/plugins/dialogui/plugin.js
sources/plugins/elementspath/lang/af.js
sources/plugins/elementspath/lang/ar.js
sources/plugins/elementspath/lang/az.js [new file with mode: 0644]
sources/plugins/elementspath/lang/bg.js
sources/plugins/elementspath/lang/bn.js
sources/plugins/elementspath/lang/bs.js
sources/plugins/elementspath/lang/ca.js
sources/plugins/elementspath/lang/cs.js
sources/plugins/elementspath/lang/cy.js
sources/plugins/elementspath/lang/da.js
sources/plugins/elementspath/lang/de-ch.js
sources/plugins/elementspath/lang/de.js
sources/plugins/elementspath/lang/el.js
sources/plugins/elementspath/lang/en-au.js
sources/plugins/elementspath/lang/en-ca.js
sources/plugins/elementspath/lang/en-gb.js
sources/plugins/elementspath/lang/en.js
sources/plugins/elementspath/lang/eo.js
sources/plugins/elementspath/lang/es-mx.js [new file with mode: 0644]
sources/plugins/elementspath/lang/es.js
sources/plugins/elementspath/lang/et.js
sources/plugins/elementspath/lang/eu.js
sources/plugins/elementspath/lang/fa.js
sources/plugins/elementspath/lang/fi.js
sources/plugins/elementspath/lang/fo.js
sources/plugins/elementspath/lang/fr-ca.js
sources/plugins/elementspath/lang/fr.js
sources/plugins/elementspath/lang/gl.js
sources/plugins/elementspath/lang/gu.js
sources/plugins/elementspath/lang/he.js
sources/plugins/elementspath/lang/hi.js
sources/plugins/elementspath/lang/hr.js
sources/plugins/elementspath/lang/hu.js
sources/plugins/elementspath/lang/is.js
sources/plugins/elementspath/lang/it.js
sources/plugins/elementspath/lang/ja.js
sources/plugins/elementspath/lang/ka.js
sources/plugins/elementspath/lang/km.js
sources/plugins/elementspath/lang/ko.js
sources/plugins/elementspath/lang/ku.js
sources/plugins/elementspath/lang/lt.js
sources/plugins/elementspath/lang/lv.js
sources/plugins/elementspath/lang/mk.js
sources/plugins/elementspath/lang/mn.js
sources/plugins/elementspath/lang/ms.js
sources/plugins/elementspath/lang/nb.js
sources/plugins/elementspath/lang/nl.js
sources/plugins/elementspath/lang/no.js
sources/plugins/elementspath/lang/oc.js [new file with mode: 0644]
sources/plugins/elementspath/lang/pl.js
sources/plugins/elementspath/lang/pt-br.js
sources/plugins/elementspath/lang/pt.js
sources/plugins/elementspath/lang/ro.js
sources/plugins/elementspath/lang/ru.js
sources/plugins/elementspath/lang/si.js
sources/plugins/elementspath/lang/sk.js
sources/plugins/elementspath/lang/sl.js
sources/plugins/elementspath/lang/sq.js
sources/plugins/elementspath/lang/sr-latn.js
sources/plugins/elementspath/lang/sr.js
sources/plugins/elementspath/lang/sv.js
sources/plugins/elementspath/lang/th.js
sources/plugins/elementspath/lang/tr.js
sources/plugins/elementspath/lang/tt.js
sources/plugins/elementspath/lang/ug.js
sources/plugins/elementspath/lang/uk.js
sources/plugins/elementspath/lang/vi.js
sources/plugins/elementspath/lang/zh-cn.js
sources/plugins/elementspath/lang/zh.js
sources/plugins/elementspath/plugin.js
sources/plugins/enterkey/plugin.js
sources/plugins/enterkey/samples/enterkey.html
sources/plugins/entities/plugin.js
sources/plugins/fakeobjects/lang/af.js
sources/plugins/fakeobjects/lang/ar.js
sources/plugins/fakeobjects/lang/az.js [new file with mode: 0644]
sources/plugins/fakeobjects/lang/bg.js
sources/plugins/fakeobjects/lang/bn.js
sources/plugins/fakeobjects/lang/bs.js
sources/plugins/fakeobjects/lang/ca.js
sources/plugins/fakeobjects/lang/cs.js
sources/plugins/fakeobjects/lang/cy.js
sources/plugins/fakeobjects/lang/da.js
sources/plugins/fakeobjects/lang/de-ch.js
sources/plugins/fakeobjects/lang/de.js
sources/plugins/fakeobjects/lang/el.js
sources/plugins/fakeobjects/lang/en-au.js
sources/plugins/fakeobjects/lang/en-ca.js
sources/plugins/fakeobjects/lang/en-gb.js
sources/plugins/fakeobjects/lang/en.js
sources/plugins/fakeobjects/lang/eo.js
sources/plugins/fakeobjects/lang/es-mx.js [new file with mode: 0644]
sources/plugins/fakeobjects/lang/es.js
sources/plugins/fakeobjects/lang/et.js
sources/plugins/fakeobjects/lang/eu.js
sources/plugins/fakeobjects/lang/fa.js
sources/plugins/fakeobjects/lang/fi.js
sources/plugins/fakeobjects/lang/fo.js
sources/plugins/fakeobjects/lang/fr-ca.js
sources/plugins/fakeobjects/lang/fr.js
sources/plugins/fakeobjects/lang/gl.js
sources/plugins/fakeobjects/lang/gu.js
sources/plugins/fakeobjects/lang/he.js
sources/plugins/fakeobjects/lang/hi.js
sources/plugins/fakeobjects/lang/hr.js
sources/plugins/fakeobjects/lang/hu.js
sources/plugins/fakeobjects/lang/id.js
sources/plugins/fakeobjects/lang/is.js
sources/plugins/fakeobjects/lang/it.js
sources/plugins/fakeobjects/lang/ja.js
sources/plugins/fakeobjects/lang/ka.js
sources/plugins/fakeobjects/lang/km.js
sources/plugins/fakeobjects/lang/ko.js
sources/plugins/fakeobjects/lang/ku.js
sources/plugins/fakeobjects/lang/lt.js
sources/plugins/fakeobjects/lang/lv.js
sources/plugins/fakeobjects/lang/mk.js
sources/plugins/fakeobjects/lang/mn.js
sources/plugins/fakeobjects/lang/ms.js
sources/plugins/fakeobjects/lang/nb.js
sources/plugins/fakeobjects/lang/nl.js
sources/plugins/fakeobjects/lang/no.js
sources/plugins/fakeobjects/lang/oc.js [new file with mode: 0644]
sources/plugins/fakeobjects/lang/pl.js
sources/plugins/fakeobjects/lang/pt-br.js
sources/plugins/fakeobjects/lang/pt.js
sources/plugins/fakeobjects/lang/ro.js
sources/plugins/fakeobjects/lang/ru.js
sources/plugins/fakeobjects/lang/si.js
sources/plugins/fakeobjects/lang/sk.js
sources/plugins/fakeobjects/lang/sl.js
sources/plugins/fakeobjects/lang/sq.js
sources/plugins/fakeobjects/lang/sr-latn.js
sources/plugins/fakeobjects/lang/sr.js
sources/plugins/fakeobjects/lang/sv.js
sources/plugins/fakeobjects/lang/th.js
sources/plugins/fakeobjects/lang/tr.js
sources/plugins/fakeobjects/lang/tt.js
sources/plugins/fakeobjects/lang/ug.js
sources/plugins/fakeobjects/lang/uk.js
sources/plugins/fakeobjects/lang/vi.js
sources/plugins/fakeobjects/lang/zh-cn.js
sources/plugins/fakeobjects/lang/zh.js
sources/plugins/fakeobjects/plugin.js
sources/plugins/filebrowser/plugin.js
sources/plugins/floatingspace/plugin.js
sources/plugins/floatpanel/plugin.js
sources/plugins/format/lang/af.js
sources/plugins/format/lang/ar.js
sources/plugins/format/lang/az.js [new file with mode: 0644]
sources/plugins/format/lang/bg.js
sources/plugins/format/lang/bn.js
sources/plugins/format/lang/bs.js
sources/plugins/format/lang/ca.js
sources/plugins/format/lang/cs.js
sources/plugins/format/lang/cy.js
sources/plugins/format/lang/da.js
sources/plugins/format/lang/de-ch.js
sources/plugins/format/lang/de.js
sources/plugins/format/lang/el.js
sources/plugins/format/lang/en-au.js
sources/plugins/format/lang/en-ca.js
sources/plugins/format/lang/en-gb.js
sources/plugins/format/lang/en.js
sources/plugins/format/lang/eo.js
sources/plugins/format/lang/es-mx.js [new file with mode: 0644]
sources/plugins/format/lang/es.js
sources/plugins/format/lang/et.js
sources/plugins/format/lang/eu.js
sources/plugins/format/lang/fa.js
sources/plugins/format/lang/fi.js
sources/plugins/format/lang/fo.js
sources/plugins/format/lang/fr-ca.js
sources/plugins/format/lang/fr.js
sources/plugins/format/lang/gl.js
sources/plugins/format/lang/gu.js
sources/plugins/format/lang/he.js
sources/plugins/format/lang/hi.js
sources/plugins/format/lang/hr.js
sources/plugins/format/lang/hu.js
sources/plugins/format/lang/id.js
sources/plugins/format/lang/is.js
sources/plugins/format/lang/it.js
sources/plugins/format/lang/ja.js
sources/plugins/format/lang/ka.js
sources/plugins/format/lang/km.js
sources/plugins/format/lang/ko.js
sources/plugins/format/lang/ku.js
sources/plugins/format/lang/lt.js
sources/plugins/format/lang/lv.js
sources/plugins/format/lang/mk.js
sources/plugins/format/lang/mn.js
sources/plugins/format/lang/ms.js
sources/plugins/format/lang/nb.js
sources/plugins/format/lang/nl.js
sources/plugins/format/lang/no.js
sources/plugins/format/lang/oc.js [new file with mode: 0644]
sources/plugins/format/lang/pl.js
sources/plugins/format/lang/pt-br.js
sources/plugins/format/lang/pt.js
sources/plugins/format/lang/ro.js
sources/plugins/format/lang/ru.js
sources/plugins/format/lang/si.js
sources/plugins/format/lang/sk.js
sources/plugins/format/lang/sl.js
sources/plugins/format/lang/sq.js
sources/plugins/format/lang/sr-latn.js
sources/plugins/format/lang/sr.js
sources/plugins/format/lang/sv.js
sources/plugins/format/lang/th.js
sources/plugins/format/lang/tr.js
sources/plugins/format/lang/tt.js
sources/plugins/format/lang/ug.js
sources/plugins/format/lang/uk.js
sources/plugins/format/lang/vi.js
sources/plugins/format/lang/zh-cn.js
sources/plugins/format/lang/zh.js
sources/plugins/format/plugin.js
sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png
sources/plugins/horizontalrule/icons/horizontalrule.png
sources/plugins/horizontalrule/lang/af.js
sources/plugins/horizontalrule/lang/ar.js
sources/plugins/horizontalrule/lang/az.js [new file with mode: 0644]
sources/plugins/horizontalrule/lang/bg.js
sources/plugins/horizontalrule/lang/bn.js
sources/plugins/horizontalrule/lang/bs.js
sources/plugins/horizontalrule/lang/ca.js
sources/plugins/horizontalrule/lang/cs.js
sources/plugins/horizontalrule/lang/cy.js
sources/plugins/horizontalrule/lang/da.js
sources/plugins/horizontalrule/lang/de-ch.js
sources/plugins/horizontalrule/lang/de.js
sources/plugins/horizontalrule/lang/el.js
sources/plugins/horizontalrule/lang/en-au.js
sources/plugins/horizontalrule/lang/en-ca.js
sources/plugins/horizontalrule/lang/en-gb.js
sources/plugins/horizontalrule/lang/en.js
sources/plugins/horizontalrule/lang/eo.js
sources/plugins/horizontalrule/lang/es-mx.js [new file with mode: 0644]
sources/plugins/horizontalrule/lang/es.js
sources/plugins/horizontalrule/lang/et.js
sources/plugins/horizontalrule/lang/eu.js
sources/plugins/horizontalrule/lang/fa.js
sources/plugins/horizontalrule/lang/fi.js
sources/plugins/horizontalrule/lang/fo.js
sources/plugins/horizontalrule/lang/fr-ca.js
sources/plugins/horizontalrule/lang/fr.js
sources/plugins/horizontalrule/lang/gl.js
sources/plugins/horizontalrule/lang/gu.js
sources/plugins/horizontalrule/lang/he.js
sources/plugins/horizontalrule/lang/hi.js
sources/plugins/horizontalrule/lang/hr.js
sources/plugins/horizontalrule/lang/hu.js
sources/plugins/horizontalrule/lang/id.js
sources/plugins/horizontalrule/lang/is.js
sources/plugins/horizontalrule/lang/it.js
sources/plugins/horizontalrule/lang/ja.js
sources/plugins/horizontalrule/lang/ka.js
sources/plugins/horizontalrule/lang/km.js
sources/plugins/horizontalrule/lang/ko.js
sources/plugins/horizontalrule/lang/ku.js
sources/plugins/horizontalrule/lang/lt.js
sources/plugins/horizontalrule/lang/lv.js
sources/plugins/horizontalrule/lang/mk.js
sources/plugins/horizontalrule/lang/mn.js
sources/plugins/horizontalrule/lang/ms.js
sources/plugins/horizontalrule/lang/nb.js
sources/plugins/horizontalrule/lang/nl.js
sources/plugins/horizontalrule/lang/no.js
sources/plugins/horizontalrule/lang/oc.js [new file with mode: 0644]
sources/plugins/horizontalrule/lang/pl.js
sources/plugins/horizontalrule/lang/pt-br.js
sources/plugins/horizontalrule/lang/pt.js
sources/plugins/horizontalrule/lang/ro.js
sources/plugins/horizontalrule/lang/ru.js
sources/plugins/horizontalrule/lang/si.js
sources/plugins/horizontalrule/lang/sk.js
sources/plugins/horizontalrule/lang/sl.js
sources/plugins/horizontalrule/lang/sq.js
sources/plugins/horizontalrule/lang/sr-latn.js
sources/plugins/horizontalrule/lang/sr.js
sources/plugins/horizontalrule/lang/sv.js
sources/plugins/horizontalrule/lang/th.js
sources/plugins/horizontalrule/lang/tr.js
sources/plugins/horizontalrule/lang/tt.js
sources/plugins/horizontalrule/lang/ug.js
sources/plugins/horizontalrule/lang/uk.js
sources/plugins/horizontalrule/lang/vi.js
sources/plugins/horizontalrule/lang/zh-cn.js
sources/plugins/horizontalrule/lang/zh.js
sources/plugins/horizontalrule/plugin.js
sources/plugins/html5video/dialogs/html5video.js [new file with mode: 0644]
sources/plugins/html5video/icons/html5video.png [new file with mode: 0644]
sources/plugins/html5video/lang/de.js [new file with mode: 0644]
sources/plugins/html5video/lang/en.js [new file with mode: 0644]
sources/plugins/html5video/lang/es.js [new file with mode: 0644]
sources/plugins/html5video/lang/eu.js [new file with mode: 0644]
sources/plugins/html5video/lang/fr.js [new file with mode: 0644]
sources/plugins/html5video/lang/ru.js [new file with mode: 0644]
sources/plugins/html5video/lang/uk.js [new file with mode: 0644]
sources/plugins/html5video/lang/uz.js [new file with mode: 0644]
sources/plugins/html5video/plugin.js [new file with mode: 0644]
sources/plugins/htmlwriter/plugin.js
sources/plugins/htmlwriter/samples/outputforflash.html
sources/plugins/htmlwriter/samples/outputhtml.html
sources/plugins/iframe/dialogs/iframe.js
sources/plugins/iframe/icons/hidpi/iframe.png
sources/plugins/iframe/icons/iframe.png
sources/plugins/iframe/lang/af.js
sources/plugins/iframe/lang/ar.js
sources/plugins/iframe/lang/az.js [new file with mode: 0644]
sources/plugins/iframe/lang/bg.js
sources/plugins/iframe/lang/bn.js
sources/plugins/iframe/lang/bs.js
sources/plugins/iframe/lang/ca.js
sources/plugins/iframe/lang/cs.js
sources/plugins/iframe/lang/cy.js
sources/plugins/iframe/lang/da.js
sources/plugins/iframe/lang/de-ch.js
sources/plugins/iframe/lang/de.js
sources/plugins/iframe/lang/el.js
sources/plugins/iframe/lang/en-au.js
sources/plugins/iframe/lang/en-ca.js
sources/plugins/iframe/lang/en-gb.js
sources/plugins/iframe/lang/en.js
sources/plugins/iframe/lang/eo.js
sources/plugins/iframe/lang/es-mx.js [new file with mode: 0644]
sources/plugins/iframe/lang/es.js
sources/plugins/iframe/lang/et.js
sources/plugins/iframe/lang/eu.js
sources/plugins/iframe/lang/fa.js
sources/plugins/iframe/lang/fi.js
sources/plugins/iframe/lang/fo.js
sources/plugins/iframe/lang/fr-ca.js
sources/plugins/iframe/lang/fr.js
sources/plugins/iframe/lang/gl.js
sources/plugins/iframe/lang/gu.js
sources/plugins/iframe/lang/he.js
sources/plugins/iframe/lang/hi.js
sources/plugins/iframe/lang/hr.js
sources/plugins/iframe/lang/hu.js
sources/plugins/iframe/lang/id.js
sources/plugins/iframe/lang/is.js
sources/plugins/iframe/lang/it.js
sources/plugins/iframe/lang/ja.js
sources/plugins/iframe/lang/ka.js
sources/plugins/iframe/lang/km.js
sources/plugins/iframe/lang/ko.js
sources/plugins/iframe/lang/ku.js
sources/plugins/iframe/lang/lt.js
sources/plugins/iframe/lang/lv.js
sources/plugins/iframe/lang/mk.js
sources/plugins/iframe/lang/mn.js
sources/plugins/iframe/lang/ms.js
sources/plugins/iframe/lang/nb.js
sources/plugins/iframe/lang/nl.js
sources/plugins/iframe/lang/no.js
sources/plugins/iframe/lang/oc.js [new file with mode: 0644]
sources/plugins/iframe/lang/pl.js
sources/plugins/iframe/lang/pt-br.js
sources/plugins/iframe/lang/pt.js
sources/plugins/iframe/lang/ro.js
sources/plugins/iframe/lang/ru.js
sources/plugins/iframe/lang/si.js
sources/plugins/iframe/lang/sk.js
sources/plugins/iframe/lang/sl.js
sources/plugins/iframe/lang/sq.js
sources/plugins/iframe/lang/sr-latn.js
sources/plugins/iframe/lang/sr.js
sources/plugins/iframe/lang/sv.js
sources/plugins/iframe/lang/th.js
sources/plugins/iframe/lang/tr.js
sources/plugins/iframe/lang/tt.js
sources/plugins/iframe/lang/ug.js
sources/plugins/iframe/lang/uk.js
sources/plugins/iframe/lang/vi.js
sources/plugins/iframe/lang/zh-cn.js
sources/plugins/iframe/lang/zh.js
sources/plugins/iframe/plugin.js
sources/plugins/image/dialogs/image.js
sources/plugins/image/icons/hidpi/image.png
sources/plugins/image/icons/image.png
sources/plugins/image/lang/af.js
sources/plugins/image/lang/ar.js
sources/plugins/image/lang/az.js [new file with mode: 0644]
sources/plugins/image/lang/bg.js
sources/plugins/image/lang/bn.js
sources/plugins/image/lang/bs.js
sources/plugins/image/lang/ca.js
sources/plugins/image/lang/cs.js
sources/plugins/image/lang/cy.js
sources/plugins/image/lang/da.js
sources/plugins/image/lang/de-ch.js
sources/plugins/image/lang/de.js
sources/plugins/image/lang/el.js
sources/plugins/image/lang/en-au.js
sources/plugins/image/lang/en-ca.js
sources/plugins/image/lang/en-gb.js
sources/plugins/image/lang/en.js
sources/plugins/image/lang/eo.js
sources/plugins/image/lang/es-mx.js [new file with mode: 0644]
sources/plugins/image/lang/es.js
sources/plugins/image/lang/et.js
sources/plugins/image/lang/eu.js
sources/plugins/image/lang/fa.js
sources/plugins/image/lang/fi.js
sources/plugins/image/lang/fo.js
sources/plugins/image/lang/fr-ca.js
sources/plugins/image/lang/fr.js
sources/plugins/image/lang/gl.js
sources/plugins/image/lang/gu.js
sources/plugins/image/lang/he.js
sources/plugins/image/lang/hi.js
sources/plugins/image/lang/hr.js
sources/plugins/image/lang/hu.js
sources/plugins/image/lang/id.js
sources/plugins/image/lang/is.js
sources/plugins/image/lang/it.js
sources/plugins/image/lang/ja.js
sources/plugins/image/lang/ka.js
sources/plugins/image/lang/km.js
sources/plugins/image/lang/ko.js
sources/plugins/image/lang/ku.js
sources/plugins/image/lang/lt.js
sources/plugins/image/lang/lv.js
sources/plugins/image/lang/mk.js
sources/plugins/image/lang/mn.js
sources/plugins/image/lang/ms.js
sources/plugins/image/lang/nb.js
sources/plugins/image/lang/nl.js
sources/plugins/image/lang/no.js
sources/plugins/image/lang/oc.js [new file with mode: 0644]
sources/plugins/image/lang/pl.js
sources/plugins/image/lang/pt-br.js
sources/plugins/image/lang/pt.js
sources/plugins/image/lang/ro.js
sources/plugins/image/lang/ru.js
sources/plugins/image/lang/si.js
sources/plugins/image/lang/sk.js
sources/plugins/image/lang/sl.js
sources/plugins/image/lang/sq.js
sources/plugins/image/lang/sr-latn.js
sources/plugins/image/lang/sr.js
sources/plugins/image/lang/sv.js
sources/plugins/image/lang/th.js
sources/plugins/image/lang/tr.js
sources/plugins/image/lang/tt.js
sources/plugins/image/lang/ug.js
sources/plugins/image/lang/uk.js
sources/plugins/image/lang/vi.js
sources/plugins/image/lang/zh-cn.js
sources/plugins/image/lang/zh.js
sources/plugins/image/plugin.js
sources/plugins/indent/dev/indent.html
sources/plugins/indent/icons/hidpi/indent-rtl.png
sources/plugins/indent/icons/hidpi/indent.png
sources/plugins/indent/icons/hidpi/outdent-rtl.png
sources/plugins/indent/icons/hidpi/outdent.png
sources/plugins/indent/icons/indent-rtl.png
sources/plugins/indent/icons/indent.png
sources/plugins/indent/icons/outdent-rtl.png
sources/plugins/indent/icons/outdent.png
sources/plugins/indent/lang/af.js
sources/plugins/indent/lang/ar.js
sources/plugins/indent/lang/az.js [new file with mode: 0644]
sources/plugins/indent/lang/bg.js
sources/plugins/indent/lang/bn.js
sources/plugins/indent/lang/bs.js
sources/plugins/indent/lang/ca.js
sources/plugins/indent/lang/cs.js
sources/plugins/indent/lang/cy.js
sources/plugins/indent/lang/da.js
sources/plugins/indent/lang/de-ch.js
sources/plugins/indent/lang/de.js
sources/plugins/indent/lang/el.js
sources/plugins/indent/lang/en-au.js
sources/plugins/indent/lang/en-ca.js
sources/plugins/indent/lang/en-gb.js
sources/plugins/indent/lang/en.js
sources/plugins/indent/lang/eo.js
sources/plugins/indent/lang/es-mx.js [new file with mode: 0644]
sources/plugins/indent/lang/es.js
sources/plugins/indent/lang/et.js
sources/plugins/indent/lang/eu.js
sources/plugins/indent/lang/fa.js
sources/plugins/indent/lang/fi.js
sources/plugins/indent/lang/fo.js
sources/plugins/indent/lang/fr-ca.js
sources/plugins/indent/lang/fr.js
sources/plugins/indent/lang/gl.js
sources/plugins/indent/lang/gu.js
sources/plugins/indent/lang/he.js
sources/plugins/indent/lang/hi.js
sources/plugins/indent/lang/hr.js
sources/plugins/indent/lang/hu.js
sources/plugins/indent/lang/id.js
sources/plugins/indent/lang/is.js
sources/plugins/indent/lang/it.js
sources/plugins/indent/lang/ja.js
sources/plugins/indent/lang/ka.js
sources/plugins/indent/lang/km.js
sources/plugins/indent/lang/ko.js
sources/plugins/indent/lang/ku.js
sources/plugins/indent/lang/lt.js
sources/plugins/indent/lang/lv.js
sources/plugins/indent/lang/mk.js
sources/plugins/indent/lang/mn.js
sources/plugins/indent/lang/ms.js
sources/plugins/indent/lang/nb.js
sources/plugins/indent/lang/nl.js
sources/plugins/indent/lang/no.js
sources/plugins/indent/lang/oc.js [new file with mode: 0644]
sources/plugins/indent/lang/pl.js
sources/plugins/indent/lang/pt-br.js
sources/plugins/indent/lang/pt.js
sources/plugins/indent/lang/ro.js
sources/plugins/indent/lang/ru.js
sources/plugins/indent/lang/si.js
sources/plugins/indent/lang/sk.js
sources/plugins/indent/lang/sl.js
sources/plugins/indent/lang/sq.js
sources/plugins/indent/lang/sr-latn.js
sources/plugins/indent/lang/sr.js
sources/plugins/indent/lang/sv.js
sources/plugins/indent/lang/th.js
sources/plugins/indent/lang/tr.js
sources/plugins/indent/lang/tt.js
sources/plugins/indent/lang/ug.js
sources/plugins/indent/lang/uk.js
sources/plugins/indent/lang/vi.js
sources/plugins/indent/lang/zh-cn.js
sources/plugins/indent/lang/zh.js
sources/plugins/indent/plugin.js
sources/plugins/indentblock/plugin.js
sources/plugins/indentlist/plugin.js
sources/plugins/justify/icons/hidpi/justifyblock.png
sources/plugins/justify/icons/hidpi/justifycenter.png
sources/plugins/justify/icons/hidpi/justifyleft.png
sources/plugins/justify/icons/hidpi/justifyright.png
sources/plugins/justify/icons/justifyblock.png
sources/plugins/justify/icons/justifycenter.png
sources/plugins/justify/icons/justifyleft.png
sources/plugins/justify/icons/justifyright.png
sources/plugins/justify/lang/af.js
sources/plugins/justify/lang/ar.js
sources/plugins/justify/lang/az.js [new file with mode: 0644]
sources/plugins/justify/lang/bg.js
sources/plugins/justify/lang/bn.js
sources/plugins/justify/lang/bs.js
sources/plugins/justify/lang/ca.js
sources/plugins/justify/lang/cs.js
sources/plugins/justify/lang/cy.js
sources/plugins/justify/lang/da.js
sources/plugins/justify/lang/de-ch.js
sources/plugins/justify/lang/de.js
sources/plugins/justify/lang/el.js
sources/plugins/justify/lang/en-au.js
sources/plugins/justify/lang/en-ca.js
sources/plugins/justify/lang/en-gb.js
sources/plugins/justify/lang/en.js
sources/plugins/justify/lang/eo.js
sources/plugins/justify/lang/es-mx.js [new file with mode: 0644]
sources/plugins/justify/lang/es.js
sources/plugins/justify/lang/et.js
sources/plugins/justify/lang/eu.js
sources/plugins/justify/lang/fa.js
sources/plugins/justify/lang/fi.js
sources/plugins/justify/lang/fo.js
sources/plugins/justify/lang/fr-ca.js
sources/plugins/justify/lang/fr.js
sources/plugins/justify/lang/gl.js
sources/plugins/justify/lang/gu.js
sources/plugins/justify/lang/he.js
sources/plugins/justify/lang/hi.js
sources/plugins/justify/lang/hr.js
sources/plugins/justify/lang/hu.js
sources/plugins/justify/lang/id.js
sources/plugins/justify/lang/is.js
sources/plugins/justify/lang/it.js
sources/plugins/justify/lang/ja.js
sources/plugins/justify/lang/ka.js
sources/plugins/justify/lang/km.js
sources/plugins/justify/lang/ko.js
sources/plugins/justify/lang/ku.js
sources/plugins/justify/lang/lt.js
sources/plugins/justify/lang/lv.js
sources/plugins/justify/lang/mk.js
sources/plugins/justify/lang/mn.js
sources/plugins/justify/lang/ms.js
sources/plugins/justify/lang/nb.js
sources/plugins/justify/lang/nl.js
sources/plugins/justify/lang/no.js
sources/plugins/justify/lang/oc.js [new file with mode: 0644]
sources/plugins/justify/lang/pl.js
sources/plugins/justify/lang/pt-br.js
sources/plugins/justify/lang/pt.js
sources/plugins/justify/lang/ro.js
sources/plugins/justify/lang/ru.js
sources/plugins/justify/lang/si.js
sources/plugins/justify/lang/sk.js
sources/plugins/justify/lang/sl.js
sources/plugins/justify/lang/sq.js
sources/plugins/justify/lang/sr-latn.js
sources/plugins/justify/lang/sr.js
sources/plugins/justify/lang/sv.js
sources/plugins/justify/lang/th.js
sources/plugins/justify/lang/tr.js
sources/plugins/justify/lang/tt.js
sources/plugins/justify/lang/ug.js
sources/plugins/justify/lang/uk.js
sources/plugins/justify/lang/vi.js
sources/plugins/justify/lang/zh-cn.js
sources/plugins/justify/lang/zh.js
sources/plugins/justify/plugin.js
sources/plugins/lineutils/dev/dnd.html [new file with mode: 0644]
sources/plugins/lineutils/dev/magicfinger.html [new file with mode: 0644]
sources/plugins/lineutils/plugin.js [new file with mode: 0644]
sources/plugins/link/dialogs/anchor.js
sources/plugins/link/dialogs/link.js
sources/plugins/link/icons/anchor-rtl.png
sources/plugins/link/icons/anchor.png
sources/plugins/link/icons/hidpi/anchor-rtl.png
sources/plugins/link/icons/hidpi/anchor.png
sources/plugins/link/icons/hidpi/link.png
sources/plugins/link/icons/hidpi/unlink.png
sources/plugins/link/icons/link.png
sources/plugins/link/icons/unlink.png
sources/plugins/link/images/anchor.png
sources/plugins/link/images/hidpi/anchor.png
sources/plugins/link/lang/af.js
sources/plugins/link/lang/ar.js
sources/plugins/link/lang/az.js [new file with mode: 0644]
sources/plugins/link/lang/bg.js
sources/plugins/link/lang/bn.js
sources/plugins/link/lang/bs.js
sources/plugins/link/lang/ca.js
sources/plugins/link/lang/cs.js
sources/plugins/link/lang/cy.js
sources/plugins/link/lang/da.js
sources/plugins/link/lang/de-ch.js
sources/plugins/link/lang/de.js
sources/plugins/link/lang/el.js
sources/plugins/link/lang/en-au.js
sources/plugins/link/lang/en-ca.js
sources/plugins/link/lang/en-gb.js
sources/plugins/link/lang/en.js
sources/plugins/link/lang/eo.js
sources/plugins/link/lang/es-mx.js [new file with mode: 0644]
sources/plugins/link/lang/es.js
sources/plugins/link/lang/et.js
sources/plugins/link/lang/eu.js
sources/plugins/link/lang/fa.js
sources/plugins/link/lang/fi.js
sources/plugins/link/lang/fo.js
sources/plugins/link/lang/fr-ca.js
sources/plugins/link/lang/fr.js
sources/plugins/link/lang/gl.js
sources/plugins/link/lang/gu.js
sources/plugins/link/lang/he.js
sources/plugins/link/lang/hi.js
sources/plugins/link/lang/hr.js
sources/plugins/link/lang/hu.js
sources/plugins/link/lang/id.js
sources/plugins/link/lang/is.js
sources/plugins/link/lang/it.js
sources/plugins/link/lang/ja.js
sources/plugins/link/lang/ka.js
sources/plugins/link/lang/km.js
sources/plugins/link/lang/ko.js
sources/plugins/link/lang/ku.js
sources/plugins/link/lang/lt.js
sources/plugins/link/lang/lv.js
sources/plugins/link/lang/mk.js
sources/plugins/link/lang/mn.js
sources/plugins/link/lang/ms.js
sources/plugins/link/lang/nb.js
sources/plugins/link/lang/nl.js
sources/plugins/link/lang/no.js
sources/plugins/link/lang/oc.js [new file with mode: 0644]
sources/plugins/link/lang/pl.js
sources/plugins/link/lang/pt-br.js
sources/plugins/link/lang/pt.js
sources/plugins/link/lang/ro.js
sources/plugins/link/lang/ru.js
sources/plugins/link/lang/si.js
sources/plugins/link/lang/sk.js
sources/plugins/link/lang/sl.js
sources/plugins/link/lang/sq.js
sources/plugins/link/lang/sr-latn.js
sources/plugins/link/lang/sr.js
sources/plugins/link/lang/sv.js
sources/plugins/link/lang/th.js
sources/plugins/link/lang/tr.js
sources/plugins/link/lang/tt.js
sources/plugins/link/lang/ug.js
sources/plugins/link/lang/uk.js
sources/plugins/link/lang/vi.js
sources/plugins/link/lang/zh-cn.js
sources/plugins/link/lang/zh.js
sources/plugins/link/plugin.js
sources/plugins/list/icons/bulletedlist-rtl.png
sources/plugins/list/icons/bulletedlist.png
sources/plugins/list/icons/hidpi/bulletedlist-rtl.png
sources/plugins/list/icons/hidpi/bulletedlist.png
sources/plugins/list/icons/hidpi/numberedlist-rtl.png
sources/plugins/list/icons/hidpi/numberedlist.png
sources/plugins/list/icons/numberedlist-rtl.png
sources/plugins/list/icons/numberedlist.png
sources/plugins/list/lang/af.js
sources/plugins/list/lang/ar.js
sources/plugins/list/lang/az.js [new file with mode: 0644]
sources/plugins/list/lang/bg.js
sources/plugins/list/lang/bn.js
sources/plugins/list/lang/bs.js
sources/plugins/list/lang/ca.js
sources/plugins/list/lang/cs.js
sources/plugins/list/lang/cy.js
sources/plugins/list/lang/da.js
sources/plugins/list/lang/de-ch.js
sources/plugins/list/lang/de.js
sources/plugins/list/lang/el.js
sources/plugins/list/lang/en-au.js
sources/plugins/list/lang/en-ca.js
sources/plugins/list/lang/en-gb.js
sources/plugins/list/lang/en.js
sources/plugins/list/lang/eo.js
sources/plugins/list/lang/es-mx.js [new file with mode: 0644]
sources/plugins/list/lang/es.js
sources/plugins/list/lang/et.js
sources/plugins/list/lang/eu.js
sources/plugins/list/lang/fa.js
sources/plugins/list/lang/fi.js
sources/plugins/list/lang/fo.js
sources/plugins/list/lang/fr-ca.js
sources/plugins/list/lang/fr.js
sources/plugins/list/lang/gl.js
sources/plugins/list/lang/gu.js
sources/plugins/list/lang/he.js
sources/plugins/list/lang/hi.js
sources/plugins/list/lang/hr.js
sources/plugins/list/lang/hu.js
sources/plugins/list/lang/id.js
sources/plugins/list/lang/is.js
sources/plugins/list/lang/it.js
sources/plugins/list/lang/ja.js
sources/plugins/list/lang/ka.js
sources/plugins/list/lang/km.js
sources/plugins/list/lang/ko.js
sources/plugins/list/lang/ku.js
sources/plugins/list/lang/lt.js
sources/plugins/list/lang/lv.js
sources/plugins/list/lang/mk.js
sources/plugins/list/lang/mn.js
sources/plugins/list/lang/ms.js
sources/plugins/list/lang/nb.js
sources/plugins/list/lang/nl.js
sources/plugins/list/lang/no.js
sources/plugins/list/lang/oc.js [new file with mode: 0644]
sources/plugins/list/lang/pl.js
sources/plugins/list/lang/pt-br.js
sources/plugins/list/lang/pt.js
sources/plugins/list/lang/ro.js
sources/plugins/list/lang/ru.js
sources/plugins/list/lang/si.js
sources/plugins/list/lang/sk.js
sources/plugins/list/lang/sl.js
sources/plugins/list/lang/sq.js
sources/plugins/list/lang/sr-latn.js
sources/plugins/list/lang/sr.js
sources/plugins/list/lang/sv.js
sources/plugins/list/lang/th.js
sources/plugins/list/lang/tr.js
sources/plugins/list/lang/tt.js
sources/plugins/list/lang/ug.js
sources/plugins/list/lang/uk.js
sources/plugins/list/lang/vi.js
sources/plugins/list/lang/zh-cn.js
sources/plugins/list/lang/zh.js
sources/plugins/list/plugin.js
sources/plugins/listblock/plugin.js
sources/plugins/liststyle/dialogs/liststyle.js
sources/plugins/liststyle/lang/af.js
sources/plugins/liststyle/lang/ar.js
sources/plugins/liststyle/lang/az.js [new file with mode: 0644]
sources/plugins/liststyle/lang/bg.js
sources/plugins/liststyle/lang/bn.js
sources/plugins/liststyle/lang/bs.js
sources/plugins/liststyle/lang/ca.js
sources/plugins/liststyle/lang/cs.js
sources/plugins/liststyle/lang/cy.js
sources/plugins/liststyle/lang/da.js
sources/plugins/liststyle/lang/de-ch.js
sources/plugins/liststyle/lang/de.js
sources/plugins/liststyle/lang/el.js
sources/plugins/liststyle/lang/en-au.js
sources/plugins/liststyle/lang/en-ca.js
sources/plugins/liststyle/lang/en-gb.js
sources/plugins/liststyle/lang/en.js
sources/plugins/liststyle/lang/eo.js
sources/plugins/liststyle/lang/es-mx.js [new file with mode: 0644]
sources/plugins/liststyle/lang/es.js
sources/plugins/liststyle/lang/et.js
sources/plugins/liststyle/lang/eu.js
sources/plugins/liststyle/lang/fa.js
sources/plugins/liststyle/lang/fi.js
sources/plugins/liststyle/lang/fo.js
sources/plugins/liststyle/lang/fr-ca.js
sources/plugins/liststyle/lang/fr.js
sources/plugins/liststyle/lang/gl.js
sources/plugins/liststyle/lang/gu.js
sources/plugins/liststyle/lang/he.js
sources/plugins/liststyle/lang/hi.js
sources/plugins/liststyle/lang/hr.js
sources/plugins/liststyle/lang/hu.js
sources/plugins/liststyle/lang/id.js
sources/plugins/liststyle/lang/is.js
sources/plugins/liststyle/lang/it.js
sources/plugins/liststyle/lang/ja.js
sources/plugins/liststyle/lang/ka.js
sources/plugins/liststyle/lang/km.js
sources/plugins/liststyle/lang/ko.js
sources/plugins/liststyle/lang/ku.js
sources/plugins/liststyle/lang/lt.js
sources/plugins/liststyle/lang/lv.js
sources/plugins/liststyle/lang/mk.js
sources/plugins/liststyle/lang/mn.js
sources/plugins/liststyle/lang/ms.js
sources/plugins/liststyle/lang/nb.js
sources/plugins/liststyle/lang/nl.js
sources/plugins/liststyle/lang/no.js
sources/plugins/liststyle/lang/oc.js [new file with mode: 0644]
sources/plugins/liststyle/lang/pl.js
sources/plugins/liststyle/lang/pt-br.js
sources/plugins/liststyle/lang/pt.js
sources/plugins/liststyle/lang/ro.js
sources/plugins/liststyle/lang/ru.js
sources/plugins/liststyle/lang/si.js
sources/plugins/liststyle/lang/sk.js
sources/plugins/liststyle/lang/sl.js
sources/plugins/liststyle/lang/sq.js
sources/plugins/liststyle/lang/sr-latn.js
sources/plugins/liststyle/lang/sr.js
sources/plugins/liststyle/lang/sv.js
sources/plugins/liststyle/lang/th.js
sources/plugins/liststyle/lang/tr.js
sources/plugins/liststyle/lang/tt.js
sources/plugins/liststyle/lang/ug.js
sources/plugins/liststyle/lang/uk.js
sources/plugins/liststyle/lang/vi.js
sources/plugins/liststyle/lang/zh-cn.js
sources/plugins/liststyle/lang/zh.js
sources/plugins/liststyle/plugin.js
sources/plugins/magicline/dev/magicline.html
sources/plugins/magicline/lang/af.js
sources/plugins/magicline/lang/ar.js
sources/plugins/magicline/lang/az.js [new file with mode: 0644]
sources/plugins/magicline/lang/bg.js
sources/plugins/magicline/lang/ca.js
sources/plugins/magicline/lang/cs.js
sources/plugins/magicline/lang/cy.js
sources/plugins/magicline/lang/da.js
sources/plugins/magicline/lang/de-ch.js
sources/plugins/magicline/lang/de.js
sources/plugins/magicline/lang/el.js
sources/plugins/magicline/lang/en-gb.js
sources/plugins/magicline/lang/en.js
sources/plugins/magicline/lang/eo.js
sources/plugins/magicline/lang/es-mx.js [new file with mode: 0644]
sources/plugins/magicline/lang/es.js
sources/plugins/magicline/lang/et.js
sources/plugins/magicline/lang/eu.js
sources/plugins/magicline/lang/fa.js
sources/plugins/magicline/lang/fi.js
sources/plugins/magicline/lang/fr-ca.js
sources/plugins/magicline/lang/fr.js
sources/plugins/magicline/lang/gl.js
sources/plugins/magicline/lang/he.js
sources/plugins/magicline/lang/hr.js
sources/plugins/magicline/lang/hu.js
sources/plugins/magicline/lang/id.js
sources/plugins/magicline/lang/it.js
sources/plugins/magicline/lang/ja.js
sources/plugins/magicline/lang/km.js
sources/plugins/magicline/lang/ko.js
sources/plugins/magicline/lang/ku.js
sources/plugins/magicline/lang/lv.js
sources/plugins/magicline/lang/nb.js
sources/plugins/magicline/lang/nl.js
sources/plugins/magicline/lang/no.js
sources/plugins/magicline/lang/oc.js [new file with mode: 0644]
sources/plugins/magicline/lang/pl.js
sources/plugins/magicline/lang/pt-br.js
sources/plugins/magicline/lang/pt.js
sources/plugins/magicline/lang/ru.js
sources/plugins/magicline/lang/si.js
sources/plugins/magicline/lang/sk.js
sources/plugins/magicline/lang/sl.js
sources/plugins/magicline/lang/sq.js
sources/plugins/magicline/lang/sv.js
sources/plugins/magicline/lang/tr.js
sources/plugins/magicline/lang/tt.js
sources/plugins/magicline/lang/ug.js
sources/plugins/magicline/lang/uk.js
sources/plugins/magicline/lang/vi.js
sources/plugins/magicline/lang/zh-cn.js
sources/plugins/magicline/lang/zh.js
sources/plugins/magicline/plugin.js
sources/plugins/magicline/samples/magicline.html
sources/plugins/maximize/icons/hidpi/maximize.png
sources/plugins/maximize/icons/maximize.png
sources/plugins/maximize/lang/af.js
sources/plugins/maximize/lang/ar.js
sources/plugins/maximize/lang/az.js [new file with mode: 0644]
sources/plugins/maximize/lang/bg.js
sources/plugins/maximize/lang/bn.js
sources/plugins/maximize/lang/bs.js
sources/plugins/maximize/lang/ca.js
sources/plugins/maximize/lang/cs.js
sources/plugins/maximize/lang/cy.js
sources/plugins/maximize/lang/da.js
sources/plugins/maximize/lang/de-ch.js
sources/plugins/maximize/lang/de.js
sources/plugins/maximize/lang/el.js
sources/plugins/maximize/lang/en-au.js
sources/plugins/maximize/lang/en-ca.js
sources/plugins/maximize/lang/en-gb.js
sources/plugins/maximize/lang/en.js
sources/plugins/maximize/lang/eo.js
sources/plugins/maximize/lang/es-mx.js [new file with mode: 0644]
sources/plugins/maximize/lang/es.js
sources/plugins/maximize/lang/et.js
sources/plugins/maximize/lang/eu.js
sources/plugins/maximize/lang/fa.js
sources/plugins/maximize/lang/fi.js
sources/plugins/maximize/lang/fo.js
sources/plugins/maximize/lang/fr-ca.js
sources/plugins/maximize/lang/fr.js
sources/plugins/maximize/lang/gl.js
sources/plugins/maximize/lang/gu.js
sources/plugins/maximize/lang/he.js
sources/plugins/maximize/lang/hi.js
sources/plugins/maximize/lang/hr.js
sources/plugins/maximize/lang/hu.js
sources/plugins/maximize/lang/id.js
sources/plugins/maximize/lang/is.js
sources/plugins/maximize/lang/it.js
sources/plugins/maximize/lang/ja.js
sources/plugins/maximize/lang/ka.js
sources/plugins/maximize/lang/km.js
sources/plugins/maximize/lang/ko.js
sources/plugins/maximize/lang/ku.js
sources/plugins/maximize/lang/lt.js
sources/plugins/maximize/lang/lv.js
sources/plugins/maximize/lang/mk.js
sources/plugins/maximize/lang/mn.js
sources/plugins/maximize/lang/ms.js
sources/plugins/maximize/lang/nb.js
sources/plugins/maximize/lang/nl.js
sources/plugins/maximize/lang/no.js
sources/plugins/maximize/lang/oc.js [new file with mode: 0644]
sources/plugins/maximize/lang/pl.js
sources/plugins/maximize/lang/pt-br.js
sources/plugins/maximize/lang/pt.js
sources/plugins/maximize/lang/ro.js
sources/plugins/maximize/lang/ru.js
sources/plugins/maximize/lang/si.js
sources/plugins/maximize/lang/sk.js
sources/plugins/maximize/lang/sl.js
sources/plugins/maximize/lang/sq.js
sources/plugins/maximize/lang/sr-latn.js
sources/plugins/maximize/lang/sr.js
sources/plugins/maximize/lang/sv.js
sources/plugins/maximize/lang/th.js
sources/plugins/maximize/lang/tr.js
sources/plugins/maximize/lang/tt.js
sources/plugins/maximize/lang/ug.js
sources/plugins/maximize/lang/uk.js
sources/plugins/maximize/lang/vi.js
sources/plugins/maximize/lang/zh-cn.js
sources/plugins/maximize/lang/zh.js
sources/plugins/maximize/plugin.js
sources/plugins/menu/plugin.js
sources/plugins/notification/lang/az.js [new file with mode: 0644]
sources/plugins/notification/lang/ca.js [new file with mode: 0644]
sources/plugins/notification/lang/cs.js [new file with mode: 0644]
sources/plugins/notification/lang/da.js [new file with mode: 0644]
sources/plugins/notification/lang/de-ch.js [new file with mode: 0644]
sources/plugins/notification/lang/de.js [new file with mode: 0644]
sources/plugins/notification/lang/en.js [new file with mode: 0644]
sources/plugins/notification/lang/eo.js [new file with mode: 0644]
sources/plugins/notification/lang/es-mx.js [new file with mode: 0644]
sources/plugins/notification/lang/es.js [new file with mode: 0644]
sources/plugins/notification/lang/eu.js [new file with mode: 0644]
sources/plugins/notification/lang/fr.js [new file with mode: 0644]
sources/plugins/notification/lang/gl.js [new file with mode: 0644]
sources/plugins/notification/lang/hr.js [new file with mode: 0644]
sources/plugins/notification/lang/hu.js [new file with mode: 0644]
sources/plugins/notification/lang/id.js [new file with mode: 0644]
sources/plugins/notification/lang/it.js [new file with mode: 0644]
sources/plugins/notification/lang/ja.js [new file with mode: 0644]
sources/plugins/notification/lang/km.js [new file with mode: 0644]
sources/plugins/notification/lang/ko.js [new file with mode: 0644]
sources/plugins/notification/lang/ku.js [new file with mode: 0644]
sources/plugins/notification/lang/nb.js [new file with mode: 0644]
sources/plugins/notification/lang/nl.js [new file with mode: 0644]
sources/plugins/notification/lang/oc.js [new file with mode: 0644]
sources/plugins/notification/lang/pl.js [new file with mode: 0644]
sources/plugins/notification/lang/pt-br.js [new file with mode: 0644]
sources/plugins/notification/lang/pt.js [new file with mode: 0644]
sources/plugins/notification/lang/ru.js [new file with mode: 0644]
sources/plugins/notification/lang/sk.js [new file with mode: 0644]
sources/plugins/notification/lang/sv.js [new file with mode: 0644]
sources/plugins/notification/lang/tr.js [new file with mode: 0644]
sources/plugins/notification/lang/ug.js [new file with mode: 0644]
sources/plugins/notification/lang/uk.js [new file with mode: 0644]
sources/plugins/notification/lang/zh-cn.js [new file with mode: 0644]
sources/plugins/notification/lang/zh.js [new file with mode: 0644]
sources/plugins/notification/plugin.js [new file with mode: 0644]
sources/plugins/oembed/LICENSE.md [new file with mode: 0644]
sources/plugins/oembed/README.md [new file with mode: 0644]
sources/plugins/oembed/icons/hidpi/oembed.png [new file with mode: 0644]
sources/plugins/oembed/icons/oembed.png [new file with mode: 0644]
sources/plugins/oembed/lang/de.js [new file with mode: 0644]
sources/plugins/oembed/lang/en.js [new file with mode: 0644]
sources/plugins/oembed/lang/fr.js [new file with mode: 0644]
sources/plugins/oembed/lang/nl.js [new file with mode: 0644]
sources/plugins/oembed/lang/pl.js [new file with mode: 0644]
sources/plugins/oembed/lang/pt-br.js [new file with mode: 0644]
sources/plugins/oembed/lang/ru.js [new file with mode: 0644]
sources/plugins/oembed/lang/tr.js [new file with mode: 0644]
sources/plugins/oembed/libs/jquery.oembed.min.js [new file with mode: 0644]
sources/plugins/oembed/plugin.js [new file with mode: 0644]
sources/plugins/panel/plugin.js
sources/plugins/popup/plugin.js
sources/plugins/removeformat/icons/hidpi/removeformat.png
sources/plugins/removeformat/icons/removeformat.png
sources/plugins/removeformat/lang/af.js
sources/plugins/removeformat/lang/ar.js
sources/plugins/removeformat/lang/az.js [new file with mode: 0644]
sources/plugins/removeformat/lang/bg.js
sources/plugins/removeformat/lang/bn.js
sources/plugins/removeformat/lang/bs.js
sources/plugins/removeformat/lang/ca.js
sources/plugins/removeformat/lang/cs.js
sources/plugins/removeformat/lang/cy.js
sources/plugins/removeformat/lang/da.js
sources/plugins/removeformat/lang/de-ch.js
sources/plugins/removeformat/lang/de.js
sources/plugins/removeformat/lang/el.js
sources/plugins/removeformat/lang/en-au.js
sources/plugins/removeformat/lang/en-ca.js
sources/plugins/removeformat/lang/en-gb.js
sources/plugins/removeformat/lang/en.js
sources/plugins/removeformat/lang/eo.js
sources/plugins/removeformat/lang/es-mx.js [new file with mode: 0644]
sources/plugins/removeformat/lang/es.js
sources/plugins/removeformat/lang/et.js
sources/plugins/removeformat/lang/eu.js
sources/plugins/removeformat/lang/fa.js
sources/plugins/removeformat/lang/fi.js
sources/plugins/removeformat/lang/fo.js
sources/plugins/removeformat/lang/fr-ca.js
sources/plugins/removeformat/lang/fr.js
sources/plugins/removeformat/lang/gl.js
sources/plugins/removeformat/lang/gu.js
sources/plugins/removeformat/lang/he.js
sources/plugins/removeformat/lang/hi.js
sources/plugins/removeformat/lang/hr.js
sources/plugins/removeformat/lang/hu.js
sources/plugins/removeformat/lang/id.js
sources/plugins/removeformat/lang/is.js
sources/plugins/removeformat/lang/it.js
sources/plugins/removeformat/lang/ja.js
sources/plugins/removeformat/lang/ka.js
sources/plugins/removeformat/lang/km.js
sources/plugins/removeformat/lang/ko.js
sources/plugins/removeformat/lang/ku.js
sources/plugins/removeformat/lang/lt.js
sources/plugins/removeformat/lang/lv.js
sources/plugins/removeformat/lang/mk.js
sources/plugins/removeformat/lang/mn.js
sources/plugins/removeformat/lang/ms.js
sources/plugins/removeformat/lang/nb.js
sources/plugins/removeformat/lang/nl.js
sources/plugins/removeformat/lang/no.js
sources/plugins/removeformat/lang/oc.js [new file with mode: 0644]
sources/plugins/removeformat/lang/pl.js
sources/plugins/removeformat/lang/pt-br.js
sources/plugins/removeformat/lang/pt.js
sources/plugins/removeformat/lang/ro.js
sources/plugins/removeformat/lang/ru.js
sources/plugins/removeformat/lang/si.js
sources/plugins/removeformat/lang/sk.js
sources/plugins/removeformat/lang/sl.js
sources/plugins/removeformat/lang/sq.js
sources/plugins/removeformat/lang/sr-latn.js
sources/plugins/removeformat/lang/sr.js
sources/plugins/removeformat/lang/sv.js
sources/plugins/removeformat/lang/th.js
sources/plugins/removeformat/lang/tr.js
sources/plugins/removeformat/lang/tt.js
sources/plugins/removeformat/lang/ug.js
sources/plugins/removeformat/lang/uk.js
sources/plugins/removeformat/lang/vi.js
sources/plugins/removeformat/lang/zh-cn.js
sources/plugins/removeformat/lang/zh.js
sources/plugins/removeformat/plugin.js
sources/plugins/resize/plugin.js
sources/plugins/richcombo/plugin.js
sources/plugins/showborders/plugin.js
sources/plugins/sourcearea/icons/hidpi/source-rtl.png
sources/plugins/sourcearea/icons/hidpi/source.png
sources/plugins/sourcearea/icons/source-rtl.png
sources/plugins/sourcearea/icons/source.png
sources/plugins/sourcearea/lang/af.js
sources/plugins/sourcearea/lang/ar.js
sources/plugins/sourcearea/lang/az.js [new file with mode: 0644]
sources/plugins/sourcearea/lang/bg.js
sources/plugins/sourcearea/lang/bn.js
sources/plugins/sourcearea/lang/bs.js
sources/plugins/sourcearea/lang/ca.js
sources/plugins/sourcearea/lang/cs.js
sources/plugins/sourcearea/lang/cy.js
sources/plugins/sourcearea/lang/da.js
sources/plugins/sourcearea/lang/de-ch.js
sources/plugins/sourcearea/lang/de.js
sources/plugins/sourcearea/lang/el.js
sources/plugins/sourcearea/lang/en-au.js
sources/plugins/sourcearea/lang/en-ca.js
sources/plugins/sourcearea/lang/en-gb.js
sources/plugins/sourcearea/lang/en.js
sources/plugins/sourcearea/lang/eo.js
sources/plugins/sourcearea/lang/es-mx.js [new file with mode: 0644]
sources/plugins/sourcearea/lang/es.js
sources/plugins/sourcearea/lang/et.js
sources/plugins/sourcearea/lang/eu.js
sources/plugins/sourcearea/lang/fa.js
sources/plugins/sourcearea/lang/fi.js
sources/plugins/sourcearea/lang/fo.js
sources/plugins/sourcearea/lang/fr-ca.js
sources/plugins/sourcearea/lang/fr.js
sources/plugins/sourcearea/lang/gl.js
sources/plugins/sourcearea/lang/gu.js
sources/plugins/sourcearea/lang/he.js
sources/plugins/sourcearea/lang/hi.js
sources/plugins/sourcearea/lang/hr.js
sources/plugins/sourcearea/lang/hu.js
sources/plugins/sourcearea/lang/id.js
sources/plugins/sourcearea/lang/is.js
sources/plugins/sourcearea/lang/it.js
sources/plugins/sourcearea/lang/ja.js
sources/plugins/sourcearea/lang/ka.js
sources/plugins/sourcearea/lang/km.js
sources/plugins/sourcearea/lang/ko.js
sources/plugins/sourcearea/lang/ku.js
sources/plugins/sourcearea/lang/lt.js
sources/plugins/sourcearea/lang/lv.js
sources/plugins/sourcearea/lang/mk.js
sources/plugins/sourcearea/lang/mn.js
sources/plugins/sourcearea/lang/ms.js
sources/plugins/sourcearea/lang/nb.js
sources/plugins/sourcearea/lang/nl.js
sources/plugins/sourcearea/lang/no.js
sources/plugins/sourcearea/lang/oc.js [new file with mode: 0644]
sources/plugins/sourcearea/lang/pl.js
sources/plugins/sourcearea/lang/pt-br.js
sources/plugins/sourcearea/lang/pt.js
sources/plugins/sourcearea/lang/ro.js
sources/plugins/sourcearea/lang/ru.js
sources/plugins/sourcearea/lang/si.js
sources/plugins/sourcearea/lang/sk.js
sources/plugins/sourcearea/lang/sl.js
sources/plugins/sourcearea/lang/sq.js
sources/plugins/sourcearea/lang/sr-latn.js
sources/plugins/sourcearea/lang/sr.js
sources/plugins/sourcearea/lang/sv.js
sources/plugins/sourcearea/lang/th.js
sources/plugins/sourcearea/lang/tr.js
sources/plugins/sourcearea/lang/tt.js
sources/plugins/sourcearea/lang/ug.js
sources/plugins/sourcearea/lang/uk.js
sources/plugins/sourcearea/lang/vi.js
sources/plugins/sourcearea/lang/zh-cn.js
sources/plugins/sourcearea/lang/zh.js
sources/plugins/sourcearea/plugin.js
sources/plugins/tab/plugin.js
sources/plugins/toolbar/lang/af.js
sources/plugins/toolbar/lang/ar.js
sources/plugins/toolbar/lang/az.js [new file with mode: 0644]
sources/plugins/toolbar/lang/bg.js
sources/plugins/toolbar/lang/bn.js
sources/plugins/toolbar/lang/bs.js
sources/plugins/toolbar/lang/ca.js
sources/plugins/toolbar/lang/cs.js
sources/plugins/toolbar/lang/cy.js
sources/plugins/toolbar/lang/da.js
sources/plugins/toolbar/lang/de-ch.js
sources/plugins/toolbar/lang/de.js
sources/plugins/toolbar/lang/el.js
sources/plugins/toolbar/lang/en-au.js
sources/plugins/toolbar/lang/en-ca.js
sources/plugins/toolbar/lang/en-gb.js
sources/plugins/toolbar/lang/en.js
sources/plugins/toolbar/lang/eo.js
sources/plugins/toolbar/lang/es-mx.js [new file with mode: 0644]
sources/plugins/toolbar/lang/es.js
sources/plugins/toolbar/lang/et.js
sources/plugins/toolbar/lang/eu.js
sources/plugins/toolbar/lang/fa.js
sources/plugins/toolbar/lang/fi.js
sources/plugins/toolbar/lang/fo.js
sources/plugins/toolbar/lang/fr-ca.js
sources/plugins/toolbar/lang/fr.js
sources/plugins/toolbar/lang/gl.js
sources/plugins/toolbar/lang/gu.js
sources/plugins/toolbar/lang/he.js
sources/plugins/toolbar/lang/hi.js
sources/plugins/toolbar/lang/hr.js
sources/plugins/toolbar/lang/hu.js
sources/plugins/toolbar/lang/id.js
sources/plugins/toolbar/lang/is.js
sources/plugins/toolbar/lang/it.js
sources/plugins/toolbar/lang/ja.js
sources/plugins/toolbar/lang/ka.js
sources/plugins/toolbar/lang/km.js
sources/plugins/toolbar/lang/ko.js
sources/plugins/toolbar/lang/ku.js
sources/plugins/toolbar/lang/lt.js
sources/plugins/toolbar/lang/lv.js
sources/plugins/toolbar/lang/mk.js
sources/plugins/toolbar/lang/mn.js
sources/plugins/toolbar/lang/ms.js
sources/plugins/toolbar/lang/nb.js
sources/plugins/toolbar/lang/nl.js
sources/plugins/toolbar/lang/no.js
sources/plugins/toolbar/lang/oc.js [new file with mode: 0644]
sources/plugins/toolbar/lang/pl.js
sources/plugins/toolbar/lang/pt-br.js
sources/plugins/toolbar/lang/pt.js
sources/plugins/toolbar/lang/ro.js
sources/plugins/toolbar/lang/ru.js
sources/plugins/toolbar/lang/si.js
sources/plugins/toolbar/lang/sk.js
sources/plugins/toolbar/lang/sl.js
sources/plugins/toolbar/lang/sq.js
sources/plugins/toolbar/lang/sr-latn.js
sources/plugins/toolbar/lang/sr.js
sources/plugins/toolbar/lang/sv.js
sources/plugins/toolbar/lang/th.js
sources/plugins/toolbar/lang/tr.js
sources/plugins/toolbar/lang/tt.js
sources/plugins/toolbar/lang/ug.js
sources/plugins/toolbar/lang/uk.js
sources/plugins/toolbar/lang/vi.js
sources/plugins/toolbar/lang/zh-cn.js
sources/plugins/toolbar/lang/zh.js
sources/plugins/toolbar/plugin.js
sources/plugins/toolbar/samples/toolbar.html
sources/plugins/widget/dev/assets/contents.css [new file with mode: 0644]
sources/plugins/widget/dev/assets/sample.jpg [new file with mode: 0644]
sources/plugins/widget/dev/assets/simplebox/contents.css [new file with mode: 0644]
sources/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js [new file with mode: 0644]
sources/plugins/widget/dev/assets/simplebox/icons/simplebox.png [new file with mode: 0644]
sources/plugins/widget/dev/assets/simplebox/plugin.js [new file with mode: 0644]
sources/plugins/widget/dev/console.js [new file with mode: 0644]
sources/plugins/widget/dev/nestedwidgets.html [new file with mode: 0644]
sources/plugins/widget/dev/widgetstyles.html [new file with mode: 0644]
sources/plugins/widget/images/handle.png [new file with mode: 0644]
sources/plugins/widget/lang/af.js [new file with mode: 0644]
sources/plugins/widget/lang/ar.js [new file with mode: 0644]
sources/plugins/widget/lang/az.js [new file with mode: 0644]
sources/plugins/widget/lang/bg.js [new file with mode: 0644]
sources/plugins/widget/lang/ca.js [new file with mode: 0644]
sources/plugins/widget/lang/cs.js [new file with mode: 0644]
sources/plugins/widget/lang/cy.js [new file with mode: 0644]
sources/plugins/widget/lang/da.js [new file with mode: 0644]
sources/plugins/widget/lang/de-ch.js [new file with mode: 0644]
sources/plugins/widget/lang/de.js [new file with mode: 0644]
sources/plugins/widget/lang/el.js [new file with mode: 0644]
sources/plugins/widget/lang/en-gb.js [new file with mode: 0644]
sources/plugins/widget/lang/en.js [new file with mode: 0644]
sources/plugins/widget/lang/eo.js [new file with mode: 0644]
sources/plugins/widget/lang/es-mx.js [new file with mode: 0644]
sources/plugins/widget/lang/es.js [new file with mode: 0644]
sources/plugins/widget/lang/eu.js [new file with mode: 0644]
sources/plugins/widget/lang/fa.js [new file with mode: 0644]
sources/plugins/widget/lang/fi.js [new file with mode: 0644]
sources/plugins/widget/lang/fr.js [new file with mode: 0644]
sources/plugins/widget/lang/gl.js [new file with mode: 0644]
sources/plugins/widget/lang/he.js [new file with mode: 0644]
sources/plugins/widget/lang/hr.js [new file with mode: 0644]
sources/plugins/widget/lang/hu.js [new file with mode: 0644]
sources/plugins/widget/lang/id.js [new file with mode: 0644]
sources/plugins/widget/lang/it.js [new file with mode: 0644]
sources/plugins/widget/lang/ja.js [new file with mode: 0644]
sources/plugins/widget/lang/km.js [new file with mode: 0644]
sources/plugins/widget/lang/ko.js [new file with mode: 0644]
sources/plugins/widget/lang/ku.js [new file with mode: 0644]
sources/plugins/widget/lang/lv.js [new file with mode: 0644]
sources/plugins/widget/lang/nb.js [new file with mode: 0644]
sources/plugins/widget/lang/nl.js [new file with mode: 0644]
sources/plugins/widget/lang/no.js [new file with mode: 0644]
sources/plugins/widget/lang/oc.js [new file with mode: 0644]
sources/plugins/widget/lang/pl.js [new file with mode: 0644]
sources/plugins/widget/lang/pt-br.js [new file with mode: 0644]
sources/plugins/widget/lang/pt.js [new file with mode: 0644]
sources/plugins/widget/lang/ru.js [new file with mode: 0644]
sources/plugins/widget/lang/sk.js [new file with mode: 0644]
sources/plugins/widget/lang/sl.js [new file with mode: 0644]
sources/plugins/widget/lang/sq.js [new file with mode: 0644]
sources/plugins/widget/lang/sv.js [new file with mode: 0644]
sources/plugins/widget/lang/tr.js [new file with mode: 0644]
sources/plugins/widget/lang/tt.js [new file with mode: 0644]
sources/plugins/widget/lang/ug.js [new file with mode: 0644]
sources/plugins/widget/lang/uk.js [new file with mode: 0644]
sources/plugins/widget/lang/vi.js [new file with mode: 0644]
sources/plugins/widget/lang/zh-cn.js [new file with mode: 0644]
sources/plugins/widget/lang/zh.js [new file with mode: 0644]
sources/plugins/widget/plugin.js [new file with mode: 0644]
sources/plugins/widgetselection/plugin.js [new file with mode: 0644]
sources/plugins/wysiwygarea/plugin.js
sources/plugins/wysiwygarea/samples/fullpage.html
sources/samples/css/samples.css
sources/samples/index.html
sources/samples/js/sample.js
sources/samples/js/sf.js
sources/samples/old/ajax.html
sources/samples/old/api.html
sources/samples/old/appendto.html
sources/samples/old/assets/outputxhtml/outputxhtml.css
sources/samples/old/assets/posteddata.php
sources/samples/old/assets/uilanguages/languages.js
sources/samples/old/datafiltering.html
sources/samples/old/divreplace.html
sources/samples/old/index.html
sources/samples/old/inlineall.html
sources/samples/old/inlinebycode.html
sources/samples/old/inlinetextarea.html
sources/samples/old/jquery.html
sources/samples/old/readonly.html
sources/samples/old/replacebyclass.html
sources/samples/old/replacebycode.html
sources/samples/old/sample.css
sources/samples/old/sample.js
sources/samples/old/sample_posteddata.php
sources/samples/old/tabindex.html
sources/samples/old/uicolor.html
sources/samples/old/uilanguages.html
sources/samples/old/xhtmlstyle.html
sources/samples/toolbarconfigurator/index.html
sources/samples/toolbarconfigurator/less/base.less
sources/samples/toolbarconfigurator/less/toolbarmodifier.less
sources/samples/toolbarconfigurator/lib/codemirror/codemirror.js
sources/skins/moono/colorpanel.css
sources/skins/moono/dev/locations.json
sources/skins/moono/dialog.css
sources/skins/moono/dialog_ie.css
sources/skins/moono/dialog_ie7.css
sources/skins/moono/dialog_ie8.css
sources/skins/moono/dialog_iequirks.css
sources/skins/moono/editor.css
sources/skins/moono/editor_gecko.css
sources/skins/moono/editor_ie.css
sources/skins/moono/editor_ie7.css
sources/skins/moono/editor_ie8.css
sources/skins/moono/editor_iequirks.css
sources/skins/moono/elementspath.css
sources/skins/moono/icons/about.png [new file with mode: 0644]
sources/skins/moono/icons/anchor-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/anchor.png [new file with mode: 0644]
sources/skins/moono/icons/bgcolor.png [new file with mode: 0644]
sources/skins/moono/icons/bidiltr.png [new file with mode: 0644]
sources/skins/moono/icons/bidirtl.png [new file with mode: 0644]
sources/skins/moono/icons/blockquote.png [new file with mode: 0644]
sources/skins/moono/icons/bold.png [new file with mode: 0644]
sources/skins/moono/icons/bulletedlist-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/bulletedlist.png [new file with mode: 0644]
sources/skins/moono/icons/button.png [new file with mode: 0644]
sources/skins/moono/icons/checkbox.png [new file with mode: 0644]
sources/skins/moono/icons/codesnippet.png [new file with mode: 0644]
sources/skins/moono/icons/copy-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/copy.png [new file with mode: 0644]
sources/skins/moono/icons/copyformatting.png [new file with mode: 0644]
sources/skins/moono/icons/creatediv.png [new file with mode: 0644]
sources/skins/moono/icons/cut-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/cut.png [new file with mode: 0644]
sources/skins/moono/icons/docprops-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/docprops.png [new file with mode: 0644]
sources/skins/moono/icons/find-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/find.png [new file with mode: 0644]
sources/skins/moono/icons/flash.png [new file with mode: 0644]
sources/skins/moono/icons/form.png [new file with mode: 0644]
sources/skins/moono/icons/hiddenfield.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/.DS_Store [new file with mode: 0644]
sources/skins/moono/icons/hidpi/about.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/anchor-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/anchor.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bgcolor.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bidiltr.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bidirtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/blockquote.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bold.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bulletedlist-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/bulletedlist.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/button.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/checkbox.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/codesnippet.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/copy-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/copy.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/copyformatting.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/creatediv.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/cut-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/cut.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/docprops-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/docprops.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/find-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/find.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/flash.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/form.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/hiddenfield.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/horizontalrule.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/iframe.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/image.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/imagebutton.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/indent-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/indent.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/italic.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/justifyblock.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/justifycenter.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/justifyleft.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/justifyright.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/language.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/link.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/maximize.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/newpage-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/newpage.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/numberedlist-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/numberedlist.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/outdent-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/outdent.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pagebreak-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pagebreak.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/paste-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/paste.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pastefromword-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pastefromword.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pastetext-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/pastetext.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/placeholder.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/preview-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/preview.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/print.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/radio.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/redo-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/redo.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/removeformat.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/replace.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/save.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/scayt.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/select-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/select.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/selectall.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/showblocks-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/showblocks.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/smiley.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/source-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/source.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/sourcedialog-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/sourcedialog.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/specialchar.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/spellchecker.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/strike.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/subscript.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/superscript.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/table.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/templates-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/templates.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/textarea-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/textarea.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/textcolor.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/textfield-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/textfield.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/uicolor.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/underline.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/undo-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/undo.png [new file with mode: 0644]
sources/skins/moono/icons/hidpi/unlink.png [new file with mode: 0644]
sources/skins/moono/icons/horizontalrule.png [new file with mode: 0644]
sources/skins/moono/icons/iframe.png [new file with mode: 0644]
sources/skins/moono/icons/image.png [new file with mode: 0644]
sources/skins/moono/icons/imagebutton.png [new file with mode: 0644]
sources/skins/moono/icons/indent-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/indent.png [new file with mode: 0644]
sources/skins/moono/icons/italic.png [new file with mode: 0644]
sources/skins/moono/icons/justifyblock.png [new file with mode: 0644]
sources/skins/moono/icons/justifycenter.png [new file with mode: 0644]
sources/skins/moono/icons/justifyleft.png [new file with mode: 0644]
sources/skins/moono/icons/justifyright.png [new file with mode: 0644]
sources/skins/moono/icons/language.png [new file with mode: 0644]
sources/skins/moono/icons/link.png [new file with mode: 0644]
sources/skins/moono/icons/maximize.png [new file with mode: 0644]
sources/skins/moono/icons/newpage-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/newpage.png [new file with mode: 0644]
sources/skins/moono/icons/numberedlist-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/numberedlist.png [new file with mode: 0644]
sources/skins/moono/icons/outdent-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/outdent.png [new file with mode: 0644]
sources/skins/moono/icons/pagebreak-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/pagebreak.png [new file with mode: 0644]
sources/skins/moono/icons/paste-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/paste.png [new file with mode: 0644]
sources/skins/moono/icons/pastefromword-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/pastefromword.png [new file with mode: 0644]
sources/skins/moono/icons/pastetext-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/pastetext.png [new file with mode: 0644]
sources/skins/moono/icons/placeholder.png [new file with mode: 0644]
sources/skins/moono/icons/preview-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/preview.png [new file with mode: 0644]
sources/skins/moono/icons/print.png [new file with mode: 0644]
sources/skins/moono/icons/radio.png [new file with mode: 0644]
sources/skins/moono/icons/redo-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/redo.png [new file with mode: 0644]
sources/skins/moono/icons/removeformat.png [new file with mode: 0644]
sources/skins/moono/icons/replace.png [new file with mode: 0644]
sources/skins/moono/icons/save.png [new file with mode: 0644]
sources/skins/moono/icons/scayt.png [new file with mode: 0644]
sources/skins/moono/icons/select-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/select.png [new file with mode: 0644]
sources/skins/moono/icons/selectall.png [new file with mode: 0644]
sources/skins/moono/icons/showblocks-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/showblocks.png [new file with mode: 0644]
sources/skins/moono/icons/smiley.png [new file with mode: 0644]
sources/skins/moono/icons/source-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/source.png [new file with mode: 0644]
sources/skins/moono/icons/sourcedialog-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/sourcedialog.png [new file with mode: 0644]
sources/skins/moono/icons/specialchar.png [new file with mode: 0644]
sources/skins/moono/icons/spellchecker.png [new file with mode: 0644]
sources/skins/moono/icons/strike.png [new file with mode: 0644]
sources/skins/moono/icons/subscript.png [new file with mode: 0644]
sources/skins/moono/icons/superscript.png [new file with mode: 0644]
sources/skins/moono/icons/table.png [new file with mode: 0644]
sources/skins/moono/icons/templates-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/templates.png [new file with mode: 0644]
sources/skins/moono/icons/textarea-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/textarea.png [new file with mode: 0644]
sources/skins/moono/icons/textcolor.png [new file with mode: 0644]
sources/skins/moono/icons/textfield-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/textfield.png [new file with mode: 0644]
sources/skins/moono/icons/uicolor.png [new file with mode: 0644]
sources/skins/moono/icons/underline.png [new file with mode: 0644]
sources/skins/moono/icons/undo-rtl.png [new file with mode: 0644]
sources/skins/moono/icons/undo.png [new file with mode: 0644]
sources/skins/moono/icons/unlink.png [new file with mode: 0644]
sources/skins/moono/images/anchor.png [new file with mode: 0644]
sources/skins/moono/images/close.png
sources/skins/moono/images/hidpi/anchor.png [new file with mode: 0644]
sources/skins/moono/images/hidpi/close.png
sources/skins/moono/images/hidpi/lock-open.png
sources/skins/moono/images/hidpi/lock.png
sources/skins/moono/images/hidpi/refresh.png
sources/skins/moono/images/lock-open.png
sources/skins/moono/images/lock.png
sources/skins/moono/images/refresh.png
sources/skins/moono/mainui.css
sources/skins/moono/menu.css
sources/skins/moono/notification.css
sources/skins/moono/panel.css
sources/skins/moono/presets.css
sources/skins/moono/readme.md
sources/skins/moono/reset.css
sources/skins/moono/richcombo.css
sources/skins/moono/skin.js
sources/skins/moono/toolbar.css
sources/styles.js

index 390d131d58a86f4e6460901ad2f7e0f059e370b8..207d280756f55eed622bec6da835d05096a0b82a 100644 (file)
@@ -1,55 +1,57 @@
-/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
- * For licensing, see LICENSE.md or http://ckeditor.com/license\r
- */\r
-\r
-/**\r
- * This file was added automatically by CKEditor builder.\r
- * You may re-use it at any time to build CKEditor again.\r
- *\r
- * If you would like to build CKEditor online again\r
- * (for example to upgrade), visit one the following links:\r
- *\r
- * (1) http://ckeditor.com/builder\r
- *     Visit online builder to build CKEditor from scratch.\r
- *\r
- * (2) http://ckeditor.com/builder/b1e1d617d24d65f0d8dbe476718f9ee1\r
- *     Visit online builder to build CKEditor, starting with the same setup as before.\r
- *\r
- * (3) http://ckeditor.com/builder/download/b1e1d617d24d65f0d8dbe476718f9ee1\r
- *     Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.\r
- *\r
- * NOTE:\r
- *    This file is not used by CKEditor, you may remove it.\r
- *    Changing this file will not change your CKEditor configuration.\r
- */\r
-\r
-var CKBUILDER_CONFIG = {\r
-       skin: 'moono',\r
-       preset: 'full',\r
-       ignore: [\r
-               '.bender',\r
-               'bender.js',\r
-               'bender-err.log',\r
-               'bender-out.log',\r
-               'dev',\r
-               '.DS_Store',\r
-               '.editorconfig',\r
-               '.gitattributes',\r
-               '.gitignore',\r
-               'gruntfile.js',\r
-               '.idea',\r
-               '.jscsrc',\r
-               '.jshintignore',\r
-               '.jshintrc',\r
-               'less',\r
-               '.mailmap',\r
-               'node_modules',\r
-               'package.json',\r
-               'README.md',\r
-               'tests'\r
-       ],\r
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time to build CKEditor again.
+ *
+ * If you would like to build CKEditor online again
+ * (for example to upgrade), visit one the following links:
+ *
+ * (1) http://ckeditor.com/builder
+ *     Visit online builder to build CKEditor from scratch.
+ *
+ * (2) http://ckeditor.com/builder/9323150a85589a6899021c19376669e6
+ *     Visit online builder to build CKEditor, starting with the same setup as before.
+ *
+ * (3) http://ckeditor.com/builder/download/9323150a85589a6899021c19376669e6
+ *     Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
+ *
+ * NOTE:
+ *    This file is not used by CKEditor, you may remove it.
+ *    Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+       skin: 'moono',
+       preset: 'full',
+       ignore: [
+               '.DS_Store',
+               '.bender',
+               '.editorconfig',
+               '.gitattributes',
+               '.gitignore',
+               '.idea',
+               '.jscsrc',
+               '.jshintignore',
+               '.jshintrc',
+               '.mailmap',
+               '.travis.yml',
+               'bender-err.log',
+               'bender-out.log',
+               'bender.ci.js',
+               'bender.js',
+               'dev',
+               'gruntfile.js',
+               'less',
+               'node_modules',
+               'package.json',
+               'tests'
+       ],
        plugins : {
+               'Audio' : 1,
                'a11yhelp' : 1,
                'basicstyles' : 1,
                'contextmenu' : 1,
@@ -61,6 +63,7 @@ var CKBUILDER_CONFIG = {
                'floatingspace' : 1,
                'format' : 1,
                'horizontalrule' : 1,
+               'html5video' : 1,
                'htmlwriter' : 1,
                'iframe' : 1,
                'image' : 1,
@@ -72,6 +75,7 @@ var CKBUILDER_CONFIG = {
                'liststyle' : 1,
                'magicline' : 1,
                'maximize' : 1,
+               'oembed' : 1,
                'removeformat' : 1,
                'resize' : 1,
                'showborders' : 1,
index 333f69ddfea228676b1def2328b79a2533bb0663..08036149fe7b182e000bb45f17f4d9f44cf41fa0 100644 (file)
@@ -1,6 +1,299 @@
 CKEditor 4 Changelog\r
 ====================\r
 \r
+## CKEditor 4.7.3\r
+\r
+New Features:\r
+\r
+* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-disallowedContent) property.\r
+\r
+Fixed Issues:\r
+\r
+* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!\r
+* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.\r
+* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/addon/language) plugin.\r
+* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.\r
+* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/addon/image2) plugin can be resized when the editor is in [read-only mode](https://docs.ckeditor.com/#!/guide/dev_readonly).\r
+* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/addon/tabletools) plugin throws an error when trying to delete columns.\r
+* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error.\r
+* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/addon/sourcearea).\r
+\r
+Other Changes:\r
+\r
+* Updated the [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin:\r
+       * [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started.\r
+* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-isCollapsed) method which is a simpler way to check if the selection is collapsed.\r
+* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://docs.ckeditor.com/#!/api/CKEDITOR.dialogCommand).\r
+\r
+## CKEditor 4.7.2\r
+\r
+New Features:\r
+\r
+* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://docs.ckeditor.com/#!/guide/dev_acf) integration with the [Justify](http://ckeditor.com/addon/justify) plugin.\r
+\r
+Fixed Issues:\r
+\r
+* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.\r
+* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](http://ckeditor.com/addon/tableselection) plugin:\r
+  * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.\r
+  * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table.\r
+* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](http://ckeditor.com/addon/table) dialog.\r
+* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/addon/selectall) button in [Source Mode](http://ckeditor.com/addon/sourcearea).\r
+* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](http://ckeditor.com/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!\r
+* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](http://ckeditor.com/addon/toolbar) plugin inside the [Notification](http://ckeditor.com/addon/notification) plugin.\r
+* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](http://ckeditor.com/addon/stylescombo) plugin menu in the editor without any selection.\r
+* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](http://ckeditor.com/addon/link) plugin.\r
+* [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) editor throws an error.\r
+* [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error.\r
+* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.\r
+* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) method returns an incorrect result when multiple nodes are selected.\r
+* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.elementPath-method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.\r
+\r
+Other Changes:\r
+\r
+* Updated the [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) plugin:\r
+       * [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.\r
+* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList-method-toArray) method which returns an array representation of a [node list](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList).\r
+\r
+## CKEditor 4.7.1\r
+\r
+New Features:\r
+\r
+* Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)!\r
+* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) instructions.\r
+\r
+Fixed Issues:\r
+\r
+* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](http://ckeditor.com/addon/tableselection) plugin is loaded.\r
+* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.\r
+* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.\r
+* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.\r
+* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed:  Error thrown by the [Enter Key](http://ckeditor.com/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.\r
+* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](http://ckeditor.com/addon/tab) and [Indent List](http://ckeditor.com/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.\r
+* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](http://ckeditor.com/addon/link) plugin on collapsed selection cannot be edited.\r
+* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](http://ckeditor.com/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.\r
+* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getCommandKeystroke) method does not obtain the correct keystroke.\r
+* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not work in Quirks Mode.\r
+* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) incorrectly transforms the `margin` CSS property.\r
+\r
+## CKEditor 4.7\r
+\r
+**Important Notes:**\r
+\r
+* [#13793](http://dev.ckeditor.com/ticket/13793): The [`embed_provider`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-embed_provider) configuration option for the [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins is no longer preset by default.\r
+* The [UI Color](http://ckeditor.com/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).\r
+\r
+New Features:\r
+\r
+* [#16755](http://dev.ckeditor.com/ticket/16755): Added the [Table Selection](http://ckeditor.com/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).\r
+* [#16961](http://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel.\r
+* [#13381](http://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](http://docs.ckeditor.com/#!/api/CKEDITOR.template) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)!\r
+* [#16971](http://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](http://ckeditor.com/addon/tabletools) plugin.\r
+* [#16847](http://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16818](http://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16850](http://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](http://ckeditor.com/addon/contextmenu).\r
+* [#16937](http://dev.ckeditor.com/ticket/16937): The `command` parameter in [CKEDITOR.editor.getCommandKeystroke](http://docs.ckeditor.dev/#!/api/CKEDITOR.editor-method-getCommandKeystroke) now also accepts a command name as an argument.\r
+* [#17010](http://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-shrink) method now allows for skipping bogus `<br>` elements.\r
+\r
+Fixed Issues:\r
+\r
+* [#16935](http://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](http://ckeditor.com/addon/sourcearea) throws an error.\r
+* [#16825](http://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor.\r
+* [#16857](http://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](http://ckeditor.com/addon/copyformatting).\r
+* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin is enabled.\r
+* [#16786](http://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin.\r
+* [#14714](http://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.\r
+* [#16913](http://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](http://ckeditor.com/addon/pastetext) keystroke does not work.\r
+* [#16968](http://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](http://ckeditor.com/addon/pastetext) is not handled by the editor.\r
+* [#16912](http://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16821](http://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16866](http://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16860](http://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16817](http://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](http://ckeditor.com/addon/pastefromword), paragraphs are transformed into lists with some corrupted data.\r
+* [#16833](http://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16826](http://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#12465](http://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.\r
+* [#13062](http://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link.\r
+* [#13585](http://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`.\r
+* [#16811](http://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#16810](http://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.\r
+* [#11956](http://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](http://ckeditor.com/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles.\r
+* [#10472](http://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](http://ckeditor.com/addon/tableresize) on table header and footer.\r
+* [#14762](http://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](http://ckeditor.com/addon/tableresize) plugin is active.\r
+* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin does not allow to drop widgets into the editor.\r
+* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.\r
+* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](http://ckeditor.com/addon/autolink) plugin.\r
+* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.\r
+* [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited.\r
+* [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](http://ckeditor.com/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)!\r
+* [#16920](http://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](http://ckeditor.com/addon/dialog) plugin as a direct dependency.\r
+* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!\r
+* [#17027](http://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object.\r
+* Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](http://ckeditor.com/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) is against [security best practices](http://docs.ckeditor.com/#!/guide/dev_best_practices-section-security), so the problem described above has not been considered a security issue as such.\r
+\r
+Other Changes:\r
+\r
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:\r
+       * Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](http://ckeditor.com/addon/language) plugin in SCAYT.\r
+* [#16958](http://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017.\r
+* [#16954](http://dev.ckeditor.com/ticket/16954): Removed the paste dialog.\r
+* [#16982](http://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.\r
+* [#17025](http://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2.\r
+\r
+## CKEditor 4.6.2\r
+\r
+New Features:\r
+\r
+* [#16733](http://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](http://ckeditor.com/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector.\r
+* [#16752](http://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)!\r
+* [#13818](http://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](http://ckeditor.com/addon/widget) [style definitions](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles), so applying one style disables the other.\r
+\r
+Fixed Issues:\r
+\r
+* [#13446](http://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor.\r
+* [#14856](http://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](http://ckeditor.com/addon/font) reset each other when modified at certain positions.\r
+* [#16745](http://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16682](http://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](http://ckeditor.com/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWord_heuristicsEdgeList) configuration option.\r
+* [#10373](http://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor.\r
+* [#16728](http://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Quirks Mode.\r
+* [#16795](http://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Compatibility Mode.\r
+* [#16675](http://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](http://ckeditor.com/addon/copyformatting) to a single table cell are applied to the whole table.\r
+* [#16753](http://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels.\r
+* [#16705](http://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](http://ckeditor.com/addon/clipboard).\r
+* [#14869](http://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](http://ckeditor.com/addon/find) in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).\r
+\r
+## CKEditor 4.6.1\r
+\r
+New Features:\r
+\r
+* [#16639](http://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [CKEDITOR.ajax.post](http://docs.ckeditor.com/#!/api/CKEDITOR.ajax-method-post) method became optional.\r
+\r
+Fixed Issues:\r
+\r
+* [#11064](http://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](http://ckeditor.com/addon/selectall) plugin.\r
+* [#14755](http://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.\r
+* [#16624](http://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](http://ckeditor.com/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#16600](http://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.\r
+\r
+## CKEditor 4.6\r
+\r
+New Features:\r
+\r
+* [#14569](http://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](http://ckeditor.com/addon/moono-lisa). Refreshed default colors available in the [Color Button](http://ckeditor.com/addon/colorbutton) plugin ([Text Color and Background Color](http://docs.ckeditor.com/#!/guide/dev_colorbutton) feature).\r
+* [#14707](http://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](http://ckeditor.com/addon/copyformatting) feature to enable easy copying of styles between your document parts.\r
+* Introduced the completely rewritten [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin:\r
+       * Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) to replicate the effect of setting it to `true`.\r
+       * Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content.\r
+       * Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels).\r
+       * Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste.\r
+* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)!\r
+* [#10015](http://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus.\r
+* [#13794](http://dev.ckeditor.com/ticket/13794): The [Upload Image](http://ckeditor.com/addon/uploadimage) feature now uses `uploaded.width/height` if set.\r
+* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin that lets you upload a file by drag&amp;dropping it into the editor content.\r
+* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor.\r
+* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](http://ckeditor.com/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)!\r
+* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server.\r
+* [#14889](http://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_altRequired) option for the [Enhanced Image](http://ckeditor.com/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)!\r
+\r
+Fixed Issues:\r
+\r
+* [#9991](http://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) should only normalize input data.\r
+* [#7209](http://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](http://ckeditor.com/addon/pastefromword) correctly.\r
+* [#14335](http://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly.\r
+* [#14542](http://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting.\r
+* [#14544](http://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list.\r
+* [#14660](http://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from  Word](http://ckeditor.com/addon/pastefromword) breaks the styling in some cases.\r
+* [#14867](http://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#2507](http://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not detect pasting a part of a paragraph.\r
+* [#3336](http://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#6115](http://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](http://ckeditor.com/addon/pastefromword), borders are missing on one side.\r
+* [#6342](http://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](http://docs.ckeditor.com/#!/guide/dev_basicstyles-section-custom-basic-text-style-definition).\r
+* [#6457](http://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](http://ckeditor.com/addon/pastefromword) is extremely slow.\r
+* [#6789](http://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7262](http://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7662](http://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7807](http://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#7950](http://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](http://ckeditor.com/addon/pastefromword) differently than in other browsers.\r
+* [#7982](http://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#8231](http://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts empty paragraphs.\r
+* [#8266](http://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts a blank line at the top.\r
+* [#8341](http://dev.ckeditor.com/ticket/8341), [#7646](http://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](http://ckeditor.com/addon/pastefromword) content cleanup breaking content formatting.\r
+* [#8754](http://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#8983](http://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](http://ckeditor.com/addon/pastefromword) with [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR).\r
+* [#9331](http://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) creates a simple Caesar cipher.\r
+* [#9422](http://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) leaves an unwanted `color:windowtext` style.\r
+* [#10011](http://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions.\r
+* [#10643](http://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](http://ckeditor.com/addon/pastefromword) dialog.\r
+* [#10784](http://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#11294](http://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#11627](http://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#12784](http://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#13174](http://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](http://ckeditor.com/addon/pastefromword).\r
+* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element.\r
+* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper to identify the widget type.\r
+* [#13519](http://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible.\r
+\r
+Other Changes:\r
+\r
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:\r
+       * Support for the new default Moono-Lisa skin.\r
+       * [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](http://ckeditor.com/addon/basicstyles) do not work when SCAYT is enabled.\r
+       * [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled.\r
+       * [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element.\r
+       * [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS.\r
+\r
+## CKEditor 4.5.11\r
+\r
+**Security Updates:**\r
+\r
+* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell.\r
+\r
+       Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.\r
+\r
+  An upgrade is recommended.\r
+\r
+New Features:\r
+\r
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.\r
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!\r
+\r
+Fixed Issues:\r
+\r
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.\r
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.\r
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.\r
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.\r
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).\r
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.\r
+\r
+## CKEditor 4.5.10\r
+\r
+Fixed Issues:\r
+\r
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.\r
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.\r
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!\r
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!\r
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.\r
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.\r
+* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.\r
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.\r
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.\r
+\r
+## CKEditor 4.5.9\r
+\r
+Fixed Issues:\r
+\r
+* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).\r
+* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances.\r
+* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin.\r
+* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.\r
+* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given.\r
+* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog).\r
+* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window.\r
+* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).\r
+* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!\r
+\r
 ## CKEditor 4.5.8\r
 \r
 New Features:\r
@@ -274,7 +567,7 @@ New Features:
 * Notification system:\r
   * [#11580](http://dev.ckeditor.com/ticket/11580): Introduced the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification).\r
   * [#12810](http://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) for the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification) which simplifies displaying progress of many concurrent tasks.\r
-* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.deleteSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml).\r
+* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.extractSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-extractSelectedHtml).\r
 * [#12416](http://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-upcastPriority) property which gives more control over widget upcasting order to the widget author.\r
 * [#12036](http://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode when the `<textarea>` element has a `readonly` attribute.\r
 * [#11905](http://dev.ckeditor.com/ticket/11905): The [`resize` event](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-resize) passes the current dimensions in its data.\r
index 9ae5c065ff8a1fa3f8114d003760a2a0d8a99bfb..044e7daf9a36ad2567d617eadfa20ff0852a1b0b 100644 (file)
@@ -2,7 +2,7 @@ Software License Agreement
 ==========================\r
 \r
 CKEditor - The text editor for Internet - http://ckeditor.com\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 \r
 Licensed under the terms of any of the following licenses at your\r
 choice:\r
@@ -37,7 +37,7 @@ done by developers outside of CKSource with their express permission.
 \r
 The following libraries are included in CKEditor under the MIT license (see Appendix D):\r
 \r
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.\r
+* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2017, CKSource - Frederico Knabben.\r
 * PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.\r
 * CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.\r
 \r
index 5257b29f69867d73da80d30dd4b1c7e36b8eed55..d18d4a108e28d0115a7e0c3bed00cf33fae9b627 100644 (file)
@@ -1,7 +1,7 @@
 CKEditor 4
 ==========
 
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 http://ckeditor.com - See LICENSE.md for license information.
 
 CKEditor is a text editor to be used inside web pages. It's not a replacement
index 9a99b650f871cc050aedbc8a00d81790755a645b..86cb458bcfe3d221fdb8e34d6a0a35f8eecf39bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 (function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
index 4e067d087a59b9195de82e649747601230f4777d..f566561046b4c9c8036e2293f1a4bac37c04b7b5 100644 (file)
@@ -1,15 +1,15 @@
 /*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"G2VC",version:"4.5.8",revision:"c1fc9a9",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var k=c[d].src.match(a);if(k){b=k[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
+(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a=/(^|.*[\\\/])ckeditor\.js(?:\?.*|;.*)?$/i,d={timestamp:"H8DA",version:"4.7.3",revision:"dee99e2",rnd:Math.floor(900*Math.random())+100,_:{pending:[],basePathSrcPattern:a},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var k=c[d].src.match(a);if(k){b=k[1];break}}-1==b.indexOf(":/")&&"//"!=b.slice(0,2)&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+
 b:location.href.match(/^[^\?]*\/(?:)/)[0]+b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return b}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&"/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a)&&(a+=(0<=a.indexOf("?")?"\x26":"?")+"t\x3d"+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",
-a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function d(){try{document.documentElement.doScroll("left")}catch(f){setTimeout(d,1);return}a()}c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",
-a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(w){}document.documentElement.doScroll&&b&&d()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}());
+a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(c){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){function n(){try{document.documentElement.doScroll("left")}catch(f){setTimeout(n,1);return}a()}c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",
+a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(q){}document.documentElement.doScroll&&b&&n()}}}()},b=window.CKEDITOR_GETURL;if(b){var c=d.getUrl;d.getUrl=function(a){return b.call(d,a)||c.call(d,a)}}return d}());
 CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var d=CKEDITOR.event.prototype,b;for(b in d)null==a[b]&&(a[b]=d[b])},CKEDITOR.event.prototype=function(){function a(a){var e=d(this);return e[a]||(e[a]=new b(a))}var d=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},b=function(a){this.name=a;this.listeners=[]};b.prototype={getListenerIndex:function(a){for(var b=0,d=this.listeners;b<d.length;b++)if(d[b].fn==a)return b;return-1}};
-return{define:function(b,d){var g=a.call(this,b);CKEDITOR.tools.extend(g,d,!0)},on:function(b,d,g,l,k){function n(a,f,x,k){a={name:b,sender:this,editor:a,data:f,listenerData:l,stop:x,cancel:k,removeListener:w};return!1===d.call(g,a)?!1:a.data}function w(){x.removeListener(b,d)}var f=a.call(this,b);if(0>f.getListenerIndex(d)){f=f.listeners;g||(g=this);isNaN(k)&&(k=10);var x=this;n.fn=d;n.priority=k;for(var A=f.length-1;0<=A;A--)if(f[A].priority<=k)return f.splice(A+1,0,n),{removeListener:w};f.unshift(n)}return{removeListener:w}},
-once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},g=0,l=function(){g=1};return function(k,n,w){var f=d(this)[k];k=a;var x=g;a=g=0;if(f){var A=f.listeners;if(A.length)for(var A=A.slice(0),u,B=0;B<A.length;B++){if(f.errorProof)try{u=
-A[B].call(this,w,n,b,l)}catch(q){}else u=A[B].call(this,w,n,b,l);!1===u?g=1:"undefined"!=typeof u&&(n=u);if(a||g)break}}n=g?!1:"undefined"==typeof n?!0:n;a=k;g=x;return n}}(),fireOnce:function(a,b,g){b=this.fire(a,b,g);delete d(this)[a];return b},removeListener:function(a,b){var g=d(this)[a];if(g){var l=g.getListenerIndex(b);0<=l&&g.listeners.splice(l,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&0<a.listeners.length}}}());
+return{define:function(b,d){var g=a.call(this,b);CKEDITOR.tools.extend(g,d,!0)},on:function(b,d,g,h,k){function n(a,f,D,k){a={name:b,sender:this,editor:a,data:f,listenerData:h,stop:D,cancel:k,removeListener:q};return!1===d.call(g,a)?!1:a.data}function q(){D.removeListener(b,d)}var f=a.call(this,b);if(0>f.getListenerIndex(d)){f=f.listeners;g||(g=this);isNaN(k)&&(k=10);var D=this;n.fn=d;n.priority=k;for(var w=f.length-1;0<=w;w--)if(f[w].priority<=k)return f.splice(w+1,0,n),{removeListener:q};f.unshift(n)}return{removeListener:q}},
+once:function(){var a=Array.prototype.slice.call(arguments),b=a[1];a[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,a)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},g=0,h=function(){g=1};return function(k,n,q){var f=d(this)[k];k=a;var D=g;a=g=0;if(f){var w=f.listeners;if(w.length)for(var w=w.slice(0),A,G=0;G<w.length;G++){if(f.errorProof)try{A=
+w[G].call(this,q,n,b,h)}catch(x){}else A=w[G].call(this,q,n,b,h);!1===A?g=1:"undefined"!=typeof A&&(n=A);if(a||g)break}}n=g?!1:"undefined"==typeof n?!0:n;a=k;g=D;return n}}(),fireOnce:function(a,b,g){b=this.fire(a,b,g);delete d(this)[a];return b},removeListener:function(a,b){var g=d(this)[a];if(g){var h=g.getListenerIndex(b);0<=h&&g.listeners.splice(h,1)}},removeAllListeners:function(){var a=d(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=d(this)[a])&&0<a.listeners.length}}}());
 CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fire.call(this,a,d,this)},CKEDITOR.editor.prototype.fireOnce=function(a,d){a in{instanceReady:1,loaded:1}&&(this[a]=!0);return CKEDITOR.event.prototype.fireOnce.call(this,a,d,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
 CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),d=a.match(/edge[ \/](\d+.?\d*)/),b=-1<a.indexOf("trident/"),b=!(!d&&!b),b={ie:b,edge:!!d,webkit:!b&&-1<a.indexOf(" applewebkit/"),air:-1<a.indexOf(" adobeair/"),mac:-1<a.indexOf("macintosh"),quirks:"BackCompat"==document.compatMode&&(!document.documentMode||10>document.documentMode),mobile:-1<a.indexOf("mobile"),iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return!1;var a=document.domain,b=window.location.hostname;
 return a!=b&&a!="["+b+"]"},secure:"https:"==location.protocol};b.gecko="Gecko"==navigator.product&&!b.webkit&&!b.ie;b.webkit&&(-1<a.indexOf("chrome")?b.chrome=!0:b.safari=!0);var c=0;b.ie&&(c=d?parseFloat(d[1]):b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode,b.ie9Compat=9==c,b.ie8Compat=8==c,b.ie7Compat=7==c,b.ie6Compat=7>c||b.quirks);b.gecko&&(d=a.match(/rv:([\d\.]+)/))&&(d=d[1].split("."),c=1E4*d[0]+100*(d[1]||0)+1*(d[2]||0));b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));
@@ -19,29 +19,41 @@ b.iOS&&(b.cssClass+=" cke_browser_ios");b.hidpi&&(b.cssClass+=" cke_hidpi");retu
 CKEDITOR.loadFullCore,d=CKEDITOR.loadFullCoreTimeout;a&&(CKEDITOR.status="basic_ready",a&&a._load?a():d&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},1E3*d))})})();CKEDITOR.status="basic_loaded"}();"use strict";CKEDITOR.VERBOSITY_WARN=1;CKEDITOR.VERBOSITY_ERROR=2;CKEDITOR.verbosity=CKEDITOR.VERBOSITY_WARN|CKEDITOR.VERBOSITY_ERROR;CKEDITOR.warn=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_WARN&&CKEDITOR.fire("log",{type:"warn",errorCode:a,additionalData:d})};
 CKEDITOR.error=function(a,d){CKEDITOR.verbosity&CKEDITOR.VERBOSITY_ERROR&&CKEDITOR.fire("log",{type:"error",errorCode:a,additionalData:d})};
 CKEDITOR.on("log",function(a){if(window.console&&window.console.log){var d=console[a.data.type]?a.data.type:"log",b=a.data.errorCode;if(a=a.data.additionalData)console[d]("[CKEDITOR] Error code: "+b+".",a);else console[d]("[CKEDITOR] Error code: "+b+".");console[d]("[CKEDITOR] For more information about this error go to http://docs.ckeditor.com/#!/guide/dev_errors-section-"+b)}},null,null,999);CKEDITOR.dom={};
-(function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,g=/"/g,l=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,k={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},n=function(a,f){return"#"==f[0]?String.fromCharCode(parseInt(f.slice(1),10)):k[f]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,f){if(!a&&!f)return!0;if(!a||!f||a.length!=f.length)return!1;for(var b=0;b<a.length;b++)if(a[b]!=f[b])return!1;
+(function(){var a=[],d=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.ie?"-ms-":"",b=/&/g,c=/>/g,e=/</g,g=/"/g,h=/&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,k={lt:"\x3c",gt:"\x3e",amp:"\x26",quot:'"',nbsp:" ",shy:"­"},n=function(a,f){return"#"==f[0]?String.fromCharCode(parseInt(f.slice(1),10)):k[f]};CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(a,f){if(!a&&!f)return!0;if(!a||!f||a.length!=f.length)return!1;for(var b=0;b<a.length;b++)if(a[b]!=f[b])return!1;
 return!0},getIndex:function(a,f){for(var b=0;b<a.length;++b)if(f(a[b]))return b;return-1},clone:function(a){var f;if(a&&a instanceof Array){f=[];for(var b=0;b<a.length;b++)f[b]=CKEDITOR.tools.clone(a[b]);return f}if(null===a||"object"!=typeof a||a instanceof String||a instanceof Number||a instanceof Boolean||a instanceof Date||a instanceof RegExp||a.nodeType||a.window===a)return a;f=new a.constructor;for(b in a)f[b]=CKEDITOR.tools.clone(a[b]);return f},capitalize:function(a,f){return a.charAt(0).toUpperCase()+
-(f?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var f=arguments.length,b,c;"boolean"==typeof(b=arguments[f-1])?f--:"boolean"==typeof(b=arguments[f-2])&&(c=arguments[f-1],f-=2);for(var k=1;k<f;k++){var d=arguments[k],q;for(q in d)if(!0===b||null==a[q])if(!c||q in c)a[q]=d[q]}return a},prototypedCopy:function(a){var f=function(){};f.prototype=a;return new f},copy:function(a){var f={},b;for(b in a)f[b]=a[b];return f},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)},
+(f?a.slice(1):a.slice(1).toLowerCase())},extend:function(a){var f=arguments.length,b,c;"boolean"==typeof(b=arguments[f-1])?f--:"boolean"==typeof(b=arguments[f-2])&&(c=arguments[f-1],f-=2);for(var k=1;k<f;k++){var d=arguments[k],n;for(n in d)if(!0===b||null==a[n])if(!c||n in c)a[n]=d[n]}return a},prototypedCopy:function(a){var f=function(){};f.prototype=a;return new f},copy:function(a){var f={},b;for(b in a)f[b]=a[b];return f},isArray:function(a){return"[object Array]"==Object.prototype.toString.call(a)},
 isEmpty:function(a){for(var f in a)if(a.hasOwnProperty(f))return!1;return!0},cssVendorPrefix:function(a,f,b){if(b)return d+a+":"+f+";"+a+":"+f;b={};b[a]=f;b[d+a]=f;return b},cssStyleToDomStyle:function(){var a=document.createElement("div").style,f="undefined"!=typeof a.cssFloat?"cssFloat":"undefined"!=typeof a.styleFloat?"styleFloat":"float";return function(a){return"float"==a?f:a.replace(/-./g,function(a){return a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){a=[].concat(a);for(var f,
-b=[],c=0;c<a.length;c++)if(f=a[c])/@import|[{}]/.test(f)?b.push("\x3cstyle\x3e"+f+"\x3c/style\x3e"):b.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+f+'"\x3e');return b.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(b,"\x26amp;").replace(c,"\x26gt;").replace(e,"\x26lt;")},htmlDecode:function(a){return a.replace(l,n)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(g,"\x26quot;")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},
-transformPlainTextToHtml:function(a,f){var b=f==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),k=f==CKEDITOR.ENTER_P?"p":"div";if(!b){var d=/\n{2}/g;if(d.test(c))var q="\x3c"+k+"\x3e",n="\x3c/"+k+"\x3e",c=q+c.replace(d,function(){return n+q})+n}c=c.replace(/\n/g,"\x3cbr\x3e");b||(c=c.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+k+"\x3e)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g,"\x26nbsp;");return c=c.replace(/(>|\s) /g,
+b=[],c=0;c<a.length;c++)if(f=a[c])/@import|[{}]/.test(f)?b.push("\x3cstyle\x3e"+f+"\x3c/style\x3e"):b.push('\x3clink type\x3d"text/css" rel\x3dstylesheet href\x3d"'+f+'"\x3e');return b.join("")},htmlEncode:function(a){return void 0===a||null===a?"":String(a).replace(b,"\x26amp;").replace(c,"\x26gt;").replace(e,"\x26lt;")},htmlDecode:function(a){return a.replace(h,n)},htmlEncodeAttr:function(a){return CKEDITOR.tools.htmlEncode(a).replace(g,"\x26quot;")},htmlDecodeAttr:function(a){return CKEDITOR.tools.htmlDecode(a)},
+transformPlainTextToHtml:function(a,f){var b=f==CKEDITOR.ENTER_BR,c=this.htmlEncode(a.replace(/\r\n/g,"\n")),c=c.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;"),k=f==CKEDITOR.ENTER_P?"p":"div";if(!b){var d=/\n{2}/g;if(d.test(c))var n="\x3c"+k+"\x3e",m="\x3c/"+k+"\x3e",c=n+c.replace(d,function(){return m+n})+m}c=c.replace(/\n/g,"\x3cbr\x3e");b||(c=c.replace(new RegExp("\x3cbr\x3e(?\x3d\x3c/"+k+"\x3e)"),function(a){return CKEDITOR.tools.repeat(a,2)}));c=c.replace(/^ | $/g,"\x26nbsp;");return c=c.replace(/(>|\s) /g,
 function(a,f){return f+"\x26nbsp;"}).replace(/ (?=<)/g,"\x26nbsp;")},getNextNumber:function(){var a=0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},getUniqueId:function(){for(var a="e",f=0;8>f;f++)a+=Math.floor(65536*(1+Math.random())).toString(16).substring(1);return a},override:function(a,f){var b=f(a);b.prototype=a.prototype;return b},setTimeout:function(a,f,b,c,k){k||(k=window);b||(b=k);return k.setTimeout(function(){c?a.apply(b,[].concat(c)):a.apply(b)},
-f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if("function"==typeof f)for(var b=0,c=a.length;b<c;b++){if(f(a[b]))return b}else{if(a.indexOf)return a.indexOf(f);b=0;for(c=a.length;b<c;b++)if(a[b]===f)return b}return-1},search:function(a,b){var c=CKEDITOR.tools.indexOf(a,
-b);return 0<=c?a[c]:null},bind:function(a,b){return function(){return a.apply(b,arguments)}},createClass:function(a){var b=a.$,c=a.base,k=a.privates||a._,d=a.proto;a=a.statics;!b&&(b=function(){c&&this.base.apply(this,arguments)});if(k)var n=b,b=function(){var a=this._||(this._={}),b;for(b in k){var f=k[b];a[b]="function"==typeof f?CKEDITOR.tools.bind(f,this):f}n.apply(this,arguments)};c&&(b.prototype=this.prototypedCopy(c.prototype),b.prototype.constructor=b,b.base=c,b.baseProto=c.prototype,b.prototype.base=
-function(){this.base=c.prototype.base;c.apply(this,arguments);this.base=arguments.callee});d&&this.extend(b.prototype,d,!0);a&&this.extend(b,a,!0);return b},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,b;return function(c){b=CKEDITOR.tools.trim(c+"")+"px";return a.test(b)?
-b:c||""}}(),convertToPx:function(){var a;return function(b){a||(a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(a));return/%$/.test(b)?b:(a.setStyle("width",b),a.$.clientWidth)}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,c=arguments.length;b<c;b++){var k=arguments[b];try{a=k();break}catch(d){}}return a},
-genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var b=arguments,c=this;window.setTimeout(function(){a.apply(c,b)},0)}},normalizeCssText:function(a,b){var c=[],k,d=CKEDITOR.tools.parseCssText(a,!0,b);for(k in d)c.push(k+":"+d[k]);c.sort();return c.length?c.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,k){a=[b,c,k];for(b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);
-return"#"+a.join("")})},parseCssText:function(a,b,c){var k={};c&&(c=new CKEDITOR.dom.element("span"),c.setAttribute("style",a),a=CKEDITOR.tools.convertRgbToHex(c.getAttribute("style")||""));if(!a||";"==a)return k;a.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,d){b&&(c=c.toLowerCase(),"font-family"==c&&(d=d.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,",")),d=CKEDITOR.tools.trim(d));k[c]=d});return k},writeCssText:function(a,b){var c,k=[];for(c in a)k.push(c+
-":"+a[c]);b&&k.sort();return k.join("; ")},objectCompare:function(a,b,c){var k;if(!a&&!b)return!0;if(!a||!b)return!1;for(k in a)if(a[k]!=b[k])return!1;if(!c)for(k in b)if(a[k]!=b[k])return!1;return!0},objectKeys:function(a){var b=[],c;for(c in a)b.push(c);return b},convertArrayToObject:function(a,b){var c={};1==arguments.length&&(b=!0);for(var k=0,d=a.length;k<d;++k)c[a[k]]=b;return c},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(b){a=a?a.replace(/.+?(?:\.|$)/,
-""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,b,c){function k(){n=(new Date).getTime();d=!1;c?b.call(c):b()}var d,n=0;return{input:function(){if(!d){var b=(new Date).getTime()-n;b<a?d=setTimeout(k,a-b):k()}},reset:function(){d&&clearTimeout(d);d=n=0}}},enableHtml5Elements:function(a,b){for(var c="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),
-k=c.length,d;k--;)d=a.createElement(c[k]),b&&a.appendChild(d)},checkIfAnyArrayItemMatches:function(a,b){for(var c=0,k=a.length;c<k;++c)if(a[c].match(b))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,b){for(var c in a)if(c.match(b))return!0;return!1},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(a){a=a.toLowerCase();for(var b=document.cookie.split(";"),c,k,d=0;d<b.length;d++)if(c=b[d].split("\x3d"),
-k=decodeURIComponent(CKEDITOR.tools.trim(c[0]).toLowerCase()),k===a)return decodeURIComponent(1<c.length?c[1]:"");return null},setCookie:function(a,b){document.cookie=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)+";path\x3d/"},getCsrfToken:function(){var a=CKEDITOR.tools.getCookie("ckCsrfToken");if(!a||40!=a.length){var a=[],b="";if(window.crypto&&window.crypto.getRandomValues)a=new Uint8Array(40),window.crypto.getRandomValues(a);else for(var c=0;40>c;c++)a.push(Math.floor(256*Math.random()));
-for(c=0;c<a.length;c++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[c]%36),b=b+(.5<Math.random()?k.toUpperCase():k);a=b;CKEDITOR.tools.setCookie("ckCsrfToken",a)}return a}}})();
-CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,d=function(a,b){for(var c=CKEDITOR.tools.clone(a),k=1;k<arguments.length;k++){b=arguments[k];for(var d in b)delete c[d]}return c},b={},c={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},g={command:1,link:1,meta:1,noscript:1,script:1,style:1},l={},k={"#":1},n={center:1,dir:1,noframes:1};
+f||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(f){return f.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(f){return f.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;return function(f){return f.replace(a,"")}}(),indexOf:function(a,f){if("function"==typeof f)for(var b=0,c=a.length;b<c;b++){if(f(a[b]))return b}else{if(a.indexOf)return a.indexOf(f);b=0;for(c=a.length;b<c;b++)if(a[b]===f)return b}return-1},search:function(a,f){var b=CKEDITOR.tools.indexOf(a,
+f);return 0<=b?a[b]:null},bind:function(a,f){return function(){return a.apply(f,arguments)}},createClass:function(a){var f=a.$,b=a.base,c=a.privates||a._,k=a.proto;a=a.statics;!f&&(f=function(){b&&this.base.apply(this,arguments)});if(c)var d=f,f=function(){var a=this._||(this._={}),f;for(f in c){var b=c[f];a[f]="function"==typeof b?CKEDITOR.tools.bind(b,this):b}d.apply(this,arguments)};b&&(f.prototype=this.prototypedCopy(b.prototype),f.prototype.constructor=f,f.base=b,f.baseProto=b.prototype,f.prototype.base=
+function(){this.base=b.prototype.base;b.apply(this,arguments);this.base=arguments.callee});k&&this.extend(f.prototype,k,!0);a&&this.extend(f,a,!0);return f},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,f;return function(b){f=CKEDITOR.tools.trim(b+"")+"px";return a.test(f)?
+f:b||""}}(),convertToPx:function(){var a;return function(f){a||(a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"\x3e\x3c/div\x3e',CKEDITOR.document),CKEDITOR.document.getBody().append(a));return/%$/.test(f)?f:(a.setStyle("width",f),a.$.clientWidth)}}(),repeat:function(a,f){return Array(f+1).join(a)},tryThese:function(){for(var a,f=0,b=arguments.length;f<b;f++){var c=arguments[f];try{a=c();break}catch(k){}}return a},
+genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var f=arguments,b=this;window.setTimeout(function(){a.apply(b,f)},0)}},normalizeCssText:function(a,f){var b=[],c,k=CKEDITOR.tools.parseCssText(a,!0,f);for(c in k)b.push(c+":"+k[c]);b.sort();return b.length?b.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,k){a=[b,c,k];for(b=0;3>b;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);
+return"#"+a.join("")})},normalizeHex:function(a){return a.replace(/#(([0-9a-f]{3}){1,2})($|;|\s+)/gi,function(a,b,c,k){a=b.toLowerCase();3==a.length&&(a=a.split(""),a=[a[0],a[0],a[1],a[1],a[2],a[2]].join(""));return"#"+a+k})},parseCssText:function(a,f,b){var c={};b&&(a=(new CKEDITOR.dom.element("span")).setAttribute("style",a).getAttribute("style")||"");a&&(a=CKEDITOR.tools.normalizeHex(CKEDITOR.tools.convertRgbToHex(a)));if(!a||";"==a)return c;a.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
+function(a,b,k){f&&(b=b.toLowerCase(),"font-family"==b&&(k=k.replace(/\s*,\s*/g,",")),k=CKEDITOR.tools.trim(k));c[b]=k});return c},writeCssText:function(a,f){var b,c=[];for(b in a)c.push(b+":"+a[b]);f&&c.sort();return c.join("; ")},objectCompare:function(a,f,b){var c;if(!a&&!f)return!0;if(!a||!f)return!1;for(c in a)if(a[c]!=f[c])return!1;if(!b)for(c in f)if(a[c]!=f[c])return!1;return!0},objectKeys:function(a){var f=[],b;for(b in a)f.push(b);return f},convertArrayToObject:function(a,f){var b={};1==
+arguments.length&&(f=!0);for(var c=0,k=a.length;c<k;++c)b[a[c]]=f;return b},fixDomain:function(){for(var a;;)try{a=window.parent.document.domain;break}catch(f){a=a?a.replace(/.+?(?:\.|$)/,""):document.domain;if(!a)break;document.domain=a}return!!a},eventsBuffer:function(a,f,b){function c(){d=(new Date).getTime();k=!1;b?f.call(b):f()}var k,d=0;return{input:function(){if(!k){var f=(new Date).getTime()-d;f<a?k=setTimeout(c,a-f):c()}},reset:function(){k&&clearTimeout(k);k=d=0}}},enableHtml5Elements:function(a,
+f){for(var b="abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video".split(" "),c=b.length,k;c--;)k=a.createElement(b[c]),f&&a.appendChild(k)},checkIfAnyArrayItemMatches:function(a,f){for(var b=0,c=a.length;b<c;++b)if(a[b].match(f))return!0;return!1},checkIfAnyObjectPropertyMatches:function(a,f){for(var b in a)if(b.match(f))return!0;return!1},keystrokeToString:function(a,b){var c=b&16711680,k=
+b&65535,d=CKEDITOR.env.mac,n=[],e=[];c&CKEDITOR.CTRL&&(n.push(d?"⌘":a[17]),e.push(d?a[224]:a[17]));c&CKEDITOR.ALT&&(n.push(d?"⌥":a[18]),e.push(a[18]));c&CKEDITOR.SHIFT&&(n.push(d?"⇧":a[16]),e.push(a[16]));k&&(a[k]?(n.push(a[k]),e.push(a[k])):(n.push(String.fromCharCode(k)),e.push(String.fromCharCode(k))));return{display:n.join("+"),aria:e.join("+")}},transparentImageData:"data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw\x3d\x3d",getCookie:function(a){a=a.toLowerCase();
+for(var b=document.cookie.split(";"),c,k,d=0;d<b.length;d++)if(c=b[d].split("\x3d"),k=decodeURIComponent(CKEDITOR.tools.trim(c[0]).toLowerCase()),k===a)return decodeURIComponent(1<c.length?c[1]:"");return null},setCookie:function(a,b){document.cookie=encodeURIComponent(a)+"\x3d"+encodeURIComponent(b)+";path\x3d/"},getCsrfToken:function(){var a=CKEDITOR.tools.getCookie("ckCsrfToken");if(!a||40!=a.length){var a=[],b="";if(window.crypto&&window.crypto.getRandomValues)a=new Uint8Array(40),window.crypto.getRandomValues(a);
+else for(var c=0;40>c;c++)a.push(Math.floor(256*Math.random()));for(c=0;c<a.length;c++)var k="abcdefghijklmnopqrstuvwxyz0123456789".charAt(a[c]%36),b=b+(.5<Math.random()?k.toUpperCase():k);a=b;CKEDITOR.tools.setCookie("ckCsrfToken",a)}return a},escapeCss:function(a){return a?window.CSS&&CSS.escape?CSS.escape(a):isNaN(parseInt(a.charAt(0),10))?a:"\\3"+a.charAt(0)+" "+a.substring(1,a.length):""},getMouseButton:function(a){var b=(a=a.data)&&a.$;return a&&b?CKEDITOR.env.ie&&9>CKEDITOR.env.version?4===
+b.button?CKEDITOR.MOUSE_BUTTON_MIDDLE:1===b.button?CKEDITOR.MOUSE_BUTTON_LEFT:CKEDITOR.MOUSE_BUTTON_RIGHT:b.button:!1},style:{parse:{_colors:{aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",
+crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",
+dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",green:"#008000",greenyellow:"#ADFF2F",grey:"#808080",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",
+lightgray:"#D3D3D3",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",
+mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",
+red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},
+_borderStyle:"none hidden dotted dashed solid double groove ridge inset outset".split(" "),_widthRegExp:/^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,_rgbaRegExp:/rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,_hslaRegExp:/hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,background:function(a){var b={},c=this._findColor(a);c.length&&(b.color=c[0],CKEDITOR.tools.array.forEach(c,function(b){a=a.replace(b,"")}));if(a=CKEDITOR.tools.trim(a))b.unprocessed=
+a;return b},margin:function(a){function b(a){c.top=k[a[0]];c.right=k[a[1]];c.bottom=k[a[2]];c.left=k[a[3]]}var c={},k=a.match(/(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset)/g)||["0px"];switch(k.length){case 1:b([0,0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}return c},border:function(a){var b={};a=a.split(/\s+/);CKEDITOR.tools.array.forEach(a,function(a){if(!b.color){var c=CKEDITOR.tools.style.parse._findColor(a);if(c.length){b.color=c[0];return}}b.style||
+-1===CKEDITOR.tools.indexOf(CKEDITOR.tools.style.parse._borderStyle,a)?!b.width&&CKEDITOR.tools.style.parse._widthRegExp.test(a)&&(b.width=a):b.style=a});return b},_findColor:function(a){var b=[],c=CKEDITOR.tools.array,b=b.concat(a.match(this._rgbaRegExp)||[]),b=b.concat(a.match(this._hslaRegExp)||[]);return b=b.concat(c.filter(a.split(/\s+/),function(a){return a.match(/^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi)?!0:a.toLowerCase()in CKEDITOR.tools.style.parse._colors}))}}},array:{filter:function(a,b,c){var k=
+[];this.forEach(a,function(d,n){b.call(c,d,n,a)&&k.push(d)});return k},forEach:function(a,b,c){var k=a.length,d;for(d=0;d<k;d++)b.call(c,a[d],d,a)},map:function(a,b,c){for(var k=[],d=0;d<a.length;d++)k.push(b.call(c,a[d],d,a));return k},reduce:function(a,b,c,k){for(var d=0;d<a.length;d++)c=b.call(k,c,a[d],d,a);return c}},object:{findKey:function(a,b){if("object"!==typeof a)return null;for(var c in a)if(a[c]===b)return c;return null}}};CKEDITOR.tools.array.indexOf=CKEDITOR.tools.indexOf;CKEDITOR.tools.array.isArray=
+CKEDITOR.tools.isArray;CKEDITOR.MOUSE_BUTTON_LEFT=0;CKEDITOR.MOUSE_BUTTON_MIDDLE=1;CKEDITOR.MOUSE_BUTTON_RIGHT=2})();
+CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,d=function(a,b){for(var c=CKEDITOR.tools.clone(a),k=1;k<arguments.length;k++){b=arguments[k];for(var d in b)delete c[d]}return c},b={},c={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},g={command:1,link:1,meta:1,noscript:1,script:1,style:1},h={},k={"#":1},n={center:1,dir:1,noframes:1};
 a(b,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(c,e,b,n);d={a:d(b,{a:1,button:1}),abbr:b,address:c,
-area:l,article:c,aside:c,audio:a({source:1,track:1},c),b:b,base:l,bdi:b,bdo:b,blockquote:c,body:c,br:l,button:d(b,{a:1,button:1}),canvas:b,caption:c,cite:b,code:b,col:l,colgroup:{col:1},command:l,datalist:a({option:1},b),dd:c,del:b,details:a({summary:1},c),dfn:b,div:c,dl:{dt:1,dd:1},dt:c,em:b,embed:l,fieldset:a({legend:1},c),figcaption:c,figure:a({figcaption:1},c),footer:c,form:c,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},g),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:l,html:a({head:1,
-body:1},c,g),i:b,iframe:k,img:l,input:l,ins:b,kbd:b,keygen:l,label:b,legend:b,li:c,link:l,main:c,map:c,mark:b,menu:a({li:1},c),meta:l,meter:d(b,{meter:1}),nav:c,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:k,output:b,p:b,param:l,pre:b,progress:d(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:k,section:c,select:{optgroup:1,option:1},small:b,source:l,span:b,strong:b,style:k,sub:b,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},b),
-sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:c,textarea:k,tfoot:{tr:1},th:c,thead:{tr:1},time:d(b,{time:1}),title:k,tr:{th:1,td:1},track:l,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},c),wbr:l,acronym:b,applet:a({param:1},c),basefont:l,big:b,center:c,dialog:l,dir:{li:1},font:b,isindex:l,noframes:c,strike:b,tt:b};a(d,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,n),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
+area:h,article:c,aside:c,audio:a({source:1,track:1},c),b:b,base:h,bdi:b,bdo:b,blockquote:c,body:c,br:h,button:d(b,{a:1,button:1}),canvas:b,caption:c,cite:b,code:b,col:h,colgroup:{col:1},command:h,datalist:a({option:1},b),dd:c,del:b,details:a({summary:1},c),dfn:b,div:c,dl:{dt:1,dd:1},dt:c,em:b,embed:h,fieldset:a({legend:1},c),figcaption:c,figure:a({figcaption:1},c),footer:c,form:c,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},g),header:c,hgroup:{h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},hr:h,html:a({head:1,
+body:1},c,g),i:b,iframe:k,img:h,input:h,ins:b,kbd:b,keygen:h,label:b,legend:b,li:c,link:h,main:c,map:c,mark:b,menu:a({li:1},c),meta:h,meter:d(b,{meter:1}),nav:c,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:k,output:b,p:b,param:h,pre:b,progress:d(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:k,section:c,select:{optgroup:1,option:1},small:b,source:h,span:b,strong:b,style:k,sub:b,summary:a({h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},b),
+sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:c,textarea:k,tfoot:{tr:1},th:c,thead:{tr:1},time:d(b,{time:1}),title:k,tr:{th:1,td:1},track:h,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},c),wbr:h,acronym:b,applet:a({param:1},c),basefont:h,big:b,center:c,dialog:h,dir:{li:1},font:b,isindex:h,noframes:c,strike:b,tt:b};a(d,{$block:a({audio:1,dd:1,dt:1,figcaption:1,li:1,video:1},e,n),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
 fieldset:1,figcaption:1,figure:1,footer:1,form:1,header:1,hgroup:1,main:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,figcaption:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,main:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,
 track:1,wbr:1},$inline:b,$list:{dl:1,ol:1,ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},d.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,
 s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return d}();
@@ -73,192 +85,201 @@ CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.foc
 a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}});CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;
 CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var d=new CKEDITOR.dom.element("link");d.setAttributes({rel:"stylesheet",type:"text/css",href:a});this.getHead().append(d)}},appendStyleText:function(a){if(this.$.createStyleSheet){var d=this.$.createStyleSheet("");d.cssText=a}else{var b=new CKEDITOR.dom.element("style",this);b.append(new CKEDITOR.dom.text(a,this));this.getHead().append(b)}return d||
 b.$.sheet},createElement:function(a,d){var b=new CKEDITOR.dom.element(a,this);d&&(d.attributes&&b.setAttributes(d.attributes),d.styles&&b.setStyles(d.styles));return b},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},getActive:function(){var a;try{a=this.$.activeElement}catch(d){return null}return new CKEDITOR.dom.element(a)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,d){for(var b=
-this.$.documentElement,c=0;b&&c<a.length;c++){var e=a[c];if(d)for(var g=-1,l=0;l<b.childNodes.length;l++){var k=b.childNodes[l];if(!0!==d||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(g++,g==e){b=k;break}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,d){CKEDITOR.env.ie&&8>=document.documentMode||!d||(a=d+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];
+this.$.documentElement,c=0;b&&c<a.length;c++){var e=a[c];if(d)for(var g=-1,h=0;h<b.childNodes.length;h++){var k=b.childNodes[h];if(!0!==d||3!=k.nodeType||!k.previousSibling||3!=k.previousSibling.nodeType)if(g++,g==e){b=k;break}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,d){CKEDITOR.env.ie&&8>=document.documentMode||!d||(a=d+":"+a);return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];
 return a=a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),!0)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*<!DOCTYPE[^>]*?>)|^/i,'$\x26\n\x3cscript data-cke-temp\x3d"1"\x3e('+
 CKEDITOR.tools.fixDomain+")();\x3c/script\x3e"));this.$.write(a);this.$.close()},find:function(a){return new CKEDITOR.dom.nodeList(this.$.querySelectorAll(a))},findOne:function(a){return(a=this.$.querySelector(a))?new CKEDITOR.dom.element(a):null},_getHtml5ShivFrag:function(){var a=this.getCustomData("html5ShivFrag");a||(a=this.$.createDocumentFragment(),CKEDITOR.tools.enableHtml5Elements(a,!0),this.setCustomData("html5ShivFrag",a));return a}});CKEDITOR.dom.nodeList=function(a){this.$=a};
-CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null}};CKEDITOR.dom.element=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;
-CKEDITOR.dom.element.createFromHtml=function(a,d){var b=new CKEDITOR.dom.element("div",d);b.setHtml(a);return b.getFirst().remove()};CKEDITOR.dom.element.setMarker=function(a,d,b,c){var e=d.getCustomData("list_marker_id")||d.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),g=d.getCustomData("list_marker_names")||d.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=d;g[b]=1;return d.setCustomData(b,c)};
-CKEDITOR.dom.element.clearAllMarkers=function(a){for(var d in a)CKEDITOR.dom.element.clearMarkers(a,a[d],1)};CKEDITOR.dom.element.clearMarkers=function(a,d,b){var c=d.getCustomData("list_marker_names"),e=d.getCustomData("list_marker_id"),g;for(g in c)d.removeCustomData(g);d.removeCustomData("list_marker_names");b&&(d.removeCustomData("list_marker_id"),delete a[e])};
-(function(){function a(a,b){return-1<(" "+a+" ").replace(g," ").indexOf(" "+b+" ")}function d(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function b(a,b){return"#"+a.$.id+" "+b.split(/,\s*/).join(", #"+a.$.id+" ")}function c(a){for(var b=0,c=0,f=l[a].length;c<f;c++)b+=parseInt(this.getComputedStyle(l[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!==typeof e&&null!==String(e.add).match(/\[Native code\]/gi),
-g=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){this.$.classList.add(a);return this}:function(b){var c=this.$.className;c&&(a(c,b)||(c+=" "+b));this.$.className=c||b;return this},removeClass:e?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(b){var c=this.getAttribute("class");c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+b+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",
-c):this.removeAttribute("class"));return this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?
-this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this);c.setEndAfter(a);var f=c.extractContents(!1,b||!1);c.insertNode(this.remove());
-f.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,
-"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();c.appendChild(b);b.innerHTML=a;c.removeChild(b);return a}catch(f){this.$.innerHTML=
-"";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a=
-"className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):
-null}return this.$.getAttribute(a,2)}:a}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
-getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=
-b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];
-for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,
-1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var c=this.getParent();
-c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,c;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(c)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;for(var a=this.getChildren(),
-b=0,c=a.count();b<c;b++){var f=a.getItem(b);if(f.type!=CKEDITOR.NODE_ELEMENT||!f.data("cke-bookmark"))if(f.type==CKEDITOR.NODE_ELEMENT&&!f.isEmptyInlineRemoveable()||f.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(f.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;default:if(c.specified)return!0}}return!1}:
-function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(b){var c=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return c?c.specified:!1}return CKEDITOR.env.ie?
-8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;a=a.$;if(c!=a){var f;if(b)for(;f=c.lastChild;)a.insertBefore(c.removeChild(f),a.firstChild);else for(;f=c.firstChild;)a.appendChild(c.removeChild(f))}},mergeSiblings:function(){function a(b,c,f){if(c&&c.type==CKEDITOR.NODE_ELEMENT){for(var d=[];c.data("cke-bookmark")||c.isEmptyInlineRemoveable();)if(d.push(c),
-c=f?c.getNext():c.getPrevious(),!c||c.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(c)){for(var k=f?b.getLast():b.getFirst();d.length;)d.shift().move(b,!f);c.moveChildren(b,!f);c.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,b){this.$.setAttribute(a,
-b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this,arguments)}catch(f){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,
-a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a)a.hasOwnProperty(b)&&this.removeAttribute(b)},
-removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var c=["top","left","right","bottom"],f;"border"==a&&(f=["color","style","width"]);for(var b=[],d=0;d<c.length;d++)if(f)for(var e=0;e<f.length;e++)b.push([a,c[d],f[e]].join("-"));else b.push([a,c[d]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},
-setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable",
-"on");for(var a,b=this.getElementsByTag("*"),c=0,f=b.count();c<f;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,f=this.getDocument(),d=f.getBody(),e="BackCompat"==f.$.compatMode;if(document.documentElement.getBoundingClientRect){var u=this.$.getBoundingClientRect(),g=f.$.documentElement,q=g.clientTop||
-d.$.clientTop||0,y=g.clientLeft||d.$.clientLeft||0,l=!0;CKEDITOR.env.ie&&(l=f.getDocumentElement().contains(this),f=f.getBody().contains(this),l=e&&f||!e&&l);l&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=d.$.scrollLeft||g.scrollLeft,c=d.$.scrollTop||g.scrollTop):(c=e?d.$:g,b=c.scrollLeft,c=c.scrollTop),b=u.left+b-y,c=u.top+c-q)}else for(q=this,y=null;q&&"body"!=q.getName()&&"html"!=q.getName();){b+=q.$.offsetLeft-q.$.scrollLeft;c+=q.$.offsetTop-q.$.scrollTop;q.equals(this)||
-(b+=q.$.clientLeft||0,c+=q.$.clientTop||0);for(;y&&!y.equals(q);)b-=y.$.scrollLeft,c-=y.$.scrollTop,y=y.getParent();y=q;q=(u=q.$.offsetParent)?new CKEDITOR.dom.element(u):null}a&&(u=this.getWindow(),q=a.getWindow(),!u.equals(q)&&u.$.frameElement&&(a=(new CKEDITOR.dom.element(u.$.frameElement)).getDocumentPosition(a),b+=a.x,c+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||e||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0);return{x:b,y:c}},scrollIntoView:function(a){var b=
-this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var c=b.getWindow();try{var f=c.$.frameElement;f&&(b=new CKEDITOR.dom.element(f))}catch(d){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var f,d,e,u;function g(b,c){/body|html/.test(a.getName())?a.getWindow().$.scrollBy(b,c):(a.$.scrollLeft+=b,a.$.scrollTop+=c)}function q(a,b){var c={x:0,y:0};if(!a.is(l?
-"body":"html")){var f=a.$.getBoundingClientRect();c.x=f.left;c.y=f.top}f=a.getWindow();f.equals(b)||(f=q(CKEDITOR.dom.element.get(f.$.frameElement),b),c.x+=f.x,c.y+=f.y);return c}function y(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());e=a.getDocument();var l="BackCompat"==e.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=l?e.getBody():e.getDocumentElement());e=a.getWindow();d=q(this,e);var t=q(a,e),z=this.$.offsetHeight;f=this.$.offsetWidth;var h=a.$.clientHeight,
-p=a.$.clientWidth;e=d.x-y(this,"left")-t.x||0;u=d.y-y(this,"top")-t.y||0;f=d.x+f+y(this,"right")-(t.x+p)||0;d=d.y+z+y(this,"bottom")-(t.y+h)||0;(0>u||0<d)&&g(0,!0===b?u:!1===b?d:0>u?u:d);c&&(0>e||0<f)&&g(0>e?e:f,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",!0);c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+
-"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",!0);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,
-b){var c=this.$.attributes;b=b||{};for(var f=0;f<c.length;f++){var d=c[f],e=d.nodeName.toLowerCase(),u;if(!(e in b))if("checked"==e&&(u=this.getAttribute(e)))a.setAttribute(e,u);else if(!CKEDITOR.env.ie||this.hasAttribute(e))u=this.getAttribute(e),null===u&&(u=d.nodeValue),a.setAttribute(e,u)}""!==this.$.style.cssText&&(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);
-this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,c){var f=b.childNodes;if(0<=c&&c<f.length)return f[c]}return function(b){var c=this.$;if(b.slice)for(b=b.slice();0<b.length&&c;)c=a(c,b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&
-b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},
-getEditor:function(){var a=CKEDITOR.instances,b,c;for(b in a)if(c=a[b],c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return c;return null},find:function(a){var c=d(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this,a)));c();return a},findOne:function(a){var c=d(this);a=this.$.querySelector(b(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var f=a(this);if(!1!==f){c=this.getChildren();for(var d=0;d<c.count();d++)f=
-c.getItem(d),f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):b&&f.type!=b||a(f)}}});var l={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=c.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],
-this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=c.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a};
+CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){return 0>a||a>=this.$.length?null:(a=this.$[a])?new CKEDITOR.dom.node(a):null},toArray:function(){return CKEDITOR.tools.array.map(this.$,function(a){return new CKEDITOR.dom.node(a)})}};CKEDITOR.dom.element=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)};
+CKEDITOR.dom.element.get=function(a){return(a="string"==typeof a?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(a,d){var b=new CKEDITOR.dom.element("div",d);b.setHtml(a);return b.getFirst().remove()};
+CKEDITOR.dom.element.setMarker=function(a,d,b,c){var e=d.getCustomData("list_marker_id")||d.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),g=d.getCustomData("list_marker_names")||d.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=d;g[b]=1;return d.setCustomData(b,c)};CKEDITOR.dom.element.clearAllMarkers=function(a){for(var d in a)CKEDITOR.dom.element.clearMarkers(a,a[d],1)};
+CKEDITOR.dom.element.clearMarkers=function(a,d,b){var c=d.getCustomData("list_marker_names"),e=d.getCustomData("list_marker_id"),g;for(g in c)d.removeCustomData(g);d.removeCustomData("list_marker_names");b&&(d.removeCustomData("list_marker_id"),delete a[e])};
+(function(){function a(a,b){return-1<(" "+a+" ").replace(g," ").indexOf(" "+b+" ")}function d(a){var b=!0;a.$.id||(a.$.id="cke_tmp_"+CKEDITOR.tools.getNextNumber(),b=!1);return function(){b||a.removeAttribute("id")}}function b(a,b){var c=CKEDITOR.tools.escapeCss(a.$.id);return"#"+c+" "+b.split(/,\s*/).join(", #"+c+" ")}function c(a){for(var b=0,c=0,f=h[a].length;c<f;c++)b+=parseFloat(this.getComputedStyle(h[a][c])||0,10)||0;return b}var e=document.createElement("_").classList,e="undefined"!==typeof e&&
+null!==String(e.add).match(/\[Native code\]/gi),g=/[\n\t\r]/g;CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:e?function(a){this.$.classList.add(a);return this}:function(b){var c=this.$.className;c&&(a(c,b)||(c+=" "+b));this.$.className=c||b;return this},removeClass:e?function(a){var b=this.$;b.classList.remove(a);b.className||b.removeAttribute("class");return this}:function(b){var c=this.getAttribute("class");c&&a(c,b)&&((c=c.replace(new RegExp("(?:^|\\s+)"+
+b+"(?\x3d\\s|$)"),"").replace(/^\s+/,""))?this.setAttribute("class",c):this.removeAttribute("class"));return this},hasClass:function(b){return a(this.$.className,b)},append:function(a,b){"string"==typeof a&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){null!=
+this.$.text&&CKEDITOR.env.ie&&9>CKEDITOR.env.version?this.$.text+=a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(a){if(a||CKEDITOR.env.needsBrFiller){for(a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();a&&a.is&&a.is("br")||(a=this.getDocument().createElement("br"),CKEDITOR.env.gecko&&a.setAttribute("type","_moz"),this.append(a))}},breakParent:function(a,b){var c=new CKEDITOR.dom.range(this.getDocument());c.setStartAfter(this);c.setEndAfter(a);
+var f=c.extractContents(!1,b||!1),d;c.insertNode(this.remove());if(CKEDITOR.env.ie&&!CKEDITOR.env.edge){for(c=new CKEDITOR.dom.element("div");d=f.getFirst();)d.$.style.backgroundColor&&(d.$.style.backgroundColor=d.$.style.backgroundColor),c.append(d);c.insertAfter(this);c.remove(!0)}else f.insertAfterNode(this)},contains:document.compareDocumentPosition?function(a){return!!(this.$.compareDocumentPosition(a.$)&16)}:function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):
+b!=a.$&&b.contains(a.$)},focus:function(){function a(){try{this.$.focus()}catch(b){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(!0));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},
+this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:CKEDITOR.env.ie&&9>CKEDITOR.env.version?function(a){try{var b=this.$;if(this.getParent())return b.innerHTML=a;var c=this.getDocument()._getHtml5ShivFrag();c.appendChild(b);b.innerHTML=a;c.removeChild(b);return a}catch(f){this.$.innerHTML="";b=new CKEDITOR.dom.element("body",this.getDocument());b.$.innerHTML=a;for(b=b.getChildren();b.count();)this.append(b.getItem(0));return a}}:
+function(a){return this.$.innerHTML=a},setText:function(){var a=document.createElement("p");a.innerHTML="x";a=a.textContent;return function(b){this.$[a?"textContent":"innerText"]=b}}(),getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":return a=this.$.getAttribute(a,
+2),0!==a&&0===this.$.tabIndex&&(a=null),a;case "checked":return a=this.$.attributes.getNamedItem(a),(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getAttributes:function(a){var b={},c=this.$.attributes,f;a=CKEDITOR.tools.isArray(a)?
+a:[];for(f=0;f<c.length;f++)-1===CKEDITOR.tools.indexOf(a,c[f].name)&&(b[c[f].name]=c[f].value);return b},getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:document.defaultView&&document.defaultView.getComputedStyle?function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""}:function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=
+function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,getTabIndex:function(){var a=this.$.tabIndex;return 0!==a||CKEDITOR.dtd.$tabIndex[this.getName()]||0===parseInt(this.getAttribute("tabindex"),10)?a:-1},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();
+if(CKEDITOR.env.ie&&8>=document.documentMode){var b=this.$.scopeName;"HTML"!=b&&(a=b.toLowerCase()+":"+a)}this.getName=function(){return a};return this.getName()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&a&&!a(b)&&(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},
+is:function(){var a=this.getName();if("object"==typeof arguments[0])return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return!0;return!1},isEditable:function(a){var b=this.getName();return this.isReadOnly()||"none"==this.getComputedStyle("display")||"hidden"==this.getComputedStyle("visibility")||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount()?!1:!1!==a?(a=CKEDITOR.dtd[b]||
+CKEDITOR.dtd.span,!(!a||!a["#"])):!0},isIdentical:function(a){var b=this.clone(0,1);a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode)return b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText),a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText),b.$.isEqualNode(a.$);b=b.getOuterHtml();a=
+a.getOuterHtml();if(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&this.is("a")){var c=this.getParent();c.type==CKEDITOR.NODE_ELEMENT&&(c=c.clone(),c.setHtml(b),b=c.getHtml(),c.setHtml(a),a=c.getHtml())}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&"hidden"!=this.getComputedStyle("visibility"),b,c;a&&CKEDITOR.env.webkit&&(b=this.getWindow(),!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement)&&(a=(new CKEDITOR.dom.element(c)).isVisible()));return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return!1;
+for(var a=this.getChildren(),b=0,c=a.count();b<c;b++){var f=a.getItem(b);if(f.type!=CKEDITOR.NODE_ELEMENT||!f.data("cke-bookmark"))if(f.type==CKEDITOR.NODE_ELEMENT&&!f.isEmptyInlineRemoveable()||f.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(f.getText()))return!1}return!0},hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return!0;case "data-cke-expando":continue;
+default:if(c.specified)return!0}}return!1}:function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return 0<b&&(2<b||!c[a[0].nodeName]||2==b&&!c[a[1].nodeName])},hasAttribute:function(){function a(b){var c=this.$.attributes.getNamedItem(b);if("input"==this.getName())switch(b){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":return b=this.getAttribute("type"),"checkbox"==b||"radio"==b?"on"!=this.$.value:!!this.$.value}return c?
+c.specified:!1}return CKEDITOR.env.ie?8>CKEDITOR.env.version?function(b){return"name"==b?!!this.$.name:a.call(this,b)}:a:function(a){return!!this.$.attributes.getNamedItem(a)}}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$;a=a.$;if(c!=a){var f;if(b)for(;f=c.lastChild;)a.insertBefore(c.removeChild(f),a.firstChild);else for(;f=c.firstChild;)a.appendChild(c.removeChild(f))}},mergeSiblings:function(){function a(b,c,f){if(c&&c.type==CKEDITOR.NODE_ELEMENT){for(var d=
+[];c.data("cke-bookmark")||c.isEmptyInlineRemoveable();)if(d.push(c),c=f?c.getNext():c.getPrevious(),!c||c.type!=CKEDITOR.NODE_ELEMENT)return;if(b.isIdentical(c)){for(var k=f?b.getLast():b.getFirst();d.length;)d.shift().move(b,!f);c.moveChildren(b,!f);c.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(!1===b||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a"))a(this,this.getNext(),!0),a(this,this.getPrevious())}}(),show:function(){this.setStyles({display:"",
+visibility:""})},setAttribute:function(){var a=function(a,b){this.$.setAttribute(a,b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(b,c){"class"==b?this.$.className=c:"style"==b?this.$.style.cssText=c:"tabindex"==b?this.$.tabIndex=c:"checked"==b?this.$.checked=c:"contenteditable"==b?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if("src"==b&&c.match(/^http:\/\//))try{a.apply(this,
+arguments)}catch(f){}else a.apply(this,arguments);return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?function(a){"class"==a?a="className":"tabindex"==a?a="tabIndex":"contenteditable"==a&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=
+0;b<a.length;b++)this.removeAttribute(a[b]);else for(b in a=a||this.getAttributes(),a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(b.removeProperty||"border"!=a&&"margin"!=a&&"padding"!=a)b.removeProperty?b.removeProperty(a):b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a)),this.$.style.cssText||this.removeAttribute("style");else{var c=["top","left","right","bottom"],f;"border"==a&&(f=["color","style","width"]);for(var b=[],d=0;d<c.length;d++)if(f)for(var w=
+0;w<f.length;w++)b.push([a,c[d],f[w]].join("-"));else b.push([a,c[d]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){CKEDITOR.env.ie&&9>CKEDITOR.env.version?(a=Math.round(100*a),this.setStyle("filter",100<=a?"":"progid:DXImageTransform.Microsoft.Alpha(opacity\x3d"+a+")")):this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
+"none"));if(CKEDITOR.env.ie){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,f=b.count();c<f;c++)a=b.getItem(c),a.setAttribute("unselectable","on")}},getPositionedAncestor:function(){for(var a=this;"html"!=a.getName();){if("static"!=a.getComputedStyle("position"))return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,f=this.getDocument(),d=f.getBody(),w="BackCompat"==f.$.compatMode;if(document.documentElement.getBoundingClientRect&&(CKEDITOR.env.ie?
+8!==CKEDITOR.env.version:1)){var e=this.$.getBoundingClientRect(),g=f.$.documentElement,x=g.clientTop||d.$.clientTop||0,m=g.clientLeft||d.$.clientLeft||0,h=!0;CKEDITOR.env.ie&&(h=f.getDocumentElement().contains(this),f=f.getBody().contains(this),h=w&&f||!w&&h);h&&(CKEDITOR.env.webkit||CKEDITOR.env.ie&&12<=CKEDITOR.env.version?(b=d.$.scrollLeft||g.scrollLeft,c=d.$.scrollTop||g.scrollTop):(c=w?d.$:g,b=c.scrollLeft,c=c.scrollTop),b=e.left+b-m,c=e.top+c-x)}else for(x=this,m=null;x&&"body"!=x.getName()&&
+"html"!=x.getName();){b+=x.$.offsetLeft-x.$.scrollLeft;c+=x.$.offsetTop-x.$.scrollTop;x.equals(this)||(b+=x.$.clientLeft||0,c+=x.$.clientTop||0);for(;m&&!m.equals(x);)b-=m.$.scrollLeft,c-=m.$.scrollTop,m=m.getParent();m=x;x=(e=x.$.offsetParent)?new CKEDITOR.dom.element(e):null}a&&(e=this.getWindow(),x=a.getWindow(),!e.equals(x)&&e.$.frameElement&&(a=(new CKEDITOR.dom.element(e.$.frameElement)).getDocumentPosition(a),b+=a.x,c+=a.y));document.documentElement.getBoundingClientRect||!CKEDITOR.env.gecko||
+w||(b+=this.$.clientLeft?1:0,c+=this.$.clientTop?1:0);return{x:b,y:c}},scrollIntoView:function(a){var b=this.getParent();if(b){do if((b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1),b.is("html")){var c=b.getWindow();try{var f=c.$.frameElement;f&&(b=new CKEDITOR.dom.element(f))}catch(d){}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var f,d,w,e;function g(b,c){/body|html/.test(a.getName())?
+a.getWindow().$.scrollBy(b,c):(a.$.scrollLeft+=b,a.$.scrollTop+=c)}function x(a,b){var c={x:0,y:0};if(!a.is(h?"body":"html")){var f=a.$.getBoundingClientRect();c.x=f.left;c.y=f.top}f=a.getWindow();f.equals(b)||(f=x(CKEDITOR.dom.element.get(f.$.frameElement),b),c.x+=f.x,c.y+=f.y);return c}function m(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());w=a.getDocument();var h="BackCompat"==w.$.compatMode;a instanceof CKEDITOR.dom.window&&(a=h?w.getBody():w.getDocumentElement());
+CKEDITOR.env.webkit&&(w=this.getEditor(!1))&&(w._.previousScrollTop=null);w=a.getWindow();d=x(this,w);var z=x(a,w),I=this.$.offsetHeight;f=this.$.offsetWidth;var l=a.$.clientHeight,r=a.$.clientWidth;w=d.x-m(this,"left")-z.x||0;e=d.y-m(this,"top")-z.y||0;f=d.x+f+m(this,"right")-(z.x+r)||0;d=d.y+I+m(this,"bottom")-(z.y+l)||0;(0>e||0<d)&&g(0,!0===b?e:!1===b?d:0>e?e:d);c&&(0>w||0<f)&&g(0>w?w:f,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+
+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",!0);c&&this.removeAttribute("aria-disabled");break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",!0);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off"),this.removeClass(b+"_on"),this.removeClass(b+"_disabled"),c&&this.removeAttribute("aria-pressed"),c&&this.removeAttribute("aria-disabled")}},
+getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},copyAttributes:function(a,b){var c=this.$.attributes;b=b||{};for(var f=0;f<c.length;f++){var d=c[f],w=d.nodeName.toLowerCase(),e;if(!(w in b))if("checked"==w&&(e=this.getAttribute(w)))a.setAttribute(w,e);else if(!CKEDITOR.env.ie||this.hasAttribute(w))e=this.getAttribute(w),null===e&&(e=d.nodeValue),a.setAttribute(w,e)}""!==this.$.style.cssText&&
+(a.$.style.cssText=this.$.style.cssText)},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument();a=new CKEDITOR.dom.element(a,b);this.copyAttributes(a);this.moveChildren(a);this.getParent(!0)&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$;delete this.getName}},getChild:function(){function a(b,c){var f=b.childNodes;if(0<=c&&c<f.length)return f[c]}return function(b){var c=this.$;if(b.slice)for(b=b.slice();0<b.length&&c;)c=a(c,
+b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT&&b.hasClass("cke_enable_context_menu")}this.on("contextmenu",function(b){b.data.getTarget().getAscendant(a,!0)||b.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||
+"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(void 0===b)return this.getAttribute(a);!1===b?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(a){var b=CKEDITOR.instances,c,f,d;a=a||void 0===a;for(c in b)if(f=b[c],f.element.equals(this)&&f.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||!a&&(d=f.editable())&&(d.equals(this)||d.contains(this)))return f;return null},find:function(a){var c=d(this);a=new CKEDITOR.dom.nodeList(this.$.querySelectorAll(b(this,
+a)));c();return a},findOne:function(a){var c=d(this);a=this.$.querySelector(b(this,a));c();return a?new CKEDITOR.dom.element(a):null},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var f=a(this);if(!1!==f){c=this.getChildren();for(var d=0;d<c.count();d++)f=c.getItem(d),f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):b&&f.type!=b||a(f)}}});var h={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};
+CKEDITOR.dom.element.prototype.setSize=function(a,b,d){"number"==typeof b&&(!d||CKEDITOR.env.ie&&CKEDITOR.env.quirks||(b-=c.call(this,a)),this.setStyle(a,b+"px"))};CKEDITOR.dom.element.prototype.getSize=function(a,b){var d=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;b&&(d-=c.call(this,a));return d}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a};
 CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)},getHtml:function(){var a=new CKEDITOR.dom.element("div");this.clone(1,1).appendTo(a);return a.getHtml().replace(/\s*data-cke-expando=".*?"/g,"")}},!0,{append:1,appendBogus:1,clone:1,getFirst:1,getHtml:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,
 insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
-(function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var f,d=c.startContainer;f=c.endContainer;var e=c.startOffset,x=c.endOffset,z,h=this.guard,p=this.type,m=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var C=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),r=f.type==CKEDITOR.NODE_ELEMENT?f.getChild(x):f.getNext();this._.guardLTR=function(a,b){return(!b||!C.equals(a))&&(!r||
-!a.equals(r))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var G=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),g=d.type==CKEDITOR.NODE_ELEMENT?e?d.getChild(e-1):null:d.getPrevious();this._.guardRTL=function(a,b){return(!b||!G.equals(a))&&(!g||!a.equals(g))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var l=a?this._.guardRTL:this._.guardLTR;z=h?function(a,b){return!1===l(a,b)?!1:h(a,b)}:l;this.current?f=this.current[m](!1,p,z):(a?f.type==CKEDITOR.NODE_ELEMENT&&
-(f=0<x?f.getChild(x-1):!1===z(f,!0)?null:f.getPreviousSourceNode(!0,p,z)):(f=d,f.type==CKEDITOR.NODE_ELEMENT&&((f=f.getChild(e))||(f=!1===z(d,!0)?null:d.getNextSourceNode(!0,p,z)))),f&&!1===z(f)&&(f=null));for(;f&&!this._.end;){this.current=f;if(!this.evaluator||!1!==this.evaluator(f)){if(!b)return f}else if(b&&this.evaluator)return!1;f=f[m](!1,p,z)}this.end();return this.current=null}function d(b){for(var c,f=null;c=a.call(this,b);)f=c;return f}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=
+(function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed)return this.end(),null;c.optimize()}var f,d=c.startContainer;f=c.endContainer;var e=c.startOffset,D=c.endOffset,g,l=this.guard,r=this.type,J=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var H=f.type==CKEDITOR.NODE_ELEMENT?f:f.getParent(),k=f.type==CKEDITOR.NODE_ELEMENT?f.getChild(D):f.getNext();this._.guardLTR=function(a,b){return(!b||!H.equals(a))&&(!k||
+!a.equals(k))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var u=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),y=d.type==CKEDITOR.NODE_ELEMENT?e?d.getChild(e-1):null:d.getPrevious();this._.guardRTL=function(a,b){return(!b||!u.equals(a))&&(!y||!a.equals(y))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var v=a?this._.guardRTL:this._.guardLTR;g=l?function(a,b){return!1===v(a,b)?!1:l(a,b)}:v;this.current?f=this.current[J](!1,r,g):(a?f.type==CKEDITOR.NODE_ELEMENT&&
+(f=0<D?f.getChild(D-1):!1===g(f,!0)?null:f.getPreviousSourceNode(!0,r,g)):(f=d,f.type==CKEDITOR.NODE_ELEMENT&&((f=f.getChild(e))||(f=!1===g(d,!0)?null:d.getNextSourceNode(!0,r,g)))),f&&!1===g(f)&&(f=null));for(;f&&!this._.end;){this.current=f;if(!this.evaluator||!1!==this.evaluator(f)){if(!b)return f}else if(b&&this.evaluator)return!1;f=f[J](!1,r,g)}this.end();return this.current=null}function d(b){for(var c,f=null;c=a.call(this,b);)f=c;return f}CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=
 a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return!1!==a.call(this,0,1)},checkBackward:function(){return!1!==a.call(this,1,1)},lastForward:function(){return d.call(this)},lastBackward:function(){return d.call(this,1)},reset:function(){delete this.current;this._={}}}});var b={block:1,"list-item":1,table:1,"table-row-group":1,"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,
 "table-column":1,"table-cell":1,"table-caption":1},c={absolute:1,fixed:1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){return"none"!=this.getComputedStyle("float")||this.getComputedStyle("position")in c||!b[this.getComputedStyle("display")]?!!(this.is(CKEDITOR.dtd.$block)||a&&this.is(a)):!0};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=function(){return this.blockBoundary({br:1})};
 CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&"span"==a.getName()&&a.data("cke-bookmark")}return function(f){var d,e;d=f&&f.type!=CKEDITOR.NODE_ELEMENT&&(e=f.getParent())&&c(e);d=a?d:d||c(f);return!!(b^d)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()==CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE);return!!(a^c)}};CKEDITOR.dom.walker.invisible=
-function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(f){b(f)?f=1:(f.type==CKEDITOR.NODE_TEXT&&(f=f.getParent()),f=f.$.offsetWidth<=c);return!!(a^f)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!g(a)&&!l(a)}return function(c){var f=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());f&&(f=c.getParent(),c=c.getNext(b),f=f.isBlockBoundary()&&
-(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()));return!!(a^f)}};CKEDITOR.dom.walker.temp=function(a){return function(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b=b&&b.hasAttribute("data-cke-temp");return!!(a^b)}};var e=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,g=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),n=function(a){return l(a)||g(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=
-function(a){return function(b){b=g(b)||l(b)||k(b);return!!(a^b)}};var w=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,f=b.getChildCount();c<f;++c)if(!w(b.getChild(c)))return!!a;return!a}};var f=CKEDITOR.dom.walker.empty(),x=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(b[c]=1);return b}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=
-w(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(x)&&f(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(n(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}})();
+function(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.env.webkit?1:0;return function(f){b(f)?f=1:(f.type==CKEDITOR.NODE_TEXT&&(f=f.getParent()),f=f.$.offsetWidth<=c);return!!(a^f)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!g(a)&&!h(a)}return function(c){var f=CKEDITOR.env.needsBrFiller?c.is&&c.is("br"):c.getText&&e.test(c.getText());f&&(f=c.getParent(),c=c.getNext(b),f=f.isBlockBoundary()&&
+(!c||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()));return!!(a^f)}};CKEDITOR.dom.walker.temp=function(a){return function(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b=b&&b.hasAttribute("data-cke-temp");return!!(a^b)}};var e=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,g=CKEDITOR.dom.walker.whitespaces(),h=CKEDITOR.dom.walker.bookmark(),k=CKEDITOR.dom.walker.temp(),n=function(a){return h(a)||g(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$inline)&&!a.is(CKEDITOR.dtd.$empty)};CKEDITOR.dom.walker.ignored=
+function(a){return function(b){b=g(b)||h(b)||k(b);return!!(a^b)}};var q=CKEDITOR.dom.walker.ignored();CKEDITOR.dom.walker.empty=function(a){return function(b){for(var c=0,f=b.getChildCount();c<f;++c)if(!q(b.getChild(c)))return!!a;return!a}};var f=CKEDITOR.dom.walker.empty(),D=CKEDITOR.dom.walker.validEmptyBlockContainers=CKEDITOR.tools.extend(function(a){var b={},c;for(c in a)CKEDITOR.dtd[c]["#"]&&(b[c]=1);return b}(CKEDITOR.dtd.$block),{caption:1,td:1,th:1});CKEDITOR.dom.walker.editable=function(a){return function(b){b=
+q(b)?!1:b.type==CKEDITOR.NODE_TEXT||b.type==CKEDITOR.NODE_ELEMENT&&(b.is(CKEDITOR.dtd.$inline)||b.is("hr")||"false"==b.getAttribute("contenteditable")||!CKEDITOR.env.needsBrFiller&&b.is(D)&&f(b))?!0:!1;return!!(a^b)}};CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(n(a));return a&&(CKEDITOR.env.needsBrFiller?a.is&&a.is("br"):a.getText&&e.test(a.getText()))?a:!1}})();
 CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=!0;var d=a instanceof CKEDITOR.dom.document;this.document=d?a:a.getDocument();this.root=d?a.getBody():a};
-(function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function d(a,b,c,d,e){function q(a,b,c,f){var d=c?a.getPrevious():a.getNext();if(f&&k)return d;h||f?b.append(a.clone(!0,e),c):(a.remove(),z&&b.append(a));return d}function g(){var a,b,c,f=Math.min(v.length,D.length);for(a=0;a<f;a++)if(b=v[a],c=D[a],!b.equals(c))return a;return a-1}function l(){var b=I-1,c=w&&n&&!p.equals(m);b<E-1||b<L-1||c?(c?a.moveToPosition(m,
-CKEDITOR.POSITION_BEFORE_START):L==b+1&&H?a.moveToPosition(D[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(D[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=v[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var k=0===b,z=1==b,h=2==b;b=h||z;var p=a.startContainer,m=a.endContainer,
-C=a.startOffset,r=a.endOffset,G,H,w,n,M,Q;if(h&&m.type==CKEDITOR.NODE_TEXT&&p.equals(m))p=a.document.createText(p.substring(C,r)),c.append(p);else{m.type==CKEDITOR.NODE_TEXT?h?Q=!0:m=m.split(r):0<m.getChildCount()?r>=m.getChildCount()?(m=m.getChild(r-1),H=!0):m=m.getChild(r):n=H=!0;p.type==CKEDITOR.NODE_TEXT?h?M=!0:p.split(C):0<p.getChildCount()?0===C?(p=p.getChild(C),G=!0):p=p.getChild(C-1):w=G=!0;for(var v=p.getParents(),D=m.getParents(),I=g(),E=v.length-1,L=D.length-1,J=c,ba,Z,V,fa=-1,O=I;O<=E;O++){Z=
-v[O];V=Z.getNext();for(O!=E||Z.equals(D[O])&&E<L?b&&(ba=J.append(Z.clone(0,e))):G?q(Z,J,!1,w):M&&J.append(a.document.createText(Z.substring(C)));V;){if(V.equals(D[O])){fa=O;break}V=q(V,J)}J=ba}J=c;for(O=I;O<=L;O++)if(c=D[O],V=c.getPrevious(),c.equals(v[O]))b&&(J=J.getChild(0));else{O!=L||c.equals(v[O])&&L<E?b&&(ba=J.append(c.clone(0,e))):H?q(c,J,!1,n):Q&&J.append(a.document.createText(c.substring(0,r)));if(O>fa)for(;V;)V=q(V,J,!0);J=ba}h||l()}}function b(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),
-c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(g)?!1:!0}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&l(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}}function e(a){return function(){var b;return this[a?
-"getPreviousNode":"getNextNode"](function(a){!b&&w(a)&&(b=a);return n(a)&&!(l(a)&&a.equals(b))})}}var g={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},l=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,n=CKEDITOR.dom.walker.editable(),w=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);
-a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||
-d(this,0,null,a)},extractContents:function(a,b){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,c,a,"undefined"==typeof b?!0:b);return c},createBookmark:function(a){var b,c,d,e,q=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",d+(q?"C":"S")));q||(c=b.clone(),c.setHtml("\x26nbsp;"),a&&c.setAttribute("id",d+"E"),e=this.clone(),
-e.collapse(),e.insertNode(c));e=this.clone();e.collapse(!0);e.insertNode(b);c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(q?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:q}},createBookmark2:function(){function a(b){var f=b.container,d=b.offset,e;e=f;var g=d;e=e.type!=CKEDITOR.NODE_ELEMENT||0===g||g==e.getChildCount()?0:e.getChild(g-1).type==CKEDITOR.NODE_TEXT&&e.getChild(g).type==CKEDITOR.NODE_TEXT;e&&(f=f.getChild(d-
-1),d=f.getLength());if(f.type==CKEDITOR.NODE_ELEMENT&&0<d){a:{for(e=f;d--;)if(g=e.getChild(d).getIndex(!0),0<=g){d=g;break a}d=-1}d+=1}if(f.type==CKEDITOR.NODE_TEXT){e=f;for(g=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)g+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=g;f.getText()?d+=e:(g=f.getPrevious(c),e?(d=e,f=g?g.getNext():f.getParent().getFirst()):(f=f.getParent(),d=g?g.getIndex(!0)+1:0))}b.container=f;b.offset=d}function b(a,c){var f=c.getCustomData("cke-fillingChar");
-if(f){var d=a.container;f.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},g={container:this.endContainer,offset:this.endOffset};c&&(a(e),b(e,this.root),d||(a(g),b(g,this.root)));return{start:e.container.getAddress(c),end:d?null:g.container.getAddress(c),
-startOffset:e.offset,endOffset:g.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode,a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):
-this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>c)a=a.getChild(c);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(),e>d)b=b.getChild(d).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=
-b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):
-this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||
-e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var q=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(q,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();this.setStart(c,d);if(e){this.collapse(!0);return}}c=this.endContainer;d=this.endOffset;b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):
-d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var q=function(a,b){var c=new CKEDITOR.dom.range(l);c.setStart(a,b);c.setEndAt(l,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c),f;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};f=
-c.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;G=f!=a?f.getText():f.substring(b);if(d.test(G))return!1}return!0};if(this.collapsed)break;var g=this.getCommonAncestor(),l=this.root,k,z,h,p,m,C=!1,r,G;r=this.startContainer;var H=this.startOffset;r.type==CKEDITOR.NODE_TEXT?(H&&(r=!CKEDITOR.tools.trim(r.substring(0,H)).length&&r,C=!!r),r&&((p=r.getPrevious())||(h=r.getParent()))):(H&&(p=r.getChild(H-1)||r.getLast()),p||(h=r));for(h=c(h);h||p;){if(h&&!p){!m&&h.equals(g)&&(m=!0);if(e?h.isBlockBoundary():
-!l.contains(h))break;C&&"inline"==h.getComputedStyle("display")||(C=!1,m?k=h:this.setStartBefore(h));p=h.getPrevious()}for(;p;)if(r=!1,p.type==CKEDITOR.NODE_COMMENT)p=p.getPrevious();else{if(p.type==CKEDITOR.NODE_TEXT)G=p.getText(),d.test(G)&&(p=null),r=/[\s\ufeff]$/.test(G);else if((p.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&p.is("br"))&&!p.data("cke-bookmark"))if(C&&CKEDITOR.dtd.$removeEmpty[p.getName()]){G=p.getText();if(d.test(G))p=null;else for(var H=p.$.getElementsByTagName("*"),w=0,n;n=
-H[w++];)if(!CKEDITOR.dtd.$removeEmpty[n.nodeName.toLowerCase()]){p=null;break}p&&(r=!!G.length)}else p=null;r&&(C?m?k=h:h&&this.setStartBefore(h):C=!0);if(p){r=p.getPrevious();if(!h&&!r){h=p;p=null;break}p=r}else h=null}h&&(h=c(h.getParent()))}r=this.endContainer;H=this.endOffset;h=p=null;m=C=!1;r.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(r.substring(H)).length?C=!0:(C=!r.getLength(),H==r.getLength()?(p=r.getNext())||(h=r.getParent()):q(r,H)&&(h=r.getParent())):(p=r.getChild(H))||(h=r);for(;h||
-p;){if(h&&!p){!m&&h.equals(g)&&(m=!0);if(e?h.isBlockBoundary():!l.contains(h))break;C&&"inline"==h.getComputedStyle("display")||(C=!1,m?z=h:h&&this.setEndAfter(h));p=h.getNext()}for(;p;){r=!1;if(p.type==CKEDITOR.NODE_TEXT)G=p.getText(),q(p,0)||(p=null),r=/^[\s\ufeff]/.test(G);else if(p.type==CKEDITOR.NODE_ELEMENT){if((0<p.$.offsetWidth||b&&p.is("br"))&&!p.data("cke-bookmark"))if(C&&CKEDITOR.dtd.$removeEmpty[p.getName()]){G=p.getText();if(d.test(G))p=null;else for(H=p.$.getElementsByTagName("*"),w=
-0;n=H[w++];)if(!CKEDITOR.dtd.$removeEmpty[n.nodeName.toLowerCase()]){p=null;break}p&&(r=!!G.length)}else p=null}else r=1;r&&C&&(m?z=h:this.setEndAfter(h));if(p){r=p.getNext();if(!h&&!r){h=p;p=null;break}p=r}else h=null}h&&(h=c(h.getParent()))}k&&z&&(g=k.contains(z)?z:k,this.setStartBefore(g),this.setEndAfter(g));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:h=new CKEDITOR.dom.range(this.root);l=this.root;h.setStartAt(l,CKEDITOR.POSITION_AFTER_START);h.setEnd(this.startContainer,
-this.startOffset);h=new CKEDITOR.dom.walker(h);var M,Q,v=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),D=null,I=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(D){if(D.equals(a)){D=null;return}}else D=a;else if(D)return;var b=v(a);b||(M=a);return b},e=function(a){var b=I(a);!b&&a.is&&a.is("br")&&(Q=a);return b};h.guard=I;h=h.lastBackward();M=M||l;this.setStartAt(M,!M.is("br")&&(!h&&this.checkStartOfBlock()||h&&M.contains(h))?
-CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){h=this.clone();h=new CKEDITOR.dom.walker(h);var E=CKEDITOR.dom.walker.whitespaces(),L=CKEDITOR.dom.walker.bookmark();h.evaluator=function(a){return!E(a)&&!L(a)};if((h=h.previous())&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("br"))break}h=this.clone();h.collapse();h.setEndAt(l,CKEDITOR.POSITION_BEFORE_END);h=new CKEDITOR.dom.walker(h);h.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:I;M=D=Q=null;h=h.lastForward();
-M=M||l;this.setEndAt(M,!h&&this.checkEndOfBlock()||h&&M.contains(h)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);Q&&this.setEndAfter(Q)}},shrink:function(a,b,c){if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var d=this.clone(),e=this.startContainer,q=this.endContainer,g=this.startOffset,l=this.endOffset,k=1,z=1;e&&e.type==CKEDITOR.NODE_TEXT&&(g?g>=e.getLength()?d.setStartAfter(e):(d.setStartBefore(e),k=0):d.setStartBefore(e));q&&q.type==CKEDITOR.NODE_TEXT&&(l?l>=q.getLength()?d.setEndAfter(q):
-(d.setEndAfter(q),z=0):d.setEndBefore(q));var d=new CKEDITOR.dom.walker(d),h=CKEDITOR.dom.walker.bookmark();d.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var p;d.guard=function(b,d){if(h(b))return!0;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||d&&b.equals(p)||!1===c&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;d||b.type!=CKEDITOR.NODE_ELEMENT||
-(p=b);return!0};k&&(e=d[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(e,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);z&&(d.reset(),(d=d[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(d,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END));return!(!k&&!z)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&
-this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=
-c;this.endContainer||(this._setEndContainer(b),this.endOffset=c);a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=c;this.startContainer||(this._setStartContainer(b),this.startOffset=c);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),
-a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,
-0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();this.insertNode(d);var e=d.getBogus();e&&e.remove();
-d.appendBogus();this.moveToBookmark(c);return d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,q=d.block,g=null;if(!c.blockLimit.equals(d.blockLimit))return null;"br"!=a&&(e||(e=this.fixBlock(!0,a),q=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),q||(q=this.fixBlock(!1,a)));c=e&&this.checkStartOfBlock();d=q&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(q)&&
-(d?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(q,CKEDITOR.POSITION_AFTER_END),q=null):c?(g=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(q=this.splitElement(e,b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:q,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:g}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);
-var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);c.appendTo(d);d.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return d},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||d.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||
-d.blockLimit,g;e&&!e.equals(d.root)&&!e.getFirst(a(e));)g=e.getParent(),this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=g;this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,e=this.clone();e.collapse(d);e[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:
-CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=c(d);return e[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,c)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);
-a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,c=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(c)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();
-d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||
-"true"==b.getAttribute("contentEditable")&&(b.contains(c)||b.equals(c)))break}b=b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,
-CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),
-!0;var d=a,e=c,q=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(q=d[b?"getLast":"getFirst"](w));e||q||(q=d[b?"getPrevious":"getNext"](w));a=q}return!!c},moveToClosestEditablePosition:function(a,b){var c,d=0,e,q,g=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,g[b?0:1])):c=this.clone();if(a&&!a.is(CKEDITOR.dtd.$block))d=1;else if(e=c[b?"getNextEditableNode":"getPreviousEditableNode"]())d=1,(q=e.type==CKEDITOR.NODE_ELEMENT)&&
-e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&q&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(e,0),c.collapse()):c.moveToPosition(e,g[b?1:0]);d&&this.moveToRange(c);return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=
-this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=
-this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,c,d,e=this.clone();e.optimize();(d=e.startContainer.type==CKEDITOR.NODE_TEXT)?(c=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();
-d&&(e.startContainer.setText(c),b.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a}}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict";
-(function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function d(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function b(a,c,e,g){a:{null==g&&(g=d(e));for(var l;l=g.shift();)if(l.getDtd().p){g={element:l,remaining:g};break a}g=null}if(!g)return 0;if((l=CKEDITOR.filter.instances[g.element.data("cke-filter")])&&!l.check(c))return b(a,
-c,e,g.remaining);c=new CKEDITOR.dom.range(g.element);c.selectNodeContents(g.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=l;a._.nestedEditable={element:g.element,container:e,remaining:g.remaining,iterator:c};return 1}function c(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var e=/^[\r\n\t ]+$/,g=CKEDITOR.dom.walker.bookmark(!1,!0),l=CKEDITOR.dom.walker.whitespaces(!0),
-k=function(a){return g(a)&&l(a)},n={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var d,l,A,u,B;a=a||"p";if(this._.nestedEditable){if(d=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,d;this.activeFilter=this.filter;if(b(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=
-null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var q=this.range.clone();l=q.startPath();var y=q.endPath(),F=!q.collapsed&&c(q,l.block),t=!q.collapsed&&c(q,y.block,1);q.shrink(CKEDITOR.SHRINK_ELEMENT,!0);F&&q.setStartAt(l.block,CKEDITOR.POSITION_BEFORE_END);t&&q.setEndAt(y.block,CKEDITOR.POSITION_AFTER_START);l=q.endContainer.hasAscendant("pre",!0)||q.startContainer.hasAscendant("pre",!0);q.enlarge(this.forceBrBreak&&!l||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);
-q.collapsed||(l=new CKEDITOR.dom.walker(q.clone()),y=CKEDITOR.dom.walker.bookmark(!0,!0),l.evaluator=y,this._.nextNode=l.next(),l=new CKEDITOR.dom.walker(q.clone()),l.evaluator=y,l=l.previous(),this._.lastNode=l.getNextSourceNode(!0,null,q.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(y=this.range.clone(),y.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),y.checkEndOfBlock()&&
-(y=new CKEDITOR.dom.elementPath(y.endContainer,y.root),this._.lastNode=(y.block||y.blockLimit).getNextSourceNode(!0))),this._.lastNode&&q.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=q.document.createText(""),this._.lastNode.insertAfter(l)),q=null);this._.started=1;l=q}y=this._.nextNode;q=this._.lastNode;for(this._.nextNode=null;y;){var F=0,t=y.hasAscendant("pre"),z=y.type!=CKEDITOR.NODE_ELEMENT,h=0;if(z)y.type==CKEDITOR.NODE_TEXT&&e.test(y.getText())&&(z=0);else{var p=y.getName();
-if(CKEDITOR.dtd.$block[p]&&"false"==y.getAttribute("contenteditable")){d=y;b(this,a,d);break}else if(y.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){if("br"==p)z=1;else if(!l&&!y.getChildCount()&&"hr"!=p){d=y;A=y.equals(q);break}l&&(l.setEndAt(y,CKEDITOR.POSITION_BEFORE_START),"br"!=p&&(this._.nextNode=y));F=1}else{if(y.getFirst()){l||(l=this.range.clone(),l.setStartAt(y,CKEDITOR.POSITION_BEFORE_START));y=y.getFirst();continue}z=1}}z&&!l&&(l=this.range.clone(),l.setStartAt(y,CKEDITOR.POSITION_BEFORE_START));
-A=(!F||z)&&y.equals(q);if(l&&!F)for(;!y.getNext(k)&&!A;){p=y.getParent();if(p.isBlockBoundary(this.forceBrBreak&&!t&&{br:1})){F=1;z=0;A||p.equals(q);l.setEndAt(p,CKEDITOR.POSITION_BEFORE_END);break}y=p;z=1;A=y.equals(q);h=1}z&&l.setEndAt(y,CKEDITOR.POSITION_AFTER_END);y=this._getNextSourceNode(y,h,q);if((A=!y)||F&&l)break}if(!d){if(!l)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;d=new CKEDITOR.dom.elementPath(l.startContainer,l.root);y=d.blockLimit;F={div:1,th:1,td:1};
-d=d.block;!d&&y&&!this.enforceRealBlocks&&F[y.getName()]&&l.checkStartOfBlock()&&l.checkEndOfBlock()&&!y.equals(l.root)?d=y:!d||this.enforceRealBlocks&&d.is(n)?(d=this.range.document.createElement(a),l.extractContents().appendTo(d),d.trim(),l.insertNode(d),u=B=!0):"li"!=d.getName()?l.checkStartOfBlock()&&l.checkEndOfBlock()||(d=d.clone(!1),l.extractContents().appendTo(d),d.trim(),B=l.splitBlock(),u=!B.wasStartOfBlock,B=!B.wasEndOfBlock,l.insertNode(d)):A||(this._.nextNode=d.equals(q)?null:this._getNextSourceNode(l.getBoundaryNodes().endNode,
-1,q))}u&&(u=d.getPrevious())&&u.type==CKEDITOR.NODE_ELEMENT&&("br"==u.getName()?u.remove():u.getLast()&&"br"==u.getLast().$.nodeName.toLowerCase()&&u.getLast().remove());B&&(u=d.getLast())&&u.type==CKEDITOR.NODE_ELEMENT&&"br"==u.getName()&&(!CKEDITOR.env.needsBrFiller||u.getPrevious(g)||u.getNext(g))&&u.remove();this._.nextNode||(this._.nextNode=A||d.equals(q)||!q?null:this._getNextSourceNode(d,1,q));return d},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e=
+(function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset}function d(a,b,c,d,e){function g(a,b,c,f){var X=c?a.getPrevious():a.getNext();if(f&&h)return X;l||f?b.append(a.clone(!0,e),c):(a.remove(),q&&b.append(a,c));return X}function m(){var a,b,c,f=Math.min(O.length,p.length);for(a=0;a<f;a++)if(b=O[a],c=p[a],!b.equals(c))return a;return a-1}function k(){var b=C-1,c=v&&B&&!r.equals(J);b<t-1||b<F-1||c?(c?a.moveToPosition(J,
+CKEDITOR.POSITION_BEFORE_START):F==b+1&&y?a.moveToPosition(p[b],CKEDITOR.POSITION_BEFORE_END):a.moveToPosition(p[b+1],CKEDITOR.POSITION_BEFORE_START),d&&(b=O[b+1])&&b.type==CKEDITOR.NODE_ELEMENT&&(c=CKEDITOR.dom.element.createFromHtml('\x3cspan data-cke-bookmark\x3d"1" style\x3d"display:none"\x3e\x26nbsp;\x3c/span\x3e',a.document),c.insertAfter(b),b.mergeSiblings(!1),a.moveToBookmark({startNode:c}))):a.collapse(!0)}a.optimizeBookmark();var h=0===b,q=1==b,l=2==b;b=l||q;var r=a.startContainer,J=a.endContainer,
+H=a.startOffset,E=a.endOffset,u,y,v,B,L,n;if(l&&J.type==CKEDITOR.NODE_TEXT&&(r.equals(J)||r.type===CKEDITOR.NODE_ELEMENT&&r.getFirst().equals(J)))c.append(a.document.createText(J.substring(H,E)));else{J.type==CKEDITOR.NODE_TEXT?l?n=!0:J=J.split(E):0<J.getChildCount()?E>=J.getChildCount()?(J=J.getChild(E-1),y=!0):J=J.getChild(E):B=y=!0;r.type==CKEDITOR.NODE_TEXT?l?L=!0:r.split(H):0<r.getChildCount()?0===H?(r=r.getChild(H),u=!0):r=r.getChild(H-1):v=u=!0;for(var O=r.getParents(),p=J.getParents(),C=m(),
+t=O.length-1,F=p.length-1,N=c,X,Y,U,ea=-1,P=C;P<=t;P++){Y=O[P];U=Y.getNext();for(P!=t||Y.equals(p[P])&&t<F?b&&(X=N.append(Y.clone(0,e))):u?g(Y,N,!1,v):L&&N.append(a.document.createText(Y.substring(H)));U;){if(U.equals(p[P])){ea=P;break}U=g(U,N)}N=X}N=c;for(P=C;P<=F;P++)if(c=p[P],U=c.getPrevious(),c.equals(O[P]))b&&(N=N.getChild(0));else{P!=F||c.equals(O[P])&&F<t?b&&(X=N.append(c.clone(0,e))):y?g(c,N,!1,B):n&&N.append(a.document.createText(c.substring(0,E)));if(P>ea)for(;U;)U=g(U,N,!0);N=X}l||k()}}
+function b(){var a=!1,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!0),d=CKEDITOR.dom.walker.bogus();return function(e){return c(e)||b(e)?!0:d(e)&&!a?a=!0:e.type==CKEDITOR.NODE_TEXT&&(e.hasAscendant("pre")||CKEDITOR.tools.trim(e.getText()).length)||e.type==CKEDITOR.NODE_ELEMENT&&!e.is(g)?!1:!0}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(d){return c(d)||b(d)?!0:!a&&h(d)||d.type==CKEDITOR.NODE_ELEMENT&&d.is(CKEDITOR.dtd.$removeEmpty)}}
+function e(a){return function(){var b;return this[a?"getPreviousNode":"getNextNode"](function(a){!b&&q(a)&&(b=a);return n(a)&&!(h(a)&&a.equals(b))})}}var g={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},h=CKEDITOR.dom.walker.bogus(),k=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,n=CKEDITOR.dom.walker.editable(),q=CKEDITOR.dom.walker.ignored(!0);CKEDITOR.dom.range.prototype={clone:function(){var a=
+new CKEDITOR.dom.range(this.root);a._setStartContainer(this.startContainer);a.startOffset=this.startOffset;a._setEndContainer(this.endContainer);a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){a?(this._setEndContainer(this.startContainer),this.endOffset=this.startOffset):(this._setStartContainer(this.endContainer),this.startOffset=this.endOffset);this.collapsed=!0},cloneContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||
+d(this,2,b,!1,"undefined"==typeof a?!0:a);return b},deleteContents:function(a){this.collapsed||d(this,0,null,a)},extractContents:function(a,b){var c=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||d(this,1,c,a,"undefined"==typeof b?!0:b);return c},createBookmark:function(a){var b,c,d,e,g=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("\x26nbsp;");a&&(d="cke_bm_"+CKEDITOR.tools.getNextNumber(),b.setAttribute("id",
+d+(g?"C":"S")));g||(c=b.clone(),c.setHtml("\x26nbsp;"),a&&c.setAttribute("id",d+"E"),e=this.clone(),e.collapse(),e.insertNode(c));e=this.clone();e.collapse(!0);e.insertNode(b);c?(this.setStartAfter(b),this.setEndBefore(c)):this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?d+(g?"C":"S"):b,endNode:a?d+"E":c,serializable:a,collapsed:g}},createBookmark2:function(){function a(b){var f=b.container,d=b.offset,e;e=f;var g=d;e=e.type!=CKEDITOR.NODE_ELEMENT||0===g||g==e.getChildCount()?
+0:e.getChild(g-1).type==CKEDITOR.NODE_TEXT&&e.getChild(g).type==CKEDITOR.NODE_TEXT;e&&(f=f.getChild(d-1),d=f.getLength());if(f.type==CKEDITOR.NODE_ELEMENT&&0<d){a:{for(e=f;d--;)if(g=e.getChild(d).getIndex(!0),0<=g){d=g;break a}d=-1}d+=1}if(f.type==CKEDITOR.NODE_TEXT){e=f;for(g=0;(e=e.getPrevious())&&e.type==CKEDITOR.NODE_TEXT;)g+=e.getText().replace(CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE,"").length;e=g;f.getText()?d+=e:(g=f.getPrevious(c),e?(d=e,f=g?g.getNext():f.getParent().getFirst()):(f=
+f.getParent(),d=g?g.getIndex(!0)+1:0))}b.container=f;b.offset=d}function b(a,c){var f=c.getCustomData("cke-fillingChar");if(f){var d=a.container;f.equals(d)&&(a.offset-=CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE.length,0>=a.offset&&(a.offset=d.getIndex(),a.container=d.getParent()))}}var c=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_TEXT,!0);return function(c){var d=this.collapsed,e={container:this.startContainer,offset:this.startOffset},m={container:this.endContainer,offset:this.endOffset};c&&(a(e),
+b(e,this.root),d||(a(m),b(m,this.root)));return{start:e.container.getAddress(c),end:d?null:m.container.getAddress(c),startOffset:e.offset,endOffset:m.offset,normalized:c,collapsed:d,is2:!0}}}(),moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,d=a.end&&this.document.getByAddress(a.end,a.normalized);a=a.endOffset;this.setStart(b,c);d?this.setEnd(d,a):this.collapse(!0)}else b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode,
+a=c?this.document.getById(a.endNode):a.endNode,this.setStartBefore(b),b.remove(),a?(this.setEndBefore(a),a.remove()):this.collapse(!0)},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,d=this.endOffset,e;if(a.type==CKEDITOR.NODE_ELEMENT)if(e=a.getChildCount(),e>c)a=a.getChild(c);else if(1>e)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}if(b.type==CKEDITOR.NODE_ELEMENT)if(e=b.getChildCount(),
+e>d)b=b.getChild(d).getPreviousSourceNode(!0);else if(1>e)b=b.getPreviousSourceNode();else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,d=this.endContainer,c=c.equals(d)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(d);return b&&!c.is?c.getParent():c},optimize:function(){var a=
+this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&a.is("span")&&a.data("cke-bookmark")&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&b.is&&b.is("span")&&b.data("cke-bookmark")&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},
+trim:function(a,b){var c=this.startContainer,d=this.startOffset,e=this.collapsed;if((!a||e)&&c&&c.type==CKEDITOR.NODE_TEXT){if(d)if(d>=c.getLength())d=c.getIndex()+1,c=c.getParent();else{var g=c.split(d),d=c.getIndex()+1,c=c.getParent();this.startContainer.equals(this.endContainer)?this.setEnd(g,this.endOffset-this.startOffset):c.equals(this.endContainer)&&(this.endOffset+=1)}else d=c.getIndex(),c=c.getParent();this.setStart(c,d);if(e){this.collapse(!0);return}}c=this.endContainer;d=this.endOffset;
+b||e||!c||c.type!=CKEDITOR.NODE_TEXT||(d?(d>=c.getLength()||c.split(d),d=c.getIndex()+1):d=c.getIndex(),c=c.getParent(),this.setEnd(c,d))},enlarge:function(a,b){function c(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("contenteditable")?null:a}var d=new RegExp(/[^\s\ufeff]/);switch(a){case CKEDITOR.ENLARGE_INLINE:var e=1;case CKEDITOR.ENLARGE_ELEMENT:var g=function(a,b){var c=new CKEDITOR.dom.range(k);c.setStart(a,b);c.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);var c=new CKEDITOR.dom.walker(c),
+f;for(c.guard=function(a){return!(a.type==CKEDITOR.NODE_ELEMENT&&a.isBlockBoundary())};f=c.next();){if(f.type!=CKEDITOR.NODE_TEXT)return!1;u=f!=a?f.getText():f.substring(b);if(d.test(u))return!1}return!0};if(this.collapsed)break;var m=this.getCommonAncestor(),k=this.root,h,q,l,r,J,H=!1,E,u;E=this.startContainer;var y=this.startOffset;E.type==CKEDITOR.NODE_TEXT?(y&&(E=!CKEDITOR.tools.trim(E.substring(0,y)).length&&E,H=!!E),E&&((r=E.getPrevious())||(l=E.getParent()))):(y&&(r=E.getChild(y-1)||E.getLast()),
+r||(l=E));for(l=c(l);l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?h=l:this.setStartBefore(l));r=l.getPrevious()}for(;r;)if(E=!1,r.type==CKEDITOR.NODE_COMMENT)r=r.getPrevious();else{if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),d.test(u)&&(r=null),E=/[\s\ufeff]$/.test(u);else if((r.$.offsetWidth>(CKEDITOR.env.webkit?1:0)||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u=
+r.getText();if(d.test(u))r=null;else for(var y=r.$.getElementsByTagName("*"),v=0,B;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null;E&&(H?J?h=l:l&&this.setStartBefore(l):H=!0);if(r){E=r.getPrevious();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}E=this.endContainer;y=this.endOffset;l=r=null;J=H=!1;E.type==CKEDITOR.NODE_TEXT?CKEDITOR.tools.trim(E.substring(y)).length?H=!0:(H=!E.getLength(),y==E.getLength()?(r=E.getNext())||
+(l=E.getParent()):g(E,y)&&(l=E.getParent())):(r=E.getChild(y))||(l=E);for(;l||r;){if(l&&!r){!J&&l.equals(m)&&(J=!0);if(e?l.isBlockBoundary():!k.contains(l))break;H&&"inline"==l.getComputedStyle("display")||(H=!1,J?q=l:l&&this.setEndAfter(l));r=l.getNext()}for(;r;){E=!1;if(r.type==CKEDITOR.NODE_TEXT)u=r.getText(),g(r,0)||(r=null),E=/^[\s\ufeff]/.test(u);else if(r.type==CKEDITOR.NODE_ELEMENT){if((0<r.$.offsetWidth||b&&r.is("br"))&&!r.data("cke-bookmark"))if(H&&CKEDITOR.dtd.$removeEmpty[r.getName()]){u=
+r.getText();if(d.test(u))r=null;else for(y=r.$.getElementsByTagName("*"),v=0;B=y[v++];)if(!CKEDITOR.dtd.$removeEmpty[B.nodeName.toLowerCase()]){r=null;break}r&&(E=!!u.length)}else r=null}else E=1;E&&H&&(J?q=l:this.setEndAfter(l));if(r){E=r.getNext();if(!l&&!E){l=r;r=null;break}r=E}else l=null}l&&(l=c(l.getParent()))}h&&q&&(m=h.contains(q)?q:h,this.setStartBefore(m),this.setEndAfter(m));break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:l=new CKEDITOR.dom.range(this.root);
+k=this.root;l.setStartAt(k,CKEDITOR.POSITION_AFTER_START);l.setEnd(this.startContainer,this.startOffset);l=new CKEDITOR.dom.walker(l);var L,n,O=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),p=null,C=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&"false"==a.getAttribute("contenteditable"))if(p){if(p.equals(a)){p=null;return}}else p=a;else if(p)return;var b=O(a);b||(L=a);return b},e=function(a){var b=C(a);!b&&a.is&&a.is("br")&&(n=a);return b};l.guard=C;l=l.lastBackward();
+L=L||k;this.setStartAt(L,!L.is("br")&&(!l&&this.checkStartOfBlock()||l&&L.contains(l))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){l=this.clone();l=new CKEDITOR.dom.walker(l);var t=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark();l.evaluator=function(a){return!t(a)&&!F(a)};if((l=l.previous())&&l.type==CKEDITOR.NODE_ELEMENT&&l.is("br"))break}l=this.clone();l.collapse();l.setEndAt(k,CKEDITOR.POSITION_BEFORE_END);l=new CKEDITOR.dom.walker(l);
+l.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?e:C;L=p=n=null;l=l.lastForward();L=L||k;this.setEndAt(L,!l&&this.checkEndOfBlock()||l&&L.contains(l)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);n&&this.setEndAfter(n)}},shrink:function(a,b,c){var d="boolean"===typeof c?c:c&&"boolean"===typeof c.shrinkOnBlockBoundary?c.shrinkOnBlockBoundary:!0,e=c&&c.skipBogus;if(!this.collapsed){a=a||CKEDITOR.SHRINK_TEXT;var g=this.clone(),m=this.startContainer,k=this.endContainer,h=this.startOffset,
+q=this.endOffset,l=c=1;m&&m.type==CKEDITOR.NODE_TEXT&&(h?h>=m.getLength()?g.setStartAfter(m):(g.setStartBefore(m),c=0):g.setStartBefore(m));k&&k.type==CKEDITOR.NODE_TEXT&&(q?q>=k.getLength()?g.setEndAfter(k):(g.setEndAfter(k),l=0):g.setEndBefore(k));var g=new CKEDITOR.dom.walker(g),r=CKEDITOR.dom.walker.bookmark(),J=CKEDITOR.dom.walker.bogus();g.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var H;g.guard=function(b,c){if(e&&J(b)||r(b))return!0;
+if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||c&&b.equals(H)||!1===d&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary()||b.type==CKEDITOR.NODE_ELEMENT&&b.hasAttribute("contenteditable"))return!1;c||b.type!=CKEDITOR.NODE_ELEMENT||(H=b);return!0};c&&(m=g[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":"next"]())&&this.setStartAt(m,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);l&&(g.reset(),(g=g[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(g,b?CKEDITOR.POSITION_BEFORE_END:
+CKEDITOR.POSITION_AFTER_END));return!(!c&&!l)}},insertNode:function(a){this.optimizeBookmark();this.trim(!1,!0);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(!0)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,
+0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex(),b=b.getParent());this._setStartContainer(b);this.startOffset=c;this.endContainer||(this._setEndContainer(b),this.endOffset=c);a(this)},setEnd:function(b,c){b.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[b.getName()]&&(c=b.getIndex()+1,b=b.getParent());this._setEndContainer(b);this.endOffset=c;this.startContainer||
+(this._setStartContainer(b),this.startOffset=c);a(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),a.getIndex())},setStartAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setStart(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setStart(b,
+b.getLength()):this.setStart(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(b)}a(this)},setEndAt:function(b,c){switch(c){case CKEDITOR.POSITION_AFTER_START:this.setEnd(b,0);break;case CKEDITOR.POSITION_BEFORE_END:b.type==CKEDITOR.NODE_TEXT?this.setEnd(b,b.getLength()):this.setEnd(b,b.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(b);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(b)}a(this)},
+fixBlock:function(a,b){var c=this.createBookmark(),d=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(d);d.trim();this.insertNode(d);var e=d.getBogus();e&&e.remove();d.appendBogus();this.moveToBookmark(c);return d},splitBlock:function(a,b){var c=new CKEDITOR.dom.elementPath(this.startContainer,this.root),d=new CKEDITOR.dom.elementPath(this.endContainer,this.root),e=c.block,g=d.block,m=null;if(!c.blockLimit.equals(d.blockLimit))return null;
+"br"!=a&&(e||(e=this.fixBlock(!0,a),g=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block),g||(g=this.fixBlock(!1,a)));c=e&&this.checkStartOfBlock();d=g&&this.checkEndOfBlock();this.deleteContents();e&&e.equals(g)&&(d?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(g,CKEDITOR.POSITION_AFTER_END),g=null):c?(m=new CKEDITOR.dom.elementPath(this.startContainer,this.root),this.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e=null):(g=this.splitElement(e,
+b||!1),e.is("ul","ol")||e.appendBogus()));return{previousBlock:e,nextBlock:g,wasStartOfBlock:c,wasEndOfBlock:d,elementPath:m}},splitElement:function(a,b){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var c=this.extractContents(!1,b||!1),d=a.clone(!1,b||!1);c.appendTo(d);d.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return d},removeEmptyBlocksAtEnd:function(){function a(d){return function(a){return b(a)||c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable()||
+d.is("table")&&a.is("caption")?!1:!0}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(!1);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||d.blockLimit,g;e&&!e.equals(d.root)&&!e.getFirst(a(e));)g=e.getParent(),this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END),e.remove(1),e=g;this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,
+this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,e=this.clone();e.collapse(d);e[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);e=new CKEDITOR.dom.walker(e);e.evaluator=c(d);return e[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.ltrim(a.substring(0,c)),k.test(a)&&this.trim(0,1));this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,
+this.root);c=this.clone();c.collapse(!0);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=this.endContainer,c=this.endOffset;CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT&&(a=CKEDITOR.tools.rtrim(a.substring(c)),k.test(a)&&this.trim(1,0));this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(!1);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);
+a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==
+CKEDITOR.NODE_ELEMENT){if("false"==b.getAttribute("contentEditable")&&!b.data("cke-editable"))return 0;if(b.is("html")||"true"==b.getAttribute("contentEditable")&&(b.contains(c)||b.equals(c)))break}b=b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(!1))return this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START),
+!0;for(var c=0;a;){if(a.type==CKEDITOR.NODE_TEXT){b&&this.endContainer&&this.checkEndOfBlock()&&k.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,b?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);c=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable())this.moveToPosition(a,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START),c=1;else if(b&&a.is("br")&&this.endContainer&&this.checkEndOfBlock())this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);
+else if("false"==a.getAttribute("contenteditable")&&a.is(CKEDITOR.dtd.$block))return this.setStartBefore(a),this.setEndAfter(a),!0;var d=a,e=c,g=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(!1)&&(g=d[b?"getLast":"getFirst"](q));e||g||(g=d[b?"getPrevious":"getNext"](q));a=g}return!!c},moveToClosestEditablePosition:function(a,b){var c,d=0,e,g,m=[CKEDITOR.POSITION_AFTER_END,CKEDITOR.POSITION_BEFORE_START];a?(c=new CKEDITOR.dom.range(this.root),c.moveToPosition(a,m[b?0:1])):c=this.clone();if(a&&
+!a.is(CKEDITOR.dtd.$block))d=1;else if(e=c[b?"getNextEditableNode":"getPreviousEditableNode"]())d=1,(g=e.type==CKEDITOR.NODE_ELEMENT)&&e.is(CKEDITOR.dtd.$block)&&"false"==e.getAttribute("contenteditable")?(c.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),c.setEndAt(e,CKEDITOR.POSITION_AFTER_END)):!CKEDITOR.env.needsBrFiller&&g&&e.is(CKEDITOR.dom.walker.validEmptyBlockContainers)?(c.setEnd(e,0),c.collapse()):c.moveToPosition(e,m[b?1:0]);d&&this.moveToRange(c);return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},
+moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,!0)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(!1,!0),c=CKEDITOR.dom.walker.whitespaces(!0);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=this.startContainer;
+return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},getNextEditableNode:e(),getPreviousEditableNode:e(1),_getTableElement:function(a){a=a||{td:1,th:1,tr:1,tbody:1,thead:1,tfoot:1,table:1};var b=this.startContainer,c=this.endContainer,d=b.getAscendant("table",!0),e=c.getAscendant("table",!0);return CKEDITOR.env.safari&&d&&c.equals(this.root)?
+b.getAscendant(a,!0):this.getEnclosedNode()?this.getEnclosedNode().getAscendant(a,!0):d&&e&&(d.equals(e)||d.contains(e)||e.contains(d))?b.getAscendant(a,!0):null},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",this.document),b,c,d,e=this.clone();e.optimize();(d=e.startContainer.type==CKEDITOR.NODE_TEXT)?(c=e.startContainer.getText(),b=e.startContainer.split(e.startOffset),a.insertAfter(e.startContainer)):e.insertNode(a);a.scrollIntoView();
+d&&(e.startContainer.setText(c),b.remove());a.remove()},_setStartContainer:function(a){this.startContainer=a},_setEndContainer:function(a){this.endContainer=a},_find:function(a,b){var c=this.getCommonAncestor(),d=this.getBoundaryNodes(),e=[],g,m,k,h;if(c&&c.find)for(m=c.find(a),g=0;g<m.count();g++)if(c=m.getItem(g),b||!c.isReadOnly())k=c.getPosition(d.startNode)&CKEDITOR.POSITION_FOLLOWING||d.startNode.equals(c),h=c.getPosition(d.endNode)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IS_CONTAINED||
+d.endNode.equals(c),k&&h&&e.push(c);return e}};CKEDITOR.dom.range.mergeRanges=function(a){return CKEDITOR.tools.array.reduce(a,function(a,b){var c=a[a.length-1],d=!1;b=b.clone();b.enlarge(CKEDITOR.ENLARGE_ELEMENT);if(c){var e=new CKEDITOR.dom.range(b.root),d=new CKEDITOR.dom.walker(e),f=CKEDITOR.dom.walker.whitespaces();e.setStart(c.endContainer,c.endOffset);e.setEnd(b.startContainer,b.startOffset);for(e=d.next();f(e)||b.endContainer.equals(e);)e=d.next();d=!e}d?c.setEnd(b.endContainer,b.endOffset):
+a.push(b);return a},[])}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;"use strict";
+(function(){function a(a){1>arguments.length||(this.range=a,this.forceBrBreak=0,this.enlargeBr=1,this.enforceRealBlocks=0,this._||(this._={}))}function d(a){var b=[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function b(a,c,e,g){a:{null==g&&(g=d(e));for(var k;k=g.shift();)if(k.getDtd().p){g={element:k,remaining:g};break a}g=null}if(!g)return 0;if((k=CKEDITOR.filter.instances[g.element.data("cke-filter")])&&!k.check(c))return b(a,
+c,e,g.remaining);c=new CKEDITOR.dom.range(g.element);c.selectNodeContents(g.element);c=c.createIterator();c.enlargeBr=a.enlargeBr;c.enforceRealBlocks=a.enforceRealBlocks;c.activeFilter=c.filter=k;a._.nestedEditable={element:g.element,container:e,remaining:g.remaining,iterator:c};return 1}function c(a,b,c){if(!b)return!1;a=a.clone();a.collapse(!c);return a.checkBoundaryOfElement(b,c?CKEDITOR.START:CKEDITOR.END)}var e=/^[\r\n\t ]+$/,g=CKEDITOR.dom.walker.bookmark(!1,!0),h=CKEDITOR.dom.walker.whitespaces(!0),
+k=function(a){return g(a)&&h(a)},n={dd:1,dt:1,li:1};a.prototype={getNextParagraph:function(a){var d,h,w,A,G;a=a||"p";if(this._.nestedEditable){if(d=this._.nestedEditable.iterator.getNextParagraph(a))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,d;this.activeFilter=this.filter;if(b(this,a,this._.nestedEditable.container,this._.nestedEditable.remaining))return this.activeFilter=this._.nestedEditable.iterator.activeFilter,this._.nestedEditable.iterator.getNextParagraph(a);this._.nestedEditable=
+null}if(!this.range.root.getDtd()[a])return null;if(!this._.started){var x=this.range.clone();h=x.startPath();var m=x.endPath(),K=!x.collapsed&&c(x,h.block),z=!x.collapsed&&c(x,m.block,1);x.shrink(CKEDITOR.SHRINK_ELEMENT,!0);K&&x.setStartAt(h.block,CKEDITOR.POSITION_BEFORE_END);z&&x.setEndAt(m.block,CKEDITOR.POSITION_AFTER_START);h=x.endContainer.hasAscendant("pre",!0)||x.startContainer.hasAscendant("pre",!0);x.enlarge(this.forceBrBreak&&!h||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);
+x.collapsed||(h=new CKEDITOR.dom.walker(x.clone()),m=CKEDITOR.dom.walker.bookmark(!0,!0),h.evaluator=m,this._.nextNode=h.next(),h=new CKEDITOR.dom.walker(x.clone()),h.evaluator=m,h=h.previous(),this._.lastNode=h.getNextSourceNode(!0,null,x.root),this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()&&(m=this.range.clone(),m.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END),m.checkEndOfBlock()&&
+(m=new CKEDITOR.dom.elementPath(m.endContainer,m.root),this._.lastNode=(m.block||m.blockLimit).getNextSourceNode(!0))),this._.lastNode&&x.root.contains(this._.lastNode)||(this._.lastNode=this._.docEndMarker=x.document.createText(""),this._.lastNode.insertAfter(h)),x=null);this._.started=1;h=x}m=this._.nextNode;x=this._.lastNode;for(this._.nextNode=null;m;){var K=0,z=m.hasAscendant("pre"),I=m.type!=CKEDITOR.NODE_ELEMENT,l=0;if(I)m.type==CKEDITOR.NODE_TEXT&&e.test(m.getText())&&(I=0);else{var r=m.getName();
+if(CKEDITOR.dtd.$block[r]&&"false"==m.getAttribute("contenteditable")){d=m;b(this,a,d);break}else if(m.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){if("br"==r)I=1;else if(!h&&!m.getChildCount()&&"hr"!=r){d=m;w=m.equals(x);break}h&&(h.setEndAt(m,CKEDITOR.POSITION_BEFORE_START),"br"!=r&&(this._.nextNode=m));K=1}else{if(m.getFirst()){h||(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START));m=m.getFirst();continue}I=1}}I&&!h&&(h=this.range.clone(),h.setStartAt(m,CKEDITOR.POSITION_BEFORE_START));
+w=(!K||I)&&m.equals(x);if(h&&!K)for(;!m.getNext(k)&&!w;){r=m.getParent();if(r.isBlockBoundary(this.forceBrBreak&&!z&&{br:1})){K=1;I=0;w||r.equals(x);h.setEndAt(r,CKEDITOR.POSITION_BEFORE_END);break}m=r;I=1;w=m.equals(x);l=1}I&&h.setEndAt(m,CKEDITOR.POSITION_AFTER_END);m=this._getNextSourceNode(m,l,x);if((w=!m)||K&&h)break}if(!d){if(!h)return this._.docEndMarker&&this._.docEndMarker.remove(),this._.nextNode=null;d=new CKEDITOR.dom.elementPath(h.startContainer,h.root);m=d.blockLimit;K={div:1,th:1,td:1};
+d=d.block;!d&&m&&!this.enforceRealBlocks&&K[m.getName()]&&h.checkStartOfBlock()&&h.checkEndOfBlock()&&!m.equals(h.root)?d=m:!d||this.enforceRealBlocks&&d.is(n)?(d=this.range.document.createElement(a),h.extractContents().appendTo(d),d.trim(),h.insertNode(d),A=G=!0):"li"!=d.getName()?h.checkStartOfBlock()&&h.checkEndOfBlock()||(d=d.clone(!1),h.extractContents().appendTo(d),d.trim(),G=h.splitBlock(),A=!G.wasStartOfBlock,G=!G.wasEndOfBlock,h.insertNode(d)):w||(this._.nextNode=d.equals(x)?null:this._getNextSourceNode(h.getBoundaryNodes().endNode,
+1,x))}A&&(A=d.getPrevious())&&A.type==CKEDITOR.NODE_ELEMENT&&("br"==A.getName()?A.remove():A.getLast()&&"br"==A.getLast().$.nodeName.toLowerCase()&&A.getLast().remove());G&&(A=d.getLast())&&A.type==CKEDITOR.NODE_ELEMENT&&"br"==A.getName()&&(!CKEDITOR.env.needsBrFiller||A.getPrevious(g)||A.getNext(g))&&A.remove();this._.nextNode||(this._.nextNode=w||d.equals(x)||!x?null:this._getNextSourceNode(d,1,x));return d},_getNextSourceNode:function(a,b,c){function d(a){return!(a.equals(c)||a.equals(e))}var e=
 this.range.root;for(a=a.getNextSourceNode(b,null,d);!g(a);)a=a.getNextSourceNode(b,null,d);return a}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}})();
 CKEDITOR.command=function(a,d){this.uiItems=[];this.exec=function(b){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return!1;this.editorFocus&&a.focus();return!1===this.fire("exec")?!0:!1!==d.exec.call(this,a,b)};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return!0;if(this.context&&!b.isContextFor(this.context)||!this.checkAllowed(!0))return this.disable(),!0;this.startDisabled||this.enable();this.modes&&!this.modes[a.mode]&&this.disable();return!1===this.fire("refresh",
 {editor:a,path:b})?!0:d.refresh&&!1!==d.refresh.apply(this,arguments)};var b;this.checkAllowed=function(c){return c||"boolean"!=typeof b?b=a.activeFilter.checkFeature(this):b};CKEDITOR.tools.extend(this,d,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!d.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)};
 CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(this.preserveState&&"undefined"!=typeof this.previousState?this.previousState:CKEDITOR.TRISTATE_OFF)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){if(this.state==a||a!=CKEDITOR.TRISTATE_DISABLED&&!this.checkAllowed())return!1;this.previousState=this.state;this.state=a;this.fire("state");return!0},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?
 this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;
 CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"\x3c!DOCTYPE html\x3e",bodyId:"",bodyClass:"",fullPage:!1,height:200,contentsCss:CKEDITOR.getUrl("contents.css"),extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};
-(function(){function a(a,b,c,d,e){var h,p;a=[];for(h in b){p=b[h];p="boolean"==typeof p?{}:"function"==typeof p?{match:p}:K(p);"$"!=h.charAt(0)&&(p.elements=h);c&&(p.featureName=c.toLowerCase());var m=p;m.elements=l(m.elements,/\s+/)||null;m.propertiesOnly=m.propertiesOnly||!0===m.elements;var r=/\s*,\s*/,q=void 0;for(q in Q){m[q]=l(m[q],r)||null;var f=m,E=v[q],z=l(m[v[q]],r),g=m[q],C=[],G=!0,L=void 0;z?G=!1:z={};for(L in g)"!"==L.charAt(0)&&(L=L.slice(1),C.push(L),z[L]=!0,G=!1);for(;L=C.pop();)g[L]=
-g["!"+L],delete g["!"+L];f[E]=(G?!1:z)||null}m.match=m.match||null;d.push(p);a.push(p)}b=e.elements;e=e.generic;var k;c=0;for(d=a.length;c<d;++c){h=K(a[c]);p=!0===h.classes||!0===h.styles||!0===h.attributes;m=h;q=E=r=void 0;for(r in Q)m[r]=F(m[r]);f=!0;for(q in v){r=v[q];E=m[r];z=[];g=void 0;for(g in E)-1<g.indexOf("*")?z.push(new RegExp("^"+g.replace(/\*/g,".*")+"$")):z.push(g);E=z;E.length&&(m[r]=E,f=!1)}m.nothingRequired=f;m.noProperties=!(m.attributes||m.classes||m.styles);if(!0===h.elements||
-null===h.elements)e[p?"unshift":"push"](h);else for(k in m=h.elements,delete h.elements,m)if(b[k])b[k][p?"unshift":"push"](h);else b[k]=[h]}}function d(a,c,d,h){if(!a.match||a.match(c))if(h||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=b(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=b(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;h=d.validClasses;if(a)if(!0===a)a=!0;else{for(var p=0,e=c.length,m;p<e;++p)m=c[p],h[m]||
-(h[m]=a(m));a=!1}else a=!1;d.allClasses=a}}function b(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function c(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute;c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle;a=a.classes;b=b.classes;if(a){for(var d=!1,h=!0===a,p=b.length;p--;)if(h||a(b[p]))b.splice(p,1),d=!0;a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a,
-b){if(!a)return!1;var c=!1,d=!0===a,h;for(h in b)if(d||a(h))delete b[h],c=!0;return c}function g(a,b,c){if(a.disabled||a.customConfig&&!c||!b)return!1;a._.cachedChecks={};return!0}function l(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=R(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c={},d=0,h;for(h in a)c[h]=a[h],d++;return d?c:!1}function k(a,b){if(a.nothingRequired)return!0;
-var c,d,h,p;if(h=a.requiredClasses)for(p=b.classes,c=0;c<h.length;++c)if(d=h[c],"string"==typeof d){if(-1==CKEDITOR.tools.indexOf(p,d))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(p,d))return!1;return n(b.styles,a.requiredStyles)&&n(b.attributes,a.requiredAttributes)}function n(a,b){if(!b)return!0;for(var c=0,d;c<b.length;++c)if(d=b[c],"string"==typeof d){if(!(d in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,d))return!1;return!0}function w(a){if(!a)return{};
-a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function f(a){var b,c,d,h,p={},e=1;for(a=R(a);b=a.match(D);)(c=b[2])?(d=x(c,"styles"),h=x(c,"attrs"),c=x(c,"classes")):d=h=c=null,p["$"+e++]={elements:b[1],classes:c,styles:d,attributes:h},a=a.slice(b[0].length);return p}function x(a,b){var c=a.match(I[b]);return c?R(c[1]):null}function A(a){var b=a.styleBackup=a.attributes.style,c=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b||
-"",1));a.classes||(a.classes=c?c.split(/\s+/):[])}function u(a,b,h,e){var m=0,r;e.toHtml&&(b.name=b.name.replace(E,"$1"));if(e.doCallbacks&&a.elementCallbacks){a:{r=a.elementCallbacks;for(var g=0,f=r.length,z;g<f;++g)if(z=r[g](b)){r=z;break a}r=void 0}if(r)return r}if(e.doTransform&&(r=a._.transformations[b.name])){A(b);for(g=0;g<r.length;++g)p(a,b,r[g]);q(b)}if(e.doFilter){a:{g=b.name;f=a._;a=f.allowedRules.elements[g];r=f.allowedRules.generic;g=f.disallowedRules.elements[g];f=f.disallowedRules.generic;
-z=e.skipRequired;var C={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},v,l;if(a||r){A(b);if(g)for(v=0,l=g.length;v<l;++v)if(!1===c(g[v],b,C)){a=null;break a}if(f)for(v=0,l=f.length;v<l;++v)c(f[v],b,C);if(a)for(v=0,l=a.length;v<l;++v)d(a[v],b,C,z);if(r)for(v=0,l=r.length;v<l;++v)d(r[v],b,C,z);a=C}else a=null}if(!a||!a.valid)return h.push(b),1;l=a.validAttributes;var G=a.validStyles;
-r=a.validClasses;var g=b.attributes,k=b.styles,f=b.classes;z=b.classBackup;var I=b.styleBackup,D,H,J=[],C=[],n=/^data-cke-/;v=!1;delete g.style;delete g["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(D in g)l[D]||(n.test(D)?D==(H=D.replace(/^data-cke-saved-/,""))||l[H]||(delete g[D],v=!0):(delete g[D],v=!0));if(!a.allStyles||a.hadInvalidStyle){for(D in k)a.allStyles||G[D]?J.push(D+":"+k[D]):v=!0;J.length&&(g.style=J.sort().join("; "))}else I&&(g.style=I);if(!a.allClasses||
-a.hadInvalidClass){for(D=0;D<f.length;++D)(a.allClasses||r[f[D]])&&C.push(f[D]);C.length&&(g["class"]=C.sort().join(" "));z&&C.length<z.split(/\s+/).length&&(v=!0)}else z&&(g["class"]=z);v&&(m=1);if(!e.skipFinalValidation&&!y(b))return h.push(b),1}e.toHtml&&(b.name=b.name.replace(L,"cke:$1"));return m}function B(a){var b=[],c;for(c in a)-1<c.indexOf("*")&&b.push(c.replace(/\*/g,".*"));return b.length?new RegExp("^(?:"+b.join("|")+")$"):null}function q(a){var b=a.attributes,c;delete b.style;delete b["class"];
-if(c=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function y(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function F(a){if(!a)return!1;if(!0===a)return!0;var b=B(a);return function(c){return c in a||b&&c.match(b)}}function t(){return new CKEDITOR.htmlParser.element("br")}function z(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==
-a.name||H.$block[a.name])}function h(a,b,c){var d=a.name;if(H.$empty[d]||!a.children.length)"hr"==d&&"br"==b?a.replaceWith(t()):(a.parent&&c.push({check:"it",el:a.parent}),a.remove());else if(H.$block[d]||"tr"==d)if("br"==b)a.previous&&!z(a.previous)&&(b=t(),b.insertBefore(a)),a.next&&!z(a.next)&&(b=t(),b.insertAfter(a)),a.replaceWithChildren();else{var d=a.children,h;b:{h=H[b];for(var p=0,e=d.length,m;p<e;++p)if(m=d[p],m.type==CKEDITOR.NODE_ELEMENT&&!h[m.name]){h=!1;break b}h=!0}if(h)a.name=b,a.attributes=
-{},c.push({check:"parent-down",el:a});else{h=a.parent;for(var p=h.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==h.name,r,g,e=d.length;0<e;)m=d[--e],p&&(m.type==CKEDITOR.NODE_TEXT||m.type==CKEDITOR.NODE_ELEMENT&&H.$inline[m.name])?(r||(r=new CKEDITOR.htmlParser.element(b),r.insertAfter(a),c.push({check:"parent-down",el:r})),r.add(m,0)):(r=null,g=H[h.name]||H.span,m.insertAfter(a),h.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||m.type!=CKEDITOR.NODE_ELEMENT||g[m.name]||c.push({check:"el-up",el:m}));a.remove()}}else d in
-{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function p(a,b,c){var d,h;for(d=0;d<c.length;++d)if(h=c[d],!(h.check&&!a.check(h.check,!1)||h.left&&!h.left(b))){h.right(b,J);break}}function m(a,b){var c=b.getDefinition(),d=c.attributes,h=c.styles,p,e,m,r;if(a.name!=c.element)return!1;for(p in d)if("class"==p)for(c=d[p].split(/\s+/),m=a.classes.join("|");r=c.pop();){if(-1==m.indexOf(r))return!1}else if(a.attributes[p]!=d[p])return!1;for(e in h)if(a.styles[e]!=
-h[e])return!1;return!0}function C(a,b){var c,d;"string"==typeof a?c=a:a instanceof CKEDITOR.style?d=a:(c=a[0],d=a[1]);return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function r(a){return function(b){return m(b,a)}}function G(a){return function(b,c){c[a](b)}}var H=CKEDITOR.dtd,K=CKEDITOR.tools.copy,R=CKEDITOR.tools.trim,M=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=
-!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(M[a.enterMode]+" "+M[a.shiftEnterMode],"default",
-1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,c,d){if(!g(this,b,d))return!1;var h,p;if("string"==typeof b)b=f(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),c,d);h=b.getDefinition();b={};d=h.attributes;b[h.element]=h={styles:h.styles,requiredStyles:h.styles&&CKEDITOR.tools.objectKeys(h.styles)};d&&(d=
-K(d),h.classes=d["class"]?d["class"].split(/\s+/):null,h.requiredClasses=h.classes,delete d["class"],h.attributes=d,h.requiredAttributes=d&&CKEDITOR.tools.objectKeys(d))}else if(CKEDITOR.tools.isArray(b)){for(h=0;h<b.length;++h)p=this.allow(b[h],c,d);return p}a(this,b,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,c,d){if(this.disabled)return!1;var p=this,e=[],m=this.editor&&this.editor.config.protectedSource,r,g=!1,f={doFilter:!c,doTransform:!0,doCallbacks:!0,toHtml:b};
-a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(r=u(p,a,e,f),r&1)g=!0;else if(r&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var d=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var h,q,z;if(m)for(q=0;q<m.length;++q)if((z=d.match(m[q]))&&z[0].length==d.length){c=!0;
-break a}d=CKEDITOR.htmlParser.fragment.fromHtml(d);1==d.children.length&&(h=d.children[0]).type==CKEDITOR.NODE_ELEMENT&&u(p,h,c,f);c=!c.length}c||e.push(a)}},null,!0);e.length&&(g=!0);var q;a=[];d=M[d||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var z;c=e.pop();)c.type==CKEDITOR.NODE_ELEMENT?h(c,d,a):c.remove();for(;q=a.pop();)if(c=q.el,c.parent)switch(z=H[c.parent.name]||H.span,q.check){case "it":H.$removeEmpty[c.name]&&!c.children.length?h(c,d,a):y(c)||h(c,d,a);break;case "el-up":c.parent.type==
-CKEDITOR.NODE_DOCUMENT_FRAGMENT||z[c.name]||h(c,d,a);break;case "parent-down":c.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||z[c.name]||h(c.parent,d,a)}return g},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!g(this,b,!0))return!1;"string"==typeof b&&(b=f(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0},
-addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],h;for(b=0;b<a.length&&!h;++b)c=a[b],("string"==typeof c||c instanceof CKEDITOR.style)&&this.check(c)&&(h=c);if(h){for(b=0;b<a.length;++b)d.push(C(a[b],h));this.addTransformations(d)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
-this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,h;for(h=0;h<a.length;++h){b=a[h];var p=void 0,e=void 0,m=void 0,g=void 0,q=void 0,f=void 0;c=[];for(e=0;e<b.length;++e)m=b[e],"string"==typeof m?(m=m.split(/\s*:\s*/),g=m[0],q=null,f=m[1]):(g=m.check,q=m.left,f=m.right),p||(p=m,p=p.element?p.element:g?g.match(/^([a-z0-9]+)/i)[0]:
-p.left.getDefinition().element),q instanceof CKEDITOR.style&&(q=r(q)),c.push({check:g==p?null:g,left:q,right:"string"==typeof f?G(f):f});b=p;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var d=a.length;d--;)if(this.check(a[d],b,c))return!0;return!1}var h,e;if("string"==typeof a){e=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(e in this._.cachedChecks)return this._.cachedChecks[e];d=f(a).$1;h=d.styles;var m=d.classes;d.name=d.elements;
-d.classes=m=m?m.split(/\s*,\s*/):[];d.styles=w(h);d.attributes=w(d.attributes);d.children=[];m.length&&(d.attributes["class"]=m.join(" "));h&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles));h=d}else d=a.getDefinition(),h=d.styles,m=d.attributes||{},h?(h=K(h),m.style=CKEDITOR.tools.writeCssText(h,!0)):h={},h={name:d.element,attributes:m,classes:m["class"]?m["class"].split(/\s+/):[],styles:h,children:[]};var m=CKEDITOR.tools.clone(h),r=[],g;if(!1!==b&&(g=this._.transformations[h.name])){for(d=
-0;d<g.length;++d)p(this,h,g[d]);q(h)}u(this,m,r,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<r.length?!1:CKEDITOR.tools.objectCompare(h.attributes,m.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[e]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(c,d){var h=a.slice(),p;if(this.check(M[c]))return c;for(d||(h=h.reverse());p=h.pop();)if(this.check(p))return b[p];
-return CKEDITOR.ENTER_BR}}(),destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};var Q={styles:1,attributes:1,classes:1},v={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},D=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,I={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},E=/^cke:(object|embed|param)$/,
-L=/^(object|embed|param)$/,J=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];d&&(/^\d+$/.test(d)&&(d+="px"),a.styles[c]=d)}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],h=d&&d.match(/^(\d+)(?:\.\d*)?px$/);
-h?a.attributes[c]=h[1]:"cke-test"==d&&(a.attributes[c]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"==b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},matchesStyle:m,transform:function(a,b){if("string"==typeof b)a.name=b;else{var c=b.getDefinition(),d=c.styles,
-h=c.attributes,p,m,e,r;a.name=c.element;for(p in h)if("class"==p)for(c=a.classes.join("|"),e=h[p].split(/\s+/);r=e.pop();)-1==c.indexOf(r)&&a.classes.push(r);else a.attributes[p]=h[p];for(m in d)a.styles[m]=d[m]}}}})();
+(function(){function a(a,b,c,d,e){var f,l;a=[];for(f in b){l=b[f];l="boolean"==typeof l?{}:"function"==typeof l?{match:l}:v(l);"$"!=f.charAt(0)&&(l.elements=f);c&&(l.featureName=c.toLowerCase());var t=l;t.elements=h(t.elements,/\s+/)||null;t.propertiesOnly=t.propertiesOnly||!0===t.elements;var u=/\s*,\s*/,g=void 0;for(g in V){t[g]=h(t[g],u)||null;var p=t,r=O[g],m=h(t[O[g]],u),F=t[g],y=[],B=!0,C=void 0;m?B=!1:m={};for(C in F)"!"==C.charAt(0)&&(C=C.slice(1),y.push(C),m[C]=!0,B=!1);for(;C=y.pop();)F[C]=
+F["!"+C],delete F["!"+C];p[r]=(B?!1:m)||null}t.match=t.match||null;d.push(l);a.push(l)}b=e.elements;e=e.generic;var k;c=0;for(d=a.length;c<d;++c){f=v(a[c]);l=!0===f.classes||!0===f.styles||!0===f.attributes;t=f;g=r=u=void 0;for(u in V)t[u]=K(t[u]);p=!0;for(g in O){u=O[g];r=t[u];m=[];F=void 0;for(F in r)-1<F.indexOf("*")?m.push(new RegExp("^"+F.replace(/\*/g,".*")+"$")):m.push(F);r=m;r.length&&(t[u]=r,p=!1)}t.nothingRequired=p;t.noProperties=!(t.attributes||t.classes||t.styles);if(!0===f.elements||
+null===f.elements)e[l?"unshift":"push"](f);else for(k in t=f.elements,delete f.elements,t)if(b[k])b[k][l?"unshift":"push"](f);else b[k]=[f]}}function d(a,c,d,e){if(!a.match||a.match(c))if(e||k(a,c))if(a.propertiesOnly||(d.valid=!0),d.allAttributes||(d.allAttributes=b(a.attributes,c.attributes,d.validAttributes)),d.allStyles||(d.allStyles=b(a.styles,c.styles,d.validStyles)),!d.allClasses){a=a.classes;c=c.classes;e=d.validClasses;if(a)if(!0===a)a=!0;else{for(var f=0,l=c.length,t;f<l;++f)t=c[f],e[t]||
+(e[t]=a(t));a=!1}else a=!1;d.allClasses=a}}function b(a,b,c){if(!a)return!1;if(!0===a)return!0;for(var d in b)c[d]||(c[d]=a(d));return!1}function c(a,b,c){if(!a.match||a.match(b)){if(a.noProperties)return!1;c.hadInvalidAttribute=e(a.attributes,b.attributes)||c.hadInvalidAttribute;c.hadInvalidStyle=e(a.styles,b.styles)||c.hadInvalidStyle;a=a.classes;b=b.classes;if(a){for(var d=!1,f=!0===a,t=b.length;t--;)if(f||a(b[t]))b.splice(t,1),d=!0;a=d}else a=!1;c.hadInvalidClass=a||c.hadInvalidClass}}function e(a,
+b){if(!a)return!1;var c=!1,d=!0===a,e;for(e in b)if(d||a(e))delete b[e],c=!0;return c}function g(a,b,c){if(a.disabled||a.customConfig&&!c||!b)return!1;a._.cachedChecks={};return!0}function h(a,b){if(!a)return!1;if(!0===a)return a;if("string"==typeof a)return a=B(a),"*"==a?!0:CKEDITOR.tools.convertArrayToObject(a.split(b));if(CKEDITOR.tools.isArray(a))return a.length?CKEDITOR.tools.convertArrayToObject(a):!1;var c={},d=0,e;for(e in a)c[e]=a[e],d++;return d?c:!1}function k(a,b){if(a.nothingRequired)return!0;
+var c,d,e,f;if(e=a.requiredClasses)for(f=b.classes,c=0;c<e.length;++c)if(d=e[c],"string"==typeof d){if(-1==CKEDITOR.tools.indexOf(f,d))return!1}else if(!CKEDITOR.tools.checkIfAnyArrayItemMatches(f,d))return!1;return n(b.styles,a.requiredStyles)&&n(b.attributes,a.requiredAttributes)}function n(a,b){if(!b)return!0;for(var c=0,d;c<b.length;++c)if(d=b[c],"string"==typeof d){if(!(d in a))return!1}else if(!CKEDITOR.tools.checkIfAnyObjectPropertyMatches(a,d))return!1;return!0}function q(a){if(!a)return{};
+a=a.split(/\s*,\s*/).sort();for(var b={};a.length;)b[a.shift()]="cke-test";return b}function f(a){var b,c,d,e,f={},t=1;for(a=B(a);b=a.match(p);)(c=b[2])?(d=D(c,"styles"),e=D(c,"attrs"),c=D(c,"classes")):d=e=c=null,f["$"+t++]={elements:b[1],classes:c,styles:d,attributes:e},a=a.slice(b[0].length);return f}function D(a,b){var c=a.match(C[b]);return c?B(c[1]):null}function w(a){var b=a.styleBackup=a.attributes.style,c=a.classBackup=a.attributes["class"];a.styles||(a.styles=CKEDITOR.tools.parseCssText(b||
+"",1));a.classes||(a.classes=c?c.split(/\s+/):[])}function A(a,b,e,f){var l=0,u;f.toHtml&&(b.name=b.name.replace(t,"$1"));if(f.doCallbacks&&a.elementCallbacks){a:{u=a.elementCallbacks;for(var v=0,g=u.length,p;v<g;++v)if(p=u[v](b)){u=p;break a}u=void 0}if(u)return u}if(f.doTransform&&(u=a._.transformations[b.name])){w(b);for(v=0;v<u.length;++v)r(a,b,u[v]);x(b)}if(f.doFilter){a:{v=b.name;g=a._;a=g.allowedRules.elements[v];u=g.allowedRules.generic;v=g.disallowedRules.elements[v];g=g.disallowedRules.generic;
+p=f.skipRequired;var y={valid:!1,validAttributes:{},validClasses:{},validStyles:{},allAttributes:!1,allClasses:!1,allStyles:!1,hadInvalidAttribute:!1,hadInvalidClass:!1,hadInvalidStyle:!1},B,C;if(a||u){w(b);if(v)for(B=0,C=v.length;B<C;++B)if(!1===c(v[B],b,y)){a=null;break a}if(g)for(B=0,C=g.length;B<C;++B)c(g[B],b,y);if(a)for(B=0,C=a.length;B<C;++B)d(a[B],b,y,p);if(u)for(B=0,C=u.length;B<C;++B)d(u[B],b,y,p);a=y}else a=null}if(!a||!a.valid)return e.push(b),1;C=a.validAttributes;var h=a.validStyles;
+u=a.validClasses;var v=b.attributes,k=b.styles,g=b.classes;p=b.classBackup;var J=b.styleBackup,H,N,E=[],y=[],O=/^data-cke-/;B=!1;delete v.style;delete v["class"];delete b.classBackup;delete b.styleBackup;if(!a.allAttributes)for(H in v)C[H]||(O.test(H)?H==(N=H.replace(/^data-cke-saved-/,""))||C[N]||(delete v[H],B=!0):(delete v[H],B=!0));if(!a.allStyles||a.hadInvalidStyle){for(H in k)a.allStyles||h[H]?E.push(H+":"+k[H]):B=!0;E.length&&(v.style=E.sort().join("; "))}else J&&(v.style=J);if(!a.allClasses||
+a.hadInvalidClass){for(H=0;H<g.length;++H)(a.allClasses||u[g[H]])&&y.push(g[H]);y.length&&(v["class"]=y.sort().join(" "));p&&y.length<p.split(/\s+/).length&&(B=!0)}else p&&(v["class"]=p);B&&(l=1);if(!f.skipFinalValidation&&!m(b))return e.push(b),1}f.toHtml&&(b.name=b.name.replace(F,"cke:$1"));return l}function G(a){var b=[],c;for(c in a)-1<c.indexOf("*")&&b.push(c.replace(/\*/g,".*"));return b.length?new RegExp("^(?:"+b.join("|")+")$"):null}function x(a){var b=a.attributes,c;delete b.style;delete b["class"];
+if(c=CKEDITOR.tools.writeCssText(a.styles,!0))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function m(a){switch(a.name){case "a":if(!(a.children.length||a.attributes.name||a.attributes.id))return!1;break;case "img":if(!a.attributes.src)return!1}return!0}function K(a){if(!a)return!1;if(!0===a)return!0;var b=G(a);return function(c){return c in a||b&&c.match(b)}}function z(){return new CKEDITOR.htmlParser.element("br")}function I(a){return a.type==CKEDITOR.NODE_ELEMENT&&("br"==
+a.name||y.$block[a.name])}function l(a,b,c){var d=a.name;if(y.$empty[d]||!a.children.length)"hr"==d&&"br"==b?a.replaceWith(z()):(a.parent&&c.push({check:"it",el:a.parent}),a.remove());else if(y.$block[d]||"tr"==d)if("br"==b)a.previous&&!I(a.previous)&&(b=z(),b.insertBefore(a)),a.next&&!I(a.next)&&(b=z(),b.insertAfter(a)),a.replaceWithChildren();else{var d=a.children,e;b:{e=y[b];for(var f=0,t=d.length,l;f<t;++f)if(l=d[f],l.type==CKEDITOR.NODE_ELEMENT&&!e[l.name]){e=!1;break b}e=!0}if(e)a.name=b,a.attributes=
+{},c.push({check:"parent-down",el:a});else{e=a.parent;for(var f=e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||"body"==e.name,v,u,t=d.length;0<t;)l=d[--t],f&&(l.type==CKEDITOR.NODE_TEXT||l.type==CKEDITOR.NODE_ELEMENT&&y.$inline[l.name])?(v||(v=new CKEDITOR.htmlParser.element(b),v.insertAfter(a),c.push({check:"parent-down",el:v})),v.add(l,0)):(v=null,u=y[e.name]||y.span,l.insertAfter(a),e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||l.type!=CKEDITOR.NODE_ELEMENT||u[l.name]||c.push({check:"el-up",el:l}));a.remove()}}else d in
+{style:1,script:1}?a.remove():(a.parent&&c.push({check:"it",el:a.parent}),a.replaceWithChildren())}function r(a,b,c){var d,e;for(d=0;d<c.length;++d)if(e=c[d],!(e.check&&!a.check(e.check,!1)||e.left&&!e.left(b))){e.right(b,N);break}}function J(a,b){var c=b.getDefinition(),d=c.attributes,e=c.styles,f,l,t,v;if(a.name!=c.element)return!1;for(f in d)if("class"==f)for(c=d[f].split(/\s+/),t=a.classes.join("|");v=c.pop();){if(-1==t.indexOf(v))return!1}else if(a.attributes[f]!=d[f])return!1;for(l in e)if(a.styles[l]!=
+e[l])return!1;return!0}function H(a,b){var c,d;"string"==typeof a?c=a:a instanceof CKEDITOR.style?d=a:(c=a[0],d=a[1]);return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function E(a){return function(b){return J(b,a)}}function u(a){return function(b,c){c[a](b)}}var y=CKEDITOR.dtd,v=CKEDITOR.tools.copy,B=CKEDITOR.tools.trim,L=["","p","br","div"];CKEDITOR.FILTER_SKIP_TREE=2;CKEDITOR.filter=function(a){this.allowedContent=[];this.disallowedContent=[];this.elementCallbacks=null;this.disabled=
+!1;this.editor=null;this.id=CKEDITOR.tools.getNextNumber();this._={allowedRules:{elements:{},generic:[]},disallowedRules:{elements:{},generic:[]},transformations:{},cachedTests:{},cachedChecks:{}};CKEDITOR.filter.instances[this.id]=this;if(a instanceof CKEDITOR.editor){a=this.editor=a;this.customConfig=!0;var b=a.config.allowedContent;!0===b?this.disabled=!0:(b||(this.customConfig=!1),this.allow(b,"config",1),this.allow(a.config.extraAllowedContent,"extra",1),this.allow(L[a.enterMode]+" "+L[a.shiftEnterMode],
+"default",1),this.disallow(a.config.disallowedContent))}else this.customConfig=!1,this.allow(a,"default",1)};CKEDITOR.filter.instances={};CKEDITOR.filter.prototype={allow:function(b,c,d){if(!g(this,b,d))return!1;var e,l;if("string"==typeof b)b=f(b);else if(b instanceof CKEDITOR.style){if(b.toAllowedContentRules)return this.allow(b.toAllowedContentRules(this.editor),c,d);e=b.getDefinition();b={};d=e.attributes;b[e.element]=e={styles:e.styles,requiredStyles:e.styles&&CKEDITOR.tools.objectKeys(e.styles)};
+d&&(d=v(d),e.classes=d["class"]?d["class"].split(/\s+/):null,e.requiredClasses=e.classes,delete d["class"],e.attributes=d,e.requiredAttributes=d&&CKEDITOR.tools.objectKeys(d))}else if(CKEDITOR.tools.isArray(b)){for(e=0;e<b.length;++e)l=this.allow(b[e],c,d);return l}a(this,b,c,this.allowedContent,this._.allowedRules);return!0},applyTo:function(a,b,c,d){if(this.disabled)return!1;var e=this,f=[],t=this.editor&&this.editor.config.protectedSource,v,u=!1,g={doFilter:!c,doTransform:!0,doCallbacks:!0,toHtml:b};
+a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if("off"==a.attributes["data-cke-filter"])return!1;if(!b||"span"!=a.name||!~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-"))if(v=A(e,a,f,g),v&1)u=!0;else if(v&2)return!1}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var d=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];var l,p,r;if(t)for(p=0;p<t.length;++p)if((r=d.match(t[p]))&&r[0].length==d.length){c=!0;
+break a}d=CKEDITOR.htmlParser.fragment.fromHtml(d);1==d.children.length&&(l=d.children[0]).type==CKEDITOR.NODE_ELEMENT&&A(e,l,c,g);c=!c.length}c||f.push(a)}},null,!0);f.length&&(u=!0);var p;a=[];d=L[d||(this.editor?this.editor.enterMode:CKEDITOR.ENTER_P)];for(var r;c=f.pop();)c.type==CKEDITOR.NODE_ELEMENT?l(c,d,a):c.remove();for(;p=a.pop();)if(c=p.el,c.parent)switch(r=y[c.parent.name]||y.span,p.check){case "it":y.$removeEmpty[c.name]&&!c.children.length?l(c,d,a):m(c)||l(c,d,a);break;case "el-up":c.parent.type==
+CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c,d,a);break;case "parent-down":c.parent.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||r[c.name]||l(c.parent,d,a)}return u},checkFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=!0},disallow:function(b){if(!g(this,b,!0))return!1;"string"==typeof b&&(b=f(b));a(this,b,null,this.disallowedContent,this._.disallowedRules);return!0},
+addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],e;for(b=0;b<a.length&&!e;++b)c=a[b],("string"==typeof c||c instanceof CKEDITOR.style)&&this.check(c)&&(e=c);if(e){for(b=0;b<a.length;++b)d.push(H(a[b],e));this.addTransformations(d)}}},addElementCallback:function(a){this.elementCallbacks||(this.elementCallbacks=[]);this.elementCallbacks.push(a)},addFeature:function(a){if(this.disabled||!a)return!0;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
+this.addContentForms(a.contentForms);return a.requiredContent&&(this.customConfig||this.disallowedContent.length)?this.check(a.requiredContent):!0},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,e;for(e=0;e<a.length;++e){b=a[e];var f=void 0,l=void 0,t=void 0,v=void 0,g=void 0,p=void 0;c=[];for(l=0;l<b.length;++l)t=b[l],"string"==typeof t?(t=t.split(/\s*:\s*/),v=t[0],g=null,p=t[1]):(v=t.check,g=t.left,p=t.right),f||(f=t,f=f.element?f.element:v?v.match(/^([a-z0-9]+)/i)[0]:
+f.left.getDefinition().element),g instanceof CKEDITOR.style&&(g=E(g)),c.push({check:v==f?null:v,left:g,right:"string"==typeof p?u(p):p});b=f;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return!0;if(CKEDITOR.tools.isArray(a)){for(var d=a.length;d--;)if(this.check(a[d],b,c))return!0;return!1}var e,l;if("string"==typeof a){l=a+"\x3c"+(!1===b?"0":"1")+(c?"1":"0")+"\x3e";if(l in this._.cachedChecks)return this._.cachedChecks[l];d=f(a).$1;e=d.styles;var t=d.classes;d.name=d.elements;
+d.classes=t=t?t.split(/\s*,\s*/):[];d.styles=q(e);d.attributes=q(d.attributes);d.children=[];t.length&&(d.attributes["class"]=t.join(" "));e&&(d.attributes.style=CKEDITOR.tools.writeCssText(d.styles));e=d}else d=a.getDefinition(),e=d.styles,t=d.attributes||{},e&&!CKEDITOR.tools.isEmpty(e)?(e=v(e),t.style=CKEDITOR.tools.writeCssText(e,!0)):e={},e={name:d.element,attributes:t,classes:t["class"]?t["class"].split(/\s+/):[],styles:e,children:[]};var t=CKEDITOR.tools.clone(e),u=[],g;if(!1!==b&&(g=this._.transformations[e.name])){for(d=
+0;d<g.length;++d)r(this,e,g[d]);x(e)}A(this,t,u,{doFilter:!0,doTransform:!1!==b,skipRequired:!c,skipFinalValidation:!c});b=0<u.length?!1:CKEDITOR.tools.objectCompare(e.attributes,t.attributes,!0)?!0:!1;"string"==typeof a&&(this._.cachedChecks[l]=b);return b},getAllowedEnterMode:function(){var a=["p","div","br"],b={p:CKEDITOR.ENTER_P,div:CKEDITOR.ENTER_DIV,br:CKEDITOR.ENTER_BR};return function(c,d){var e=a.slice(),f;if(this.check(L[c]))return c;for(d||(e=e.reverse());f=e.pop();)if(this.check(f))return b[f];
+return CKEDITOR.ENTER_BR}}(),clone:function(){var a=new CKEDITOR.filter,b=CKEDITOR.tools.clone;a.allowedContent=b(this.allowedContent);a._.allowedRules=b(this._.allowedRules);a.disallowedContent=b(this.disallowedContent);a._.disallowedRules=b(this._.disallowedRules);a._.transformations=b(this._.transformations);a.disabled=this.disabled;a.editor=this.editor;return a},destroy:function(){delete CKEDITOR.filter.instances[this.id];delete this._;delete this.allowedContent;delete this.disallowedContent}};
+var V={styles:1,attributes:1,classes:1},O={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},p=/^([a-z0-9\-*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,C={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,classes:/\(([^\)]+)\)/},t=/^cke:(object|embed|param)$/,F=/^(object|embed|param)$/,N;N=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,
+"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];d&&(/^\d+$/.test(d)&&(d+="px"),a.styles[c]=d)}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],e=d&&d.match(/^(\d+)(?:\.\d*)?px$/);e?a.attributes[c]=e[1]:"cke-test"==d&&(a.attributes[c]="cke-test")}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if("left"==b||"right"==
+b)a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if("left"==b||"right"==b)a.attributes.align=b}delete a.styles["float"]},splitBorderShorthand:function(a){function b(d){a.styles["border-top-width"]=c[d[0]];a.styles["border-right-width"]=c[d[1]];a.styles["border-bottom-width"]=c[d[2]];a.styles["border-left-width"]=c[d[3]]}if(a.styles.border){var c=a.styles.border.match(/([\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:a.styles["border-width"]=
+c[0];break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}a.styles["border-style"]=a.styles["border-style"]||(a.styles.border.match(/(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit)/)||[])[0];a.styles["border-style"]||delete a.styles["border-style"];delete a.styles.border}},listTypeToStyle:function(a){if(a.attributes.type)switch(a.attributes.type){case "a":a.styles["list-style-type"]="lower-alpha";break;case "A":a.styles["list-style-type"]=
+"upper-alpha";break;case "i":a.styles["list-style-type"]="lower-roman";break;case "I":a.styles["list-style-type"]="upper-roman";break;case "1":a.styles["list-style-type"]="decimal";break;default:a.styles["list-style-type"]=a.attributes.type}},splitMarginShorthand:function(a){function b(d){a.styles["margin-top"]=c[d[0]];a.styles["margin-right"]=c[d[1]];a.styles["margin-bottom"]=c[d[2]];a.styles["margin-left"]=c[d[3]]}if(a.styles.margin){var c=a.styles.margin.match(/(\-?[\.\d]+\w+)/g)||["0px"];switch(c.length){case 1:b([0,
+0,0,0]);break;case 2:b([0,1,0,1]);break;case 3:b([0,1,2,1]);break;case 4:b([0,1,2,3])}delete a.styles.margin}},matchesStyle:J,transform:function(a,b){if("string"==typeof b)a.name=b;else{var c=b.getDefinition(),d=c.styles,e=c.attributes,f,t,l,v;a.name=c.element;for(f in e)if("class"==f)for(c=a.classes.join("|"),l=e[f].split(/\s+/);v=l.pop();)-1==c.indexOf(v)&&a.classes.push(v);else a.attributes[f]=e[f];for(t in d)a.styles[t]=d[t]}}}})();
 (function(){CKEDITOR.focusManager=function(a){if(a.focusManager)return a.focusManager;this.hasFocus=!1;this.currentActive=null;this._={editor:a};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(a){this._.timer&&clearTimeout(this._.timer);a&&(this.currentActive=a);this.hasFocus||this._.locked||((a=CKEDITOR.currentInstance)&&a.focusManager.blur(1),this.hasFocus=!0,(a=this._.editor.container)&&a.addClass("cke_focus"),this._.editor.fire("focus"))},lock:function(){this._.locked=
 1},unlock:function(){delete this._.locked},blur:function(a){function d(){if(this.hasFocus){this.hasFocus=!1;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var b=CKEDITOR.focusManager._.blurDelay;a||!b?d.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;d.call(this)},b,this)}},add:function(a,d){var b=a.getCustomData("focusmanager");if(!b||b!=this){b&&b.remove(a);var b=
 "focus",c="blur";d&&(CKEDITOR.env.ie?(b="focusin",c="focusout"):CKEDITOR.event.useCapture=1);var e={blur:function(){a.equals(this.currentActive)&&this.blur()},focus:function(){this.focus(a)}};a.on(b,e.focus,this);a.on(c,e.blur,this);d&&(CKEDITOR.event.useCapture=0);a.setCustomData("focusmanager",this);a.setCustomData("focusmanager_handlers",e)}},remove:function(a){a.removeCustomData("focusmanager");var d=a.removeCustomData("focusmanager_handlers");a.removeListener("blur",d.blur);a.removeListener("focus",
 d.focus)}}})();CKEDITOR.keystrokeHandler=function(a){if(a.keystrokeHandler)return a.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:a};return this};
-(function(){var a,d=function(b){b=b.data;var d=b.getKeystroke(),g=this.keystrokes[d],l=this._.editor;a=!1===l.fire("key",{keyCode:d,domEvent:b});a||(g&&(a=!1!==l.execCommand(g,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[d]));a&&b.preventDefault(!0);return!a},b=function(b){a&&(a=!1,b.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",d,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})();
-(function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,d,b){a&&CKEDITOR.lang.languages[a]||(a=
-this.detect(d,a));var c=this;d=function(){c[a].dir=c.rtl[a]?"rtl":"ltr";b(a,c[a])};this[a]?d():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),d,this)},detect:function(a,d){var b=this.languages;d=d||navigator.userLanguage||navigator.language||a;var c=d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=c[1],c=c[2];b[e+"-"+c]?e=e+"-"+c:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})();
-CKEDITOR.scriptLoader=function(){var a={},d={};return{load:function(b,c,e,g){var l="string"==typeof b;l&&(b=[b]);e||(e=CKEDITOR);var k=b.length,n=[],w=[],f=function(a){c&&(l?c.call(e,a):c.call(e,n,w))};if(0===k)f(!0);else{var x=function(a,b){(b?n:w).push(a);0>=--k&&(g&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),f(b))},A=function(b,c){a[b]=1;var e=d[b];delete d[b];for(var g=0;g<e.length;g++)e[g](b,c)},u=function(b){if(a[b])x(b,!0);else{var e=d[b]||(d[b]=[]);e.push(x);if(!(1<e.length)){var g=
-new CKEDITOR.dom.element("script");g.setAttributes({type:"text/javascript",src:b});c&&(CKEDITOR.env.ie&&11>CKEDITOR.env.version?g.$.onreadystatechange=function(){if("loaded"==g.$.readyState||"complete"==g.$.readyState)g.$.onreadystatechange=null,A(b,!0)}:(g.$.onload=function(){setTimeout(function(){A(b,!0)},0)},g.$.onerror=function(){A(b,!1)}));g.appendTo(CKEDITOR.document.getHead())}}};g&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var B=0;B<k;B++)u(b[B])}},queue:function(){function a(){var b;
-(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}var c=[];return function(d,g){var l=this;c.push({scriptUrl:d,callback:function(){g&&g.apply(this,arguments);c.shift();a.call(l)}});1==c.length&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(a,d){this.basePath=a;this.fileName=d;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
+(function(){var a,d=function(b){b=b.data;var d=b.getKeystroke(),g=this.keystrokes[d],h=this._.editor;a=!1===h.fire("key",{keyCode:d,domEvent:b});a||(g&&(a=!1!==h.execCommand(g,{from:"keystrokeHandler"})),a||(a=!!this.blockedKeystrokes[d]));a&&b.preventDefault(!0);return!a},b=function(b){a&&(a=!1,b.data.preventDefault(!0))};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",d,this);if(CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})();
+(function(){CKEDITOR.lang={languages:{af:1,ar:1,az:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,oc:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},rtl:{ar:1,fa:1,he:1,ku:1,ug:1},load:function(a,d,b){a&&CKEDITOR.lang.languages[a]||
+(a=this.detect(d,a));var c=this;d=function(){c[a].dir=c.rtl[a]?"rtl":"ltr";b(a,c[a])};this[a]?d():CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+a+".js"),d,this)},detect:function(a,d){var b=this.languages;d=d||navigator.userLanguage||navigator.language||a;var c=d.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=c[1],c=c[2];b[e+"-"+c]?e=e+"-"+c:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})();
+CKEDITOR.scriptLoader=function(){var a={},d={};return{load:function(b,c,e,g){var h="string"==typeof b;h&&(b=[b]);e||(e=CKEDITOR);var k=b.length,n=[],q=[],f=function(a){c&&(h?c.call(e,a):c.call(e,n,q))};if(0===k)f(!0);else{var D=function(a,b){(b?n:q).push(a);0>=--k&&(g&&CKEDITOR.document.getDocumentElement().removeStyle("cursor"),f(b))},w=function(b,c){a[b]=1;var e=d[b];delete d[b];for(var f=0;f<e.length;f++)e[f](b,c)},A=function(b){if(a[b])D(b,!0);else{var e=d[b]||(d[b]=[]);e.push(D);if(!(1<e.length)){var f=
+new CKEDITOR.dom.element("script");f.setAttributes({type:"text/javascript",src:b});c&&(CKEDITOR.env.ie&&(8>=CKEDITOR.env.version||CKEDITOR.env.ie9Compat)?f.$.onreadystatechange=function(){if("loaded"==f.$.readyState||"complete"==f.$.readyState)f.$.onreadystatechange=null,w(b,!0)}:(f.$.onload=function(){setTimeout(function(){w(b,!0)},0)},f.$.onerror=function(){w(b,!1)}));f.appendTo(CKEDITOR.document.getHead())}}};g&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var G=0;G<k;G++)A(b[G])}},
+queue:function(){function a(){var b;(b=c[0])&&this.load(b.scriptUrl,b.callback,CKEDITOR,0)}var c=[];return function(d,g){var h=this;c.push({scriptUrl:d,callback:function(){g&&g.apply(this,arguments);c.shift();a.call(h)}});1==c.length&&a.call(this)}}()}}();CKEDITOR.resourceManager=function(a,d){this.basePath=a;this.fileName=d;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
 CKEDITOR.resourceManager.prototype={add:function(a,d){if(this.registered[a])throw Error('[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.');var b=this.registered[a]=d||{};b.name=a;b.path=this.getPath(a);CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",b);return this.get(a)},get:function(a){return this.registered[a]||null},getPath:function(a){var d=this.externals[a];return CKEDITOR.getUrl(d&&d.dir||this.basePath+a+"/")},getFilePath:function(a){var d=this.externals[a];
-return CKEDITOR.getUrl(this.getPath(a)+(d?d.file:this.fileName+".js"))},addExternal:function(a,d,b){a=a.split(",");for(var c=0;c<a.length;c++){var e=a[c];b||(d=d.replace(/[^\/]+$/,function(a){b=a;return""}));this.externals[e]={dir:d,file:b||this.fileName+".js"}}},load:function(a,d,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var c=this.loaded,e=this.registered,g=[],l={},k={},n=0;n<a.length;n++){var w=a[n];if(w)if(c[w]||e[w])k[w]=this.get(w);else{var f=this.getFilePath(w);g.push(f);f in l||(l[f]=
-[]);l[f].push(w)}}CKEDITOR.scriptLoader.load(g,function(a,e){if(e.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+l[e[0]].join(",")+'" was not found at "'+e[0]+'".');for(var g=0;g<a.length;g++)for(var f=l[a[g]],q=0;q<f.length;q++){var y=f[q];k[y]=this.get(y);c[y]=1}d.call(b,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
-CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var d={};return function(b,c,e){var g={},l=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(g,a);var b=[],f;for(f in a){var k=a[f],A=k&&k.requires;if(!d[f]){if(k.icons)for(var u=k.icons.split(","),B=u.length;B--;)CKEDITOR.skin.addIcon(u[B],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+u[B]+".png");d[f]=1}if(A)for(A.split&&(A=A.split(",")),k=0;k<A.length;k++)g[A[k]]||b.push(A[k])}if(b.length)l.call(this,
-b);else{for(f in g)k=g[f],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete g[f],k.onLoad._called=1);c&&c.call(e||window,g)}},this)};l.call(this,b)}});CKEDITOR.plugins.setLang=function(a,d,b){var c=this.get(a);a=c.langEntries||(c.langEntries={});c=c.lang||(c.lang=[]);c.split&&(c=c.split(","));-1==CKEDITOR.tools.indexOf(c,d)&&c.push(d);a[d]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this};
+return CKEDITOR.getUrl(this.getPath(a)+(d?d.file:this.fileName+".js"))},addExternal:function(a,d,b){a=a.split(",");for(var c=0;c<a.length;c++){var e=a[c];b||(d=d.replace(/[^\/]+$/,function(a){b=a;return""}));this.externals[e]={dir:d,file:b||this.fileName+".js"}}},load:function(a,d,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var c=this.loaded,e=this.registered,g=[],h={},k={},n=0;n<a.length;n++){var q=a[n];if(q)if(c[q]||e[q])k[q]=this.get(q);else{var f=this.getFilePath(q);g.push(f);f in h||(h[f]=
+[]);h[f].push(q)}}CKEDITOR.scriptLoader.load(g,function(a,e){if(e.length)throw Error('[CKEDITOR.resourceManager.load] Resource name "'+h[e[0]].join(",")+'" was not found at "'+e[0]+'".');for(var f=0;f<a.length;f++)for(var g=h[a[f]],n=0;n<g.length;n++){var m=g[n];k[m]=this.get(m);c[m]=1}d.call(b,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
+CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var d={};return function(b,c,e){var g={},h=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(g,a);var b=[],f;for(f in a){var k=a[f],w=k&&k.requires;if(!d[f]){if(k.icons)for(var A=k.icons.split(","),G=A.length;G--;)CKEDITOR.skin.addIcon(A[G],k.path+"icons/"+(CKEDITOR.env.hidpi&&k.hidpi?"hidpi/":"")+A[G]+".png");d[f]=1}if(w)for(w.split&&(w=w.split(",")),k=0;k<w.length;k++)g[w[k]]||b.push(w[k])}if(b.length)h.call(this,
+b);else{for(f in g)k=g[f],k.onLoad&&!k.onLoad._called&&(!1===k.onLoad()&&delete g[f],k.onLoad._called=1);c&&c.call(e||window,g)}},this)};h.call(this,b)}});CKEDITOR.plugins.setLang=function(a,d,b){var c=this.get(a);a=c.langEntries||(c.langEntries={});c=c.lang||(c.lang=[]);c.split&&(c=c.split(","));-1==CKEDITOR.tools.indexOf(c,d)&&c.push(d);a[d]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this};
 CKEDITOR.ui.prototype={add:function(a,d,b){b.name=a.toLowerCase();var c=this.items[a]={type:d,command:b.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(c,b)},get:function(a){return this.instances[a]},create:function(a){var d=this.items[a],b=d&&this._.handlers[d.type],c=d&&d.command&&this.editor.getCommand(d.command),b=b&&b.create.apply(this,d.args);this.instances[a]=b;c&&c.uiItems.push(b);b&&!b.type&&(b.type=d.type);return b},addHandler:function(a,d){this._.handlers[a]=
 d},space:function(a){return CKEDITOR.document.getById(this.spaceId(a))},spaceId:function(a){return this.editor.id+"_"+a}};CKEDITOR.event.implementOn(CKEDITOR.ui);
 (function(){function a(a,e,f){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(void 0!==e){if(!(e instanceof CKEDITOR.dom.element))throw Error("Expect element of type CKEDITOR.dom.element.");if(!f)throw Error("One of the element modes must be specified.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(!b(e,f))throw Error('The specified element mode is not supported on element: "'+e.getName()+'".');
 this.element=e;this.elementMode=f;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(e.getId()||e.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||d();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",
-c);this.on("selectionChange",function(a){g(this,a.data.path)});this.on("activeFilterChange",function(){g(this,this.elementPath(),!0)});this.on("mode",c);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},0,this)}function d(){do var a="editor"+ ++u;while(CKEDITOR.instances[a]);return a}function b(a,
-b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function c(){var a=this.commands,b;for(b in a)e(this,a[b])}function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function g(a,b,c){if(b){var d,e,h=a.commands;for(e in h)d=h[e],(c||d.contextSensitive)&&d.refresh(a,b)}}function l(a){var b=a.config.customConfig;if(!b)return!1;var b=
-CKEDITOR.getUrl(b),c=B[b]||(B[b]={});c.fn?(c.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&l(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){c.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};l(a)});return!0}function k(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,!0);delete a.config.on}c=a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?
+c);this.on("selectionChange",function(a){g(this,a.data.path)});this.on("activeFilterChange",function(){g(this,this.elementPath(),!0)});this.on("mode",c);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){"destroyed"!==this.status?k(this,a):CKEDITOR.warn("editor-incorrect-destroy")},0,this)}function d(){do var a="editor"+ ++G;while(CKEDITOR.instances[a]);return a}function b(a,
+b){return b==CKEDITOR.ELEMENT_MODE_INLINE?a.is(CKEDITOR.dtd.$editable)||a.is("textarea"):b==CKEDITOR.ELEMENT_MODE_REPLACE?!a.is(CKEDITOR.dtd.$nonBodyContent):1}function c(){var a=this.commands,b;for(b in a)e(this,a[b])}function e(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function g(a,b,c){if(b){var d,e,f=a.commands;for(e in f)d=f[e],(c||d.contextSensitive)&&d.refresh(a,b)}}function h(a){var b=a.config.customConfig;if(!b)return!1;var b=
+CKEDITOR.getUrl(b),c=x[b]||(x[b]={});c.fn?(c.fn.call(a,a.config),CKEDITOR.getUrl(a.config.customConfig)!=b&&h(a)||a.fireOnce("customConfigLoaded")):CKEDITOR.scriptLoader.queue(b,function(){c.fn=CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};h(a)});return!0}function k(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,!0);delete a.config.on}c=a.config;a.readOnly=c.readOnly?!0:a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?
 a.element.is("textarea")?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.element.hasAttribute("disabled")||a.element.hasAttribute("readonly"):!1;a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?!(a.element.is("textarea")||CKEDITOR.dtd[a.element.getName()].p):!1;a.tabIndex=c.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;a.activeEnterMode=a.enterMode=a.blockless?CKEDITOR.ENTER_BR:c.enterMode;
-a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);n(a)});b&&null!=b.customConfig&&(a.config.customConfig=b.customConfig);l(a)||a.fireOnce("customConfigLoaded")}function n(a){CKEDITOR.skin.loadPart("editor",function(){w(a)})}function w(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,
-c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title="string"==typeof d||!1===d?d:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");f(a)})}function f(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);x(a)})}function x(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=
-b.removePlugins;if(d)var h=new RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(h,""),c=c+(","+d);if(e)var p=new RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(p,"");CKEDITOR.env.air&&(c+=",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],h=[],e=[];a.plugins=c;for(var g in c){var f=c[g],z=f.lang,l=null,k=f.requires,v;CKEDITOR.tools.isArray(k)&&(k=k.join(","));if(k&&(v=k.match(p)))for(;k=v.pop();)CKEDITOR.error("editor-plugin-required",
-{plugin:k.replace(",",""),requiredBy:g});z&&!a.lang[g]&&(z.split&&(z=z.split(",")),0<=CKEDITOR.tools.indexOf(z,a.langCode)?l=a.langCode:(l=a.langCode.replace(/-.*/,""),l=l!=a.langCode&&0<=CKEDITOR.tools.indexOf(z,l)?l:0<=CKEDITOR.tools.indexOf(z,"en")?"en":z[0]),f.langEntries&&f.langEntries[l]?(a.lang[g]=f.langEntries[l],l=null):e.push(CKEDITOR.getUrl(f.path+"lang/"+l+".js")));h.push(l);d.push(f)}CKEDITOR.scriptLoader.load(e,function(){for(var c=["beforeInit","init","afterInit"],e=0;e<c.length;e++)for(var p=
-0;p<d.length;p++){var m=d[p];0===e&&h[p]&&m.lang&&m.langEntries&&(a.lang[m.name]=m.langEntries[h[p]]);if(m[c[e]])m[c[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(p=0;p<a.config.blockedKeystrokes.length;p++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[p]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function A(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
-this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var u=0,B={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&e(this,c);return this.commands[a]=c},_attachToForm:function(){function a(b){c.updateElement();c._.required&&!d.getValue()&&!1===c.fire("required")&&b.data.preventDefault()}
-function b(a){return!!(a&&a.call&&a.apply)}var c=this,d=c.element,e=new CKEDITOR.dom.element(d.$.form);d.is("textarea")&&e&&(e.on("submit",a),b(e.$.submit)&&(e.$.submit=CKEDITOR.tools.override(e.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),c.on("destroy",function(){e.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");!a&&A.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status=
-"destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,b){var c=this.getCommand(a),d={name:a,commandData:b,command:c};return c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&
-!1!==this.fire("beforeCommandExec",d)&&(d.returnValue=c.exec(d.commandData),!c.async&&!1!==this.fire("afterCommandExec",d))?d.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");
-"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){var d=!0,e=b;b&&"object"==typeof b&&(c=b.internal,e=b.callback,d=!b.noSnapshot);!c&&d&&this.fire("saveSnapshot");if(e||!c)this.once("dataReady",function(a){!c&&d&&this.fire("saveSnapshot");e&&e.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;
-!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,c){this.fire("insertHtml",{dataValue:a,mode:b,range:c})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},getSelectedHtml:function(a){var b=this.editable(),c=this.getSelection(),c=c&&c.getRanges();if(!b||!c||0===c.length)return null;
-for(var d=new CKEDITOR.dom.documentFragment,e,h,p,m=0;m<c.length;m++){var g=c[m],r=g.startContainer;r.getName&&"tr"==r.getName()?(e||(e=r.getAscendant("table").clone(),e.append(r.getAscendant("tbody").clone()),d.append(e),e=e.findOne("tbody")),h&&h.equals(r)||(h=r,p=r.clone(),e.append(p)),p.append(g.cloneContents())):d.append(g.cloneContents())}b=e?d:b.getHtmlFromRange(c[0]);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var c=this.editable(),d=this.getSelection().getRanges();if(!c||0===
-d.length)return null;d=d[0];c=c.extractHtmlFromRange(d,b);b||this.getSelection().selectRanges([d]);return a?c.getHtml():c},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return A.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,
-0)],c,d,e=b.length;e--;)c=b[e],d=0,CKEDITOR.tools.isArray(c)&&(d=c[1],c=c[0]),d?a[c]=d:delete a[c]},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,b){a=a?this.blockless?CKEDITOR.ENTER_BR:
-a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}};
-(function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,d={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var c,e,g=0,l;c=this._.htmlPartsRegex.exec(b);){e=c.index;if(e>g)if(g=b.substring(g,e),l)l.push(g);else this.onText(g);
-g=this._.htmlPartsRegex.lastIndex;if(e=c[1])if(e=e.toLowerCase(),l&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(l.join("")),l=null),!l){this.onTagClose(e);continue}if(l)l.push(c[0]);else if(e=c[3]){if(e=e.toLowerCase(),!/="/.test(e)){var k={},n,w=c[4];c=!!c[5];if(w)for(;n=a.exec(w);){var f=n[1].toLowerCase();n=n[2]||n[3]||n[4]||"";k[f]=!n&&d[f]?f:CKEDITOR.tools.htmlDecodeAttr(n)}this.onTagOpen(e,k,c);!l&&CKEDITOR.dtd.$cdata[e]&&(l=[])}}else if(e=c[2])this.onComment(e)}if(b.length>g)this.onText(b.substring(g,
+a.activeShiftEnterMode=a.shiftEnterMode=a.blockless?CKEDITOR.ENTER_BR:c.shiftEnterMode;c.skin&&(CKEDITOR.skinName=c.skin);a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=a.activeFilter=new CKEDITOR.filter(a);n(a)});b&&null!=b.customConfig&&(a.config.customConfig=b.customConfig);h(a)||a.fireOnce("customConfigLoaded")}function n(a){CKEDITOR.skin.loadPart("editor",function(){q(a)})}function q(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,
+c){var d=a.config.title;a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);a.title="string"==typeof d||!1===d?d:[a.lang.editor,a.name].join(", ");a.config.contentsLangDirection||(a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir);a.fire("langLoaded");f(a)})}function f(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);D(a)})}function D(a){var b=a.config,c=b.plugins,d=b.extraPlugins,e=
+b.removePlugins;if(d)var f=new RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(f,""),c=c+(","+d);if(e)var g=new RegExp("(?:^|,)(?:"+e.replace(/\s*,\s*/g,"|")+")(?\x3d,|$)","g"),c=c.replace(g,"");CKEDITOR.env.air&&(c+=",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],e=[],f=[];a.plugins=c;for(var l in c){var r=c[l],k=r.lang,h=null,O=r.requires,p;CKEDITOR.tools.isArray(O)&&(O=O.join(","));if(O&&(p=O.match(g)))for(;O=p.pop();)CKEDITOR.error("editor-plugin-required",
+{plugin:O.replace(",",""),requiredBy:l});k&&!a.lang[l]&&(k.split&&(k=k.split(",")),0<=CKEDITOR.tools.indexOf(k,a.langCode)?h=a.langCode:(h=a.langCode.replace(/-.*/,""),h=h!=a.langCode&&0<=CKEDITOR.tools.indexOf(k,h)?h:0<=CKEDITOR.tools.indexOf(k,"en")?"en":k[0]),r.langEntries&&r.langEntries[h]?(a.lang[l]=r.langEntries[h],h=null):f.push(CKEDITOR.getUrl(r.path+"lang/"+h+".js")));e.push(h);d.push(r)}CKEDITOR.scriptLoader.load(f,function(){for(var c=["beforeInit","init","afterInit"],f=0;f<c.length;f++)for(var l=
+0;l<d.length;l++){var v=d[l];0===f&&e[l]&&v.lang&&v.langEntries&&(a.lang[v.name]=v.langEntries[e[l]]);if(v[c[f]])v[c[f]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(l=0;l<a.config.blockedKeystrokes.length;l++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[l]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function w(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();
+this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return!0}return!1}function A(a,b){function c(a){var b=a.startContainer,d=a.endContainer;return b.is&&(b.is("tr")||b.is("td")&&b.equals(d)&&a.endOffset===b.getChildCount())?!0:!1}function d(a){var b=a.startContainer;return b.is("tr")?a.cloneContents():b.clone(!0)}for(var e=new CKEDITOR.dom.documentFragment,f,g,k,h=0;h<a.length;h++){var u=a[h],y=u.startContainer.getAscendant("tr",!0);c(u)?(f||
+(f=y.getAscendant("table").clone(),f.append(y.getAscendant({thead:1,tbody:1,tfoot:1}).clone()),e.append(f),f=f.findOne("thead, tbody, tfoot")),g&&g.equals(y)||(g=y,k=y.clone(),f.append(k)),k.append(d(u))):e.append(u.cloneContents())}return f?e:b.getHtmlFromRange(a[0])}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var G=0,x={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&e(this,c);return this.commands[a]=
+c},_attachToForm:function(){function a(b){c.updateElement();c._.required&&!d.getValue()&&!1===c.fire("required")&&b.data.preventDefault()}function b(a){return!!(a&&a.call&&a.apply)}var c=this,d=c.element,e=new CKEDITOR.dom.element(d.$.form);d.is("textarea")&&e&&(e.on("submit",a),b(e.$.submit)&&(e.$.submit=CKEDITOR.tools.override(e.$.submit,function(b){return function(){a();b.apply?b.apply(this):b()}})),c.on("destroy",function(){e.removeListener("submit",a)}))},destroy:function(a){this.fire("beforeDestroy");
+!a&&w.call(this);this.editable(null);this.filter&&(this.filter.destroy(),delete this.filter);delete this.activeFilter;this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){if(!a){a=this.getSelection();if(!a)return null;a=a.getStartElement()}return a?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,
+b){var c=this.getCommand(a),d={name:a,commandData:b||{},command:c};return c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&!1!==this.fire("beforeCommandExec",d)&&(d.returnValue=c.exec(d.commandData),!c.async&&!1!==this.fire("afterCommandExec",d))?d.returnValue:!1},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;"string"!=typeof b&&(b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():
+"");b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");"string"!=typeof a&&(a=(a=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?a.is("textarea")?a.getValue():a.getHtml():"");return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){var d=!0,e=b;b&&"object"==typeof b&&(c=b.internal,e=b.callback,d=!b.noSnapshot);!c&&d&&this.fire("saveSnapshot");if(e||!c)this.once("dataReady",function(a){!c&&
+d&&this.fire("saveSnapshot");e&&e.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=null==a||a;this.readOnly!=a&&(this.readOnly=a,this.keystrokeHandler.blockedKeystrokes[8]=+a,this.editable().setReadOnly(a),this.fire("readOnly"))},insertHtml:function(a,b,c){this.fire("insertHtml",{dataValue:a,mode:b,range:c})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",
+a)},getSelectedHtml:function(a){var b=this.editable(),c=this.getSelection(),c=c&&c.getRanges();if(!b||!c||0===c.length)return null;b=A(c,b);return a?b.getHtml():b},extractSelectedHtml:function(a,b){var c=this.editable(),d=this.getSelection().getRanges(),e=new CKEDITOR.dom.documentFragment,f;if(!c||0===d.length)return null;for(f=0;f<d.length;f++)e.append(c.extractHtmlFromRange(d[f],b));b||this.getSelection().selectRanges([d[0]]);return a?e.getHtml():e},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return"ready"==
+this.status&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return w.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,e=b.length;e--;)c=b[e],d=0,CKEDITOR.tools.isArray(c)&&(d=c[1],c=c[0]),d?a[c]=d:delete a[c]},getCommandKeystroke:function(a){if(a="string"===typeof a?this.getCommand(a):a){var b=CKEDITOR.tools.object.findKey(this.commands,
+a),c=this.keystrokeHandler.keystrokes,d;if(a.fakeKeystroke)return a.fakeKeystroke;for(d in c)if(c.hasOwnProperty(d)&&c[d]==b)return d}return null},addFeature:function(a){return this.filter.addFeature(a)},setActiveFilter:function(a){a||(a=this.filter);this.activeFilter!==a&&(this.activeFilter=a,this.fire("activeFilterChange"),a===this.filter?this.setActiveEnterMode(null,null):this.setActiveEnterMode(a.getAllowedEnterMode(this.enterMode),a.getAllowedEnterMode(this.shiftEnterMode,!0)))},setActiveEnterMode:function(a,
+b){a=a?this.blockless?CKEDITOR.ENTER_BR:a:this.enterMode;b=b?this.blockless?CKEDITOR.ENTER_BR:b:this.shiftEnterMode;if(this.activeEnterMode!=a||this.activeShiftEnterMode!=b)this.activeEnterMode=a,this.activeShiftEnterMode=b,this.fire("activeEnterModeChange")},showNotification:function(a){alert(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)--\x3e)|(?:([^\/\s>]+)((?:\s+[\w\-:.]+(?:\s*=\s*?(?:(?:"[^"]*")|(?:'[^']*')|[^\s"'\/>]+))?)*)[\S\s]*?(\/?)>))/g}};
+(function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,d={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var c,e,g=0,h;c=this._.htmlPartsRegex.exec(b);){e=c.index;if(e>g)if(g=b.substring(g,e),h)h.push(g);else this.onText(g);
+g=this._.htmlPartsRegex.lastIndex;if(e=c[1])if(e=e.toLowerCase(),h&&CKEDITOR.dtd.$cdata[e]&&(this.onCDATA(h.join("")),h=null),!h){this.onTagClose(e);continue}if(h)h.push(c[0]);else if(e=c[3]){if(e=e.toLowerCase(),!/="/.test(e)){var k={},n,q=c[4];c=!!c[5];if(q)for(;n=a.exec(q);){var f=n[1].toLowerCase();n=n[2]||n[3]||n[4]||"";k[f]=!n&&d[f]?f:CKEDITOR.tools.htmlDecodeAttr(n)}this.onTagOpen(e,k,c);!h&&CKEDITOR.dtd.$cdata[e]&&(h=[])}}else if(e=c[2])this.onComment(e)}if(b.length>g)this.onText(b.substring(g,
 b.length))}}})();
 CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(a){this._.output.push("\x3c",a)},openTagClose:function(a,d){d?this._.output.push(" /\x3e"):this._.output.push("\x3e")},attribute:function(a,d){"string"==typeof d&&(d=CKEDITOR.tools.htmlEncodeAttr(d));this._.output.push(" ",a,'\x3d"',d,'"')},closeTag:function(a){this._.output.push("\x3c/",a,"\x3e")},text:function(a){this._.output.push(a)},comment:function(a){this._.output.push("\x3c!--",a,
 "--\x3e")},write:function(a){this._.output.push(a)},reset:function(){this._.output=[];this._.indent=!1},getHtml:function(a){var d=this._.output.join("");a&&this.reset();return d}}});"use strict";
@@ -269,225 +290,235 @@ CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlPar
 (function(){CKEDITOR.htmlParser.text=function(a){this.value=a;this._={isBlockLike:!1}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a,d){if(!(this.value=a.onText(d,this.value,this)))return this.remove(),!1},writeHtml:function(a,d){d&&this.filter(d);a.text(this.value)}})})();"use strict";
 (function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:!0,hasInlineStarted:!1}};
 (function(){function a(a){return a.attributes["data-cke-survive"]?!1:"a"==a.name&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var d=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),b={ol:1,ul:1},c=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1}),e={ul:"li",ol:"li",dl:"dd",table:"tbody",tbody:"tr",thead:"tr",tfoot:"tr",tr:"td"};CKEDITOR.htmlParser.fragment.fromHtml=
-function(g,l,k){function n(a){var b;if(0<y.length)for(var c=0;c<y.length;c++){var d=y[c],h=d.name,e=CKEDITOR.dtd[h],g=t.name&&CKEDITOR.dtd[t.name];g&&!g[h]||a&&e&&!e[a]&&CKEDITOR.dtd[a]?h==t.name&&(x(t,t.parent,1),c--):(b||(w(),b=1),d=d.clone(),d.parent=t,t=d,y.splice(c,1),c--)}}function w(){for(;F.length;)x(F.shift(),t)}function f(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=a.children.length,c=a.children[b-1],d;c&&c.type==CKEDITOR.NODE_TEXT&&((d=CKEDITOR.tools.rtrim(c.value))?
-c.value=d:a.children.length=b-1)}}function x(b,c,d){c=c||t||q;var e=t;void 0===b.previous&&(A(c,b)&&(t=c,B.onTagOpen(k,{}),b.returnPoint=c=t),f(b),a(b)&&!b.children.length||c.add(b),"pre"==b.name&&(h=!1),"textarea"==b.name&&(z=!1));b.returnPoint?(t=b.returnPoint,delete b.returnPoint):t=d?c:e}function A(a,b){if((a==q||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&
-!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function u(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var B=new CKEDITOR.htmlParser,q=l instanceof CKEDITOR.htmlParser.element?l:"string"==typeof l?new CKEDITOR.htmlParser.element(l):new CKEDITOR.htmlParser.fragment,y=[],F=[],t=q,z="textarea"==q.name,h="pre"==q.name;B.onTagOpen=function(e,m,g,f){m=new CKEDITOR.htmlParser.element(e,m);m.isUnknown&&g&&(m.isEmpty=!0);m.isOptionalClose=f;
-if(a(m))y.push(m);else{if("pre"==e)h=!0;else{if("br"==e&&h){t.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==e&&(z=!0)}if("br"==e)F.push(m);else{for(;!(f=(g=t.name)?CKEDITOR.dtd[g]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c,m.isUnknown||t.isUnknown||f[e]);)if(t.isOptionalClose)B.onTagClose(g);else if(e in b&&g in b)g=t.children,(g=g[g.length-1])&&"li"==g.name||x(g=new CKEDITOR.htmlParser.element("li"),t),!m.returnPoint&&(m.returnPoint=t),t=g;else if(e in CKEDITOR.dtd.$listItem&&
-!u(e,g))B.onTagOpen("li"==e?"ul":"dl",{},0,1);else if(g in d&&!u(e,g))!m.returnPoint&&(m.returnPoint=t),t=t.parent;else if(g in CKEDITOR.dtd.$inline&&y.unshift(t),t.parent)x(t,t.parent,1);else{m.isOrphan=1;break}n(e);w();m.parent=t;m.isEmpty?x(m):t=m}}};B.onTagClose=function(a){for(var b=y.length-1;0<=b;b--)if(a==y[b].name){y.splice(b,1);return}for(var c=[],d=[],h=t;h!=q&&h.name!=a;)h._.isBlockLike||d.unshift(h),c.push(h),h=h.returnPoint||h.parent;if(h!=q){for(b=0;b<c.length;b++){var e=c[b];x(e,e.parent)}t=
-h;h._.isBlockLike&&w();x(h,h.parent);h==t&&(t=t.parent);y=y.concat(d)}"body"==a&&(k=!1)};B.onText=function(a){if(!(t._.hasInlineStarted&&!F.length||h||z)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var b=t.name,g=b?CKEDITOR.dtd[b]||(t._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c;if(!z&&!g["#"]&&b in d)B.onTagOpen(e[b]||""),B.onText(a);else{w();n();h||z||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(A(t,a))this.onTagOpen(k,{},0,1);t.add(a)}};B.onCDATA=
-function(a){t.add(new CKEDITOR.htmlParser.cdata(a))};B.onComment=function(a){w();n();t.add(new CKEDITOR.htmlParser.comment(a))};B.parse(g);for(w();t!=q;)x(t,t.parent,1);f(q);return q};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=0<b?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length)){this.children.pop();this.add(a);return}c.next=
+function(g,h,k){function n(a){var b;if(0<m.length)for(var c=0;c<m.length;c++){var d=m[c],e=d.name,f=CKEDITOR.dtd[e],l=z.name&&CKEDITOR.dtd[z.name];l&&!l[e]||a&&f&&!f[a]&&CKEDITOR.dtd[a]?e==z.name&&(D(z,z.parent,1),c--):(b||(q(),b=1),d=d.clone(),d.parent=z,z=d,m.splice(c,1),c--)}}function q(){for(;K.length;)D(K.shift(),z)}function f(a){if(a._.isBlockLike&&"pre"!=a.name&&"textarea"!=a.name){var b=a.children.length,c=a.children[b-1],d;c&&c.type==CKEDITOR.NODE_TEXT&&((d=CKEDITOR.tools.rtrim(c.value))?
+c.value=d:a.children.length=b-1)}}function D(b,c,d){c=c||z||x;var e=z;void 0===b.previous&&(w(c,b)&&(z=c,G.onTagOpen(k,{}),b.returnPoint=c=z),f(b),a(b)&&!b.children.length||c.add(b),"pre"==b.name&&(l=!1),"textarea"==b.name&&(I=!1));b.returnPoint?(z=b.returnPoint,delete b.returnPoint):z=d?c:e}function w(a,b){if((a==x||"body"==a.name)&&k&&(!a.name||CKEDITOR.dtd[a.name][k])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&
+!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function A(a,b){return a in CKEDITOR.dtd.$listItem||a in CKEDITOR.dtd.$tableContent?a==b||"dt"==a&&"dd"==b||"dd"==a&&"dt"==b:!1}var G=new CKEDITOR.htmlParser,x=h instanceof CKEDITOR.htmlParser.element?h:"string"==typeof h?new CKEDITOR.htmlParser.element(h):new CKEDITOR.htmlParser.fragment,m=[],K=[],z=x,I="textarea"==x.name,l="pre"==x.name;G.onTagOpen=function(e,f,g,k){f=new CKEDITOR.htmlParser.element(e,f);f.isUnknown&&g&&(f.isEmpty=!0);f.isOptionalClose=k;
+if(a(f))m.push(f);else{if("pre"==e)l=!0;else{if("br"==e&&l){z.add(new CKEDITOR.htmlParser.text("\n"));return}"textarea"==e&&(I=!0)}if("br"==e)K.push(f);else{for(;!(k=(g=z.name)?CKEDITOR.dtd[g]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c,f.isUnknown||z.isUnknown||k[e]);)if(z.isOptionalClose)G.onTagClose(g);else if(e in b&&g in b)g=z.children,(g=g[g.length-1])&&"li"==g.name||D(g=new CKEDITOR.htmlParser.element("li"),z),!f.returnPoint&&(f.returnPoint=z),z=g;else if(e in CKEDITOR.dtd.$listItem&&
+!A(e,g))G.onTagOpen("li"==e?"ul":"dl",{},0,1);else if(g in d&&!A(e,g))!f.returnPoint&&(f.returnPoint=z),z=z.parent;else if(g in CKEDITOR.dtd.$inline&&m.unshift(z),z.parent)D(z,z.parent,1);else{f.isOrphan=1;break}n(e);q();f.parent=z;f.isEmpty?D(f):z=f}}};G.onTagClose=function(a){for(var b=m.length-1;0<=b;b--)if(a==m[b].name){m.splice(b,1);return}for(var c=[],d=[],e=z;e!=x&&e.name!=a;)e._.isBlockLike||d.unshift(e),c.push(e),e=e.returnPoint||e.parent;if(e!=x){for(b=0;b<c.length;b++){var f=c[b];D(f,f.parent)}z=
+e;e._.isBlockLike&&q();D(e,e.parent);e==z&&(z=z.parent);m=m.concat(d)}"body"==a&&(k=!1)};G.onText=function(a){if(!(z._.hasInlineStarted&&!K.length||l||I)&&(a=CKEDITOR.tools.ltrim(a),0===a.length))return;var b=z.name,f=b?CKEDITOR.dtd[b]||(z._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):c;if(!I&&!f["#"]&&b in d)G.onTagOpen(e[b]||""),G.onText(a);else{q();n();l||I||(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(w(z,a))this.onTagOpen(k,{},0,1);z.add(a)}};G.onCDATA=
+function(a){z.add(new CKEDITOR.htmlParser.cdata(a))};G.onComment=function(a){q();n();z.add(new CKEDITOR.htmlParser.comment(a))};G.parse(g);for(q();z!=x;)D(z,z.parent,1);f(x);return x};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=0<b?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT&&(c.value=CKEDITOR.tools.rtrim(c.value),0===c.value.length)){this.children.pop();this.add(a);return}c.next=
 a}a.previous=c;a.parent=this;this.children.splice(b,0,a);this._.hasInlineStarted||(this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike)},filter:function(a,b){b=this.getFilterContext(b);a.onRoot(b,this);this.filterChildren(a,!1,b)},filterChildren:function(a,b,c){if(this.childrenFilteredBy!=a.id){c=this.getFilterContext(c);if(b&&!this.parent)a.onRoot(c,this);this.childrenFilteredBy=a.id;for(b=0;b<this.children.length;b++)!1===this.children[b].filter(a,
 c)&&b--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,b,c){var d=this.getFilterContext();if(c&&!this.parent&&b)b.onRoot(d,this);b&&this.filterChildren(b,!1,d);b=0;c=this.children;for(d=c.length;b<d;b++)c[b].writeHtml(a)},forEach:function(a,b,c){if(!(c||b&&this.type!=b))var d=a(this);if(!1!==d){c=this.children;for(var e=0;e<c.length;e++)d=c[e],d.type==CKEDITOR.NODE_ELEMENT?d.forEach(a,b):b&&d.type!=b||a(d)}},getFilterContext:function(a){return a||
 {}}}})();"use strict";
-(function(){function a(){this.rules=[]}function d(b,c,d,g){var l,k;for(l in c)(k=b[l])||(k=b[l]=new a),k.add(c[l],d,g)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(b){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;b&&this.addRules(b,10)},proto:{addRules:function(a,c){var e;"number"==typeof c?e=c:c&&"priority"in c&&(e=
+(function(){function a(){this.rules=[]}function d(b,c,d,g){var h,k;for(h in c)(k=b[h])||(k=b[h]=new a),k.add(c[h],d,g)}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(b){this.id=CKEDITOR.tools.getNextNumber();this.elementNameRules=new a;this.attributeNameRules=new a;this.elementsRules={};this.attributesRules={};this.textRules=new a;this.commentRules=new a;this.rootRules=new a;b&&this.addRules(b,10)},proto:{addRules:function(a,c){var e;"number"==typeof c?e=c:c&&"priority"in c&&(e=
 c.priority);"number"!=typeof e&&(e=10);"object"!=typeof c&&(c={});a.elementNames&&this.elementNameRules.addMany(a.elementNames,e,c);a.attributeNames&&this.attributeNameRules.addMany(a.attributeNames,e,c);a.elements&&d(this.elementsRules,a.elements,e,c);a.attributes&&d(this.attributesRules,a.attributes,e,c);a.text&&this.textRules.add(a.text,e,c);a.comment&&this.commentRules.add(a.comment,e,c);a.root&&this.rootRules.add(a.root,e,c)},applyTo:function(a){a.filter(this)},onElementName:function(a,c){return this.elementNameRules.execOnName(a,
-c)},onAttributeName:function(a,c){return this.attributeNameRules.execOnName(a,c)},onText:function(a,c,d){return this.textRules.exec(a,c,d)},onComment:function(a,c,d){return this.commentRules.exec(a,c,d)},onRoot:function(a,c){return this.rootRules.exec(a,c)},onElement:function(a,c){for(var d=[this.elementsRules["^"],this.elementsRules[c.name],this.elementsRules.$],g,l=0;3>l;l++)if(g=d[l]){g=g.exec(a,c,this);if(!1===g)return null;if(g&&g!=c)return this.onNode(a,g);if(c.parent&&!c.name)break}return c},
+c)},onAttributeName:function(a,c){return this.attributeNameRules.execOnName(a,c)},onText:function(a,c,d){return this.textRules.exec(a,c,d)},onComment:function(a,c,d){return this.commentRules.exec(a,c,d)},onRoot:function(a,c){return this.rootRules.exec(a,c)},onElement:function(a,c){for(var d=[this.elementsRules["^"],this.elementsRules[c.name],this.elementsRules.$],g,h=0;3>h;h++)if(g=d[h]){g=g.exec(a,c,this);if(!1===g)return null;if(g&&g!=c)return this.onNode(a,g);if(c.parent&&!c.name)break}return c},
 onNode:function(a,c){var d=c.type;return d==CKEDITOR.NODE_ELEMENT?this.onElement(a,c):d==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a,c.value)):d==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a,c.value)):null},onAttribute:function(a,c,d,g){return(d=this.attributesRules[d])?d.exec(a,g,c,this):g}}});CKEDITOR.htmlParser.filterRulesGroup=a;a.prototype={add:function(a,c,d){this.rules.splice(this.findIndex(c),0,{value:a,priority:c,options:d})},addMany:function(a,
-c,d){for(var g=[this.findIndex(c),0],l=0,k=a.length;l<k;l++)g.push({value:a[l],priority:c,options:d});this.rules.splice.apply(this.rules,g)},findIndex:function(a){for(var c=this.rules,d=c.length-1;0<=d&&a<c[d].priority;)d--;return d+1},exec:function(a,c){var d=c instanceof CKEDITOR.htmlParser.node||c instanceof CKEDITOR.htmlParser.fragment,g=Array.prototype.slice.call(arguments,1),l=this.rules,k=l.length,n,w,f,x;for(x=0;x<k;x++)if(d&&(n=c.type,w=c.name),f=l[x],!(a.nonEditable&&!f.options.applyToAll||
-a.nestedEditable&&f.options.excludeNestedEditable)){f=f.value.apply(null,g);if(!1===f||d&&f&&(f.name!=w||f.type!=n))return f;null!=f&&(g[0]=c=f)}return c},execOnName:function(a,c){for(var d=0,g=this.rules,l=g.length,k;c&&d<l;d++)k=g[d],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(c=c.replace(k.value[0],k.value[1]));return c}}})();
-(function(){function a(a,d){function m(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function p(a,d){return function(h){if(h.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var e=[],p=b(h),r,v;if(p)for(f(p,1)&&e.push(p);p;)g(p)&&(r=c(p))&&f(r)&&((v=c(r))&&!g(v)?e.push(r):(m(z).insertAfter(r),r.remove())),p=p.previous;for(p=0;p<e.length;p++)e[p].remove();if(e=!a||!1!==("function"==typeof d?d(h):d))z||CKEDITOR.env.needsBrFiller||
-h.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?z||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||h.name in CKEDITOR.dtd.tr||h.name in CKEDITOR.dtd.$listItem)?(e=b(h),e=!e||"form"==h.name&&"input"==e.name):e=!1:e=!1;e&&h.add(m(a))}}}function f(a,b){if((!z||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var c;return a.type==CKEDITOR.NODE_TEXT&&(c=a.value.match(y))&&(c.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,c.index))).insertBefore(a),
-a.value=c[0]),!CKEDITOR.env.needsBrFiller&&z&&(!b||a.parent.name in v)||!z&&((c=a.previous)&&"br"==c.name||!c||g(c)))?!0:!1}var r={elements:{}},z="html"==d,v=CKEDITOR.tools.extend({},h),C;for(C in v)"#"in t[C]||delete v[C];for(C in v)r.elements[C]=p(z,a.config.fillEmptyBlocks);r.root=p(z,!1);r.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d=b.attributes;if("data-cke-bogus"in d||"data-cke-eol"in d)delete d["data-cke-bogus"];else{for(d=b.next;d&&e(d);)d=
-d.next;var h=c(b);!d&&g(b.parent)?l(b.parent,m(a)):g(d)&&h&&!g(h)&&m(a).insertBefore(d)}}}}(z);return r}function d(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function c(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function g(a){return a&&
-(a.type==CKEDITOR.NODE_ELEMENT&&a.name in h||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function l(a,b){var c=a.children[a.children.length-1];a.children.push(b);b.parent=a;c&&(c.next=b,b.previous=c)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function w(a){return a.replace(G,
-function(a,b,c){return"\x3c"+b+c.replace(H,function(a,b){return K.test(b)&&-1==c.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function f(a,b){return a.replace(b,function(a,b,c){0===a.indexOf("\x3ctextarea")&&(a=b+u(c).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function x(a){return a.replace(Q,function(a,b){return decodeURIComponent(b)})}function A(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
-function(a){return"\x3c!--"+F+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function u(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function B(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function q(a,b){var c=[],d=b.config.protectedSource,h=b._.dataStore||(b._.dataStore=
-{id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(c.push(a)-1)+"--\x3e"});for(var p=0;p<d.length;p++)a=a.replace(d[p],function(a){a=a.replace(e,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(c.push(a)-1)+"--\x3e"});a=a.replace(e,function(a,b,d){return"\x3c!--"+F+(b?"{C}":
-"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){h[h.id]=decodeURIComponent(b);return"{cke_protected_"+h.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,h){return"\x3c"+c+d+"\x3e"+B(u(h),b)+"\x3c/"+c+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
-h,e=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=h=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(p);c.addRules(m,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});h.addRules(C);h.addRules(r,{applyToAll:!0});h.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,h,c=q(c,b),c=f(c,M),c=w(c),c=f(c,R),c=c.replace(v,"$1cke:$2"),c=c.replace(I,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
-c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");h=a.context||b.editable().getName();var e;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==h&&(h="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",e=1);h=b.document.createElement(h);h.setHtml("a"+c);c=h.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");e&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(D,"$1$2");c=x(c);c=u(c);h=!1===a.fixForBody?!1:
-d(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,h);h&&(e=c,!e.children.length&&CKEDITOR.dtd[e.name][h]&&(h=new CKEDITOR.htmlParser.element(h),e.add(h)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(e.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue,
-c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(!0);a.dataValue=A(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(e.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
-!1,!0)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=e.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(!0);c=u(c);c=B(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var h=this.editor,e,p,m,g;b&&"object"==typeof b?(e=b.context,c=b.fixForBody,d=b.dontFilter,p=b.filter,m=b.enterMode,g=b.protectedWhitespaces):e=b;e||null===e||(e=h.editable().getName());return h.fire("toHtml",{dataValue:a,context:e,fixForBody:c,dontFilter:d,
-filter:p||h.filter,enterMode:m||h.enterMode,protectedWhitespaces:g}).dataValue},toDataFormat:function(a,b){var c,d,h;b&&(c=b.context,d=b.filter,h=b.enterMode);c||null===c||(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:h||this.editor.enterMode}).dataValue}};var y=/(?:&nbsp;|\xa0)$/,F="{cke_protected}",t=CKEDITOR.dtd,z="caption colgroup col thead tfoot tbody".split(" "),h=CKEDITOR.tools.extend({},t.$blockLimit,
-t.$block),p={elements:{input:k,textarea:k}},m={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},C={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},r={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,
-""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c=["name","href","src"],d,h=0;h<c.length;h++)d="data-cke-saved-"+c[h],d in b&&delete b[c[h]]}return a},table:function(a){a.children.slice(0).sort(function(a,b){var c,d;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(c=CKEDITOR.tools.indexOf(z,a.name),d=CKEDITOR.tools.indexOf(z,b.name));-1<c&&-1<d&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1);return c>d?
-1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&l(a,b=new CKEDITOR.htmlParser.text);
-b.value=a.attributes["data-cke-title"]||""},input:n,textarea:n},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(r.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})});var G=/<(a|area|img|input|source)\b([^>]*)>/gi,H=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,K=/^(href|src|name)$/i,R=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
-M=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,Q=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,v=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,D=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,I=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict";
-CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!!(CKEDITOR.dtd.$nonBodyContent[b]||CKEDITOR.dtd.$block[b]||CKEDITOR.dtd.$listItem[b]||CKEDITOR.dtd.$tableContent[b]||CKEDITOR.dtd.$nonEditable[b]||"br"==b);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}};
+c,d){for(var g=[this.findIndex(c),0],h=0,k=a.length;h<k;h++)g.push({value:a[h],priority:c,options:d});this.rules.splice.apply(this.rules,g)},findIndex:function(a){for(var c=this.rules,d=c.length-1;0<=d&&a<c[d].priority;)d--;return d+1},exec:function(a,c){var d=c instanceof CKEDITOR.htmlParser.node||c instanceof CKEDITOR.htmlParser.fragment,g=Array.prototype.slice.call(arguments,1),h=this.rules,k=h.length,n,q,f,D;for(D=0;D<k;D++)if(d&&(n=c.type,q=c.name),f=h[D],!(a.nonEditable&&!f.options.applyToAll||
+a.nestedEditable&&f.options.excludeNestedEditable)){f=f.value.apply(null,g);if(!1===f||d&&f&&(f.name!=q||f.type!=n))return f;null!=f&&(g[0]=c=f)}return c},execOnName:function(a,c){for(var d=0,g=this.rules,h=g.length,k;c&&d<h;d++)k=g[d],a.nonEditable&&!k.options.applyToAll||a.nestedEditable&&k.options.excludeNestedEditable||(c=c.replace(k.value[0],k.value[1]));return c}}})();
+(function(){function a(a,d){function f(a){return a||CKEDITOR.env.needsNbspFiller?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function v(a,d){return function(e){if(e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var t=[],l=b(e),v,p;if(l)for(u(l,1)&&t.push(l);l;)g(l)&&(v=c(l))&&u(v)&&((p=c(v))&&!g(p)?t.push(v):(f(y).insertAfter(v),v.remove())),l=l.previous;for(l=0;l<t.length;l++)t[l].remove();if(t=!a||!1!==("function"==typeof d?d(e):d))y||CKEDITOR.env.needsBrFiller||
+e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT?y||CKEDITOR.env.needsBrFiller||!(7<document.documentMode||e.name in CKEDITOR.dtd.tr||e.name in CKEDITOR.dtd.$listItem)?(t=b(e),t=!t||"form"==e.name&&"input"==t.name):t=!1:t=!1;t&&e.add(f(a))}}}function u(a,b){if((!y||CKEDITOR.env.needsBrFiller)&&a.type==CKEDITOR.NODE_ELEMENT&&"br"==a.name&&!a.attributes["data-cke-eol"])return!0;var c;return a.type==CKEDITOR.NODE_TEXT&&(c=a.value.match(m))&&(c.index&&((new CKEDITOR.htmlParser.text(a.value.substring(0,c.index))).insertBefore(a),
+a.value=c[0]),!CKEDITOR.env.needsBrFiller&&y&&(!b||a.parent.name in B)||!y&&((c=a.previous)&&"br"==c.name||!c||g(c)))?!0:!1}var p={elements:{}},y="html"==d,B=CKEDITOR.tools.extend({},l),C;for(C in B)"#"in z[C]||delete B[C];for(C in B)p.elements[C]=v(y,a.config.fillEmptyBlocks);p.root=v(y,!1);p.elements.br=function(a){return function(b){if(b.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var d=b.attributes;if("data-cke-bogus"in d||"data-cke-eol"in d)delete d["data-cke-bogus"];else{for(d=b.next;d&&e(d);)d=
+d.next;var t=c(b);!d&&g(b.parent)?h(b.parent,f(a)):g(d)&&t&&!g(t)&&f(a).insertBefore(d)}}}}(y);return p}function d(a,b){return a!=CKEDITOR.ENTER_BR&&!1!==b?a==CKEDITOR.ENTER_DIV?"div":"p":!1}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function c(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function g(a){return a&&
+(a.type==CKEDITOR.NODE_ELEMENT&&a.name in l||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function h(a,b){var c=a.children[a.children.length-1];a.children.push(b);b.parent=a;c&&(c.next=b,b.previous=c)}function k(a){a=a.attributes;"false"!=a.contenteditable&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function q(a){return a.replace(u,
+function(a,b,c){return"\x3c"+b+c.replace(y,function(a,b){return v.test(b)&&-1==c.indexOf("data-cke-saved-"+b)?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+"\x3e"})}function f(a,b){return a.replace(b,function(a,b,c){0===a.indexOf("\x3ctextarea")&&(a=b+A(c).replace(/</g,"\x26lt;").replace(/>/g,"\x26gt;")+"\x3c/textarea\x3e");return"\x3ccke:encoded\x3e"+encodeURIComponent(a)+"\x3c/cke:encoded\x3e"})}function D(a){return a.replace(V,function(a,b){return decodeURIComponent(b)})}function w(a){return a.replace(/\x3c!--(?!{cke_protected})[\s\S]+?--\x3e/g,
+function(a){return"\x3c!--"+K+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\x3e"})}function A(a){return a.replace(/\x3c!--\{cke_protected\}\{C\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)})}function G(a,b){var c=b._.dataStore;return a.replace(/\x3c!--\{cke_protected\}([\s\S]+?)--\x3e/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function x(a,b){var c=[],d=b.config.protectedSource,e=b._.dataStore||(b._.dataStore=
+{id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\x3e/g,d=[/<script[\s\S]*?(<\/script>|$)/gi,/<noscript[\s\S]*?<\/noscript>/gi,/<meta[\s\S]*?\/?>/gi].concat(d);a=a.replace(/\x3c!--[\s\S]*?--\x3e/g,function(a){return"\x3c!--{cke_tempcomment}"+(c.push(a)-1)+"--\x3e"});for(var l=0;l<d.length;l++)a=a.replace(d[l],function(a){a=a.replace(f,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"\x3c!--{cke_temp}"+(c.push(a)-1)+"--\x3e"});a=a.replace(f,function(a,b,d){return"\x3c!--"+K+(b?"{C}":
+"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\x3e"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g,function(a){return a.replace(/\x3c!--\{cke_protected\}([^>]*)--\x3e/g,function(a,b){e[e.id]=decodeURIComponent(b);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,c,d,e){return"\x3c"+c+d+"\x3e"+G(A(e),b)+"\x3c/"+c+"\x3e"})}CKEDITOR.htmlDataProcessor=function(b){var c,
+e,l=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(r);c.addRules(J,{applyToAll:!0});c.addRules(a(b,"data"),{applyToAll:!0});e.addRules(H);e.addRules(E,{applyToAll:!0});e.addRules(a(b,"html"),{applyToAll:!0});b.on("toHtml",function(a){a=a.data;var c=a.dataValue,e,c=x(c,b),c=f(c,L),c=q(c),c=f(c,B),c=c.replace(O,"$1cke:$2"),c=c.replace(C,"\x3ccke:$1$2\x3e\x3c/cke:$1\x3e"),
+c=c.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),c=c.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi,"$1data-cke-"+CKEDITOR.rnd+"-$2");e=a.context||b.editable().getName();var l;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&"pre"==e&&(e="div",c="\x3cpre\x3e"+c+"\x3c/pre\x3e",l=1);e=b.document.createElement(e);e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(new RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");l&&(c=c.replace(/^<pre>|<\/pre>$/gi,""));c=c.replace(p,"$1$2");c=D(c);c=A(c);e=!1===a.fixForBody?!1:
+d(a.enterMode,b.config.autoParagraph);c=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,e);e&&(l=c,!l.children.length&&CKEDITOR.dtd[l.name][e]&&(e=new CKEDITOR.htmlParser.element(e),l.add(e)));a.dataValue=c},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,!0,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(l.dataFilter,!0)},null,null,10);b.on("toHtml",function(a){a=a.data;var b=a.dataValue,
+c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(!0);a.dataValue=w(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^<br *\/?>/i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(l.htmlFilter,!0)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,
+!1,!0)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,d=l.writer;d.reset();c.writeChildrenHtml(d);c=d.getHtml(!0);c=A(c);c=G(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,d){var e=this.editor,f,l,v,g;b&&"object"==typeof b?(f=b.context,c=b.fixForBody,d=b.dontFilter,l=b.filter,v=b.enterMode,g=b.protectedWhitespaces):f=b;f||null===f||(f=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:f,fixForBody:c,dontFilter:d,
+filter:l||e.filter,enterMode:v||e.enterMode,protectedWhitespaces:g}).dataValue},toDataFormat:function(a,b){var c,d,e;b&&(c=b.context,d=b.filter,e=b.enterMode);c||null===c||(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:d||this.editor.filter,context:c,enterMode:e||this.editor.enterMode}).dataValue}};var m=/(?:&nbsp;|\xa0)$/,K="{cke_protected}",z=CKEDITOR.dtd,I="caption colgroup col thead tfoot tbody".split(" "),l=CKEDITOR.tools.extend({},z.$blockLimit,
+z.$block),r={elements:{input:k,textarea:k}},J={attributeNames:[[/^on/,"data-cke-pa-on"],[/^srcdoc/,"data-cke-pa-srcdoc"],[/^data-cke-expando$/,""]],elements:{iframe:function(a){if(a.attributes&&a.attributes.src){var b=a.attributes.src.toLowerCase().replace(/[^a-z]/gi,"");if(0===b.indexOf("javascript")||0===b.indexOf("data"))a.attributes["data-cke-pa-src"]=a.attributes.src,delete a.attributes.src}}}},H={elements:{embed:function(a){var b=a.parent;if(b&&"object"==b.name){var c=b.attributes.width,b=b.attributes.height;
+c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},a:function(a){var b=a.attributes;if(!(a.children.length||b.name||b.id||a.attributes["data-cke-saved-name"]))return!1}}},E={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return!1;for(var c=["name","href","src"],d,e=0;e<c.length;e++)d="data-cke-saved-"+c[e],d in b&&delete b[c[e]]}return a},
+table:function(a){a.children.slice(0).sort(function(a,b){var c,d;a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type&&(c=CKEDITOR.tools.indexOf(I,a.name),d=CKEDITOR.tools.indexOf(I,b.name));-1<c&&-1<d&&c!=d||(c=a.parent?a.getIndex():-1,d=b.parent?b.getIndex():-1);return c>d?1:-1})},param:function(a){a.children=[];a.isEmpty=!0;return a},span:function(a){"Apple-style-span"==a.attributes["class"]&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;
+delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));a.attributes.type||(a.attributes.type="text/css")},title:function(a){var b=a.children[0];!b&&h(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:n,textarea:n},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||!1}}};CKEDITOR.env.ie&&(E.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,
+function(a){return a.toLowerCase()})});var u=/<(a|area|img|input|source)\b([^>]*)>/gi,y=/([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,v=/^(href|src|name)$/i,B=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,L=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,V=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,O=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,p=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,C=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();
+"use strict";CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!!(CKEDITOR.dtd.$nonBodyContent[b]||CKEDITOR.dtd.$block[b]||CKEDITOR.dtd.$listItem[b]||CKEDITOR.dtd.$tableContent[b]||CKEDITOR.dtd.$nonEditable[b]||"br"==b);this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}};
 CKEDITOR.htmlParser.cssStyle=function(a){var d={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){"font-family"==c&&(e=e.replace(/["']/g,""));d[c.toLowerCase()]=e});return{rules:d,populate:function(a){var c=this.toString();c&&(a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c)},toString:function(){var a=[],c;
 for(c in d)d[c]&&a.push(c,":",d[c],";");return a.join("")}}};
-(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,l,k;b=d.getFilterContext(b);if(b.off)return!0;
-if(!d.parent)a.onRoot(b,d);for(;;){l=d.name;if(!(k=a.onElementName(b,l)))return this.remove(),!1;d.name=k;if(!(d=a.onElement(b,d)))return this.remove(),!1;if(d!==this)return this.replaceWith(d),!1;if(d.name==l)break;if(d.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(d),!1;if(!d.name)return this.replaceWithChildren(),!1}l=d.attributes;var n,w;for(n in l){for(k=l[n];;)if(w=a.onAttributeName(b,n))if(w!=n)delete l[n],n=w;else break;else{delete l[n];break}w&&(!1===(k=a.onAttribute(b,d,w,k))?delete l[w]:
-l[w]=k)}d.isEmpty||this.filterChildren(a,!1,b);return!0},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var g=this.name,l=[],k=this.attributes,n,w;a.openTag(g,k);for(n in k)l.push([n,k[n]]);a.sortAttributes&&l.sort(d);n=0;for(w=l.length;n<w;n++)k=l[n],a.attribute(k[0],k[1]);a.openTagClose(g,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(g)},writeChildrenHtml:b.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);
+(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&("string"==typeof a?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return a<b?-1:a>b?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,h,k;b=d.getFilterContext(b);if(b.off)return!0;
+if(!d.parent)a.onRoot(b,d);for(;;){h=d.name;if(!(k=a.onElementName(b,h)))return this.remove(),!1;d.name=k;if(!(d=a.onElement(b,d)))return this.remove(),!1;if(d!==this)return this.replaceWith(d),!1;if(d.name==h)break;if(d.type!=CKEDITOR.NODE_ELEMENT)return this.replaceWith(d),!1;if(!d.name)return this.replaceWithChildren(),!1}h=d.attributes;var n,q;for(n in h){for(k=h[n];;)if(q=a.onAttributeName(b,n))if(q!=n)delete h[n],n=q;else break;else{delete h[n];break}q&&(!1===(k=a.onAttribute(b,d,q,k))?delete h[q]:
+h[q]=k)}d.isEmpty||this.filterChildren(a,!1,b);return!0},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var g=this.name,h=[],k=this.attributes,n,q;a.openTag(g,k);for(n in k)h.push([n,k[n]]);a.sortAttributes&&h.sort(d);n=0;for(q=h.length;n<q;n++)k=h[n],a.attribute(k[0],k[1]);a.openTagClose(g,this.isEmpty);this.writeChildrenHtml(a);this.isEmpty||a.closeTag(g)},writeChildrenHtml:b.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,b=a.length;b;)a[--b].insertAfter(this);
 this.remove()},forEach:b.forEach,getFirst:function(b){if(!b)return this.children.length?this.children[0]:null;"function"!=typeof b&&(b=a(b));for(var d=0,g=this.children.length;d<g;++d)if(b(this.children[d]))return this.children[d];return null},getHtml:function(){var a=new CKEDITOR.htmlParser.basicWriter;this.writeChildrenHtml(a);return a.getHtml()},setHtml:function(a){a=this.children=CKEDITOR.htmlParser.fragment.fromHtml(a).children;for(var b=0,d=a.length;b<d;++b)a[b].parent=this},getOuterHtml:function(){var a=
-new CKEDITOR.htmlParser.basicWriter;this.writeHtml(a);return a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),d=this.clone(),l=0;l<b.length;++l)b[l].parent=d;d.children=b;b[0]&&(b[0].previous=null);0<a&&(this.children[a-1].next=null);this.parent.add(d,this.getIndex()+1);return d},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=
-CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?(new RegExp("(?:^|\\s)"+a+"(?\x3d\\s|$)")).test(b):!1},getFilterContext:function(a){var b=[];a||(a={off:!1,nonEditable:!1,nestedEditable:!1});a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0);a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&
-"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0);if(b.length){a=CKEDITOR.tools.copy(a);for(var d=0;d<b.length;d+=2)a[b[d]]=b[d+1]}return a}},!0)})();
-(function(){var a={},d=/{([^}]+)}/g,b=/([\\'])/g,c=/\n/g,e=/\r/g;CKEDITOR.template=function(g){if(a[g])this.output=a[g];else{var l=g.replace(b,"\\$1").replace(c,"\\n").replace(e,"\\r").replace(d,function(a,b){return"',data['"+b+"']\x3d\x3dundefined?'{"+b+"}':data['"+b+"'],'"});this.output=a[g]=Function("data","buffer","return buffer?buffer.push('"+l+"'):['"+l+"'].join('');")}}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
+new CKEDITOR.htmlParser.basicWriter;this.writeHtml(a);return a.getHtml()},split:function(a){for(var b=this.children.splice(a,this.children.length-a),d=this.clone(),h=0;h<b.length;++h)b[h].parent=d;d.children=b;b[0]&&(b[0].previous=null);0<a&&(this.children[a-1].next=null);this.parent.add(d,this.getIndex()+1);return d},find:function(a,b){void 0===b&&(b=!1);var d=[],h;for(h=0;h<this.children.length;h++){var k=this.children[h];"function"==typeof a&&a(k)?d.push(k):"string"==typeof a&&k.name===a&&d.push(k);
+b&&k.find&&(d=d.concat(k.find(a,b)))}return d},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+a}},removeClass:function(a){var b=this.attributes["class"];b&&((b=CKEDITOR.tools.trim(b.replace(new RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"])},hasClass:function(a){var b=this.attributes["class"];return b?(new RegExp("(?:^|\\s)"+a+"(?\x3d\\s|$)")).test(b):!1},getFilterContext:function(a){var b=
+[];a||(a={off:!1,nonEditable:!1,nestedEditable:!1});a.off||"off"!=this.attributes["data-cke-processor"]||b.push("off",!0);a.nonEditable||"false"!=this.attributes.contenteditable?a.nonEditable&&!a.nestedEditable&&"true"==this.attributes.contenteditable&&b.push("nestedEditable",!0):b.push("nonEditable",!0);if(b.length){a=CKEDITOR.tools.copy(a);for(var d=0;d<b.length;d+=2)a[b[d]]=b[d+1]}return a}},!0)})();
+(function(){var a=/{([^}]+)}/g;CKEDITOR.template=function(a){this.source=String(a)};CKEDITOR.template.prototype.output=function(d,b){var c=this.source.replace(a,function(a,b){return void 0!==d[b]?d[b]:a});return b?b.push(c):c}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
 CKEDITOR.add=function(a){CKEDITOR.instances[a.name]=a;a.on("focus",function(){CKEDITOR.currentInstance!=a&&(CKEDITOR.currentInstance=a,CKEDITOR.fire("currentInstance"))});a.on("blur",function(){CKEDITOR.currentInstance==a&&(CKEDITOR.currentInstance=null,CKEDITOR.fire("currentInstance"))});CKEDITOR.fire("instance",null,a)};CKEDITOR.remove=function(a){delete CKEDITOR.instances[a.name]};
 (function(){var a={};CKEDITOR.addTemplate=function(d,b){var c=a[d];if(c)return c;c={name:d,source:b};CKEDITOR.fire("template",c);return a[d]=new CKEDITOR.template(c.source)};CKEDITOR.getTemplate=function(d){return a[d]}})();(function(){var a=[];CKEDITOR.addCss=function(d){a.push(d)};CKEDITOR.getCss=function(){return a.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2;
 CKEDITOR.TRISTATE_DISABLED=0;
 (function(){CKEDITOR.inline=function(a,d){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var b=new CKEDITOR.editor(d,a,CKEDITOR.ELEMENT_MODE_INLINE),c=a.is("textarea")?a:null;c?(b.setData(c.getValue(),null,!0),a=CKEDITOR.dom.element.createFromHtml('\x3cdiv contenteditable\x3d"'+!!b.readOnly+'" class\x3d"cke_textarea_inline"\x3e'+c.getValue()+"\x3c/div\x3e",CKEDITOR.document),
 a.insertAfter(c),c.hide(),c.$.form&&b._attachToForm()):b.setData(a.getHtml(),null,!0);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.ui.contentsElement=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){c&&(b.container.clearCustomData(),b.container.remove(),c.show());b.element.clearCustomData();delete b.element});
 return b};CKEDITOR.inlineAll=function(){var a,d,b;for(b in CKEDITOR.dtd.$editable)for(var c=CKEDITOR.document.getElementsByTag(b),e=0,g=c.count();e<g;e++)a=c.getItem(e),"true"==a.getAttribute("contenteditable")&&(d={element:a,config:{}},!1!==CKEDITOR.fire("inline",d)&&CKEDITOR.inline(a,d.config))};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";
-(function(){function a(a,e,g,l){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var k=new CKEDITOR.editor(e,a,l);l==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),k._.required=a.hasAttribute("required"),a.removeAttribute("required"));g&&k.setData(g,null,!0);k.on("loaded",function(){b(k);l==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&&
-a.$.form&&k._attachToForm();k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)})});k.on("destroy",d);return k}function d(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove());b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function b(a){var b=a.name,d=a.element,l=a.elementMode,k=
-a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html,w=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'"  dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':"")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),
-b=CKEDITOR.dom.element.createFromHtml(w.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:k?'\x3cspan id\x3d"'+a.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'\x3cspan id\x3d"'+a.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+n+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));l==CKEDITOR.ELEMENT_MODE_REPLACE?
-(d.hide(),b.insertAfter(d)):d.append(b);a.container=b;a.ui.contentsElement=a.ui.space("contents");k&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();d=a.config.width;l=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));l&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(l));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,d){return a(b,d,null,CKEDITOR.ELEMENT_MODE_REPLACE)};
-CKEDITOR.appendTo=function(b,d,g){return a(b,d,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var d=null,l=a[b];if(l.name||l.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(l.className))continue}else if("function"==typeof arguments[0]&&(d={},!1===arguments[0](l,d)))continue;this.replace(l,d)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes=
-{}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var d=this,l=this._.modes;if(a!=d.mode&&l&&l[a]){d.fire("beforeSetMode",a);if(d.mode){var k=d.checkDirty(),l=d._.previousModeData,n,w=0;d.fire("beforeModeUnload");d.editable(0);d._.previousMode=d.mode;d._.previousModeData=n=d.getData(1);"source"==d.mode&&l==n&&(d.fire("lockSnapshot",{forceUpdate:!0}),w=1);d.ui.space("contents").setHtml("");d.mode=""}else d._.previousModeData=d.getData(1);this._.modes[a](function(){d.mode=a;void 0!==k&&!k&&
-d.resetDirty();w?d.fire("unlockSnapshot"):"wysiwyg"==a&&d.fire("saveSnapshot");setTimeout(function(){d.fire("mode");b&&b.call(d)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,d,l){var k=this.container,n=this.ui.space("contents"),w=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;l=l?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;l.setSize("width",a,!0);w&&(w.style.width="1%");var f=(l.$.offsetHeight||0)-(n.$.clientHeight||
-0),k=Math.max(b-(d?0:f),0);b=d?b+f:b;n.setStyle("height",k+"px");w&&(w.style.width="100%");this.fire("resize",{outerHeight:b,contentsHeight:k,outerWidth:a||l.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
-(function(){function a(a){var b=a.editor,e=a.data.path,m=e.blockLimit,f=a.data.selection,r=f.getRanges()[0],g;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(f=d(f,e))f.appendBogus(),g=CKEDITOR.env.ie;l(b,e.block,m)&&r.collapsed&&!r.getCommonAncestor().isReadOnly()&&(e=r.clone(),e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),m=new CKEDITOR.dom.walker(e),m.guard=function(a){return!c(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!m.checkForward()||e.checkStartOfBlock()&&e.checkEndOfBlock())&&
-(b=r.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(c))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?:&nbsp;|\xa0)$/)&&b.remove(),g=1,a.cancel());g&&r.select()}function d(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,e=d&&d.getLast(c);if(!(!d||!d.isBlockBoundary()||e&&e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function b(a){var b=a.data.getTarget();b.is("input")&&
-(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function c(a){return f(a)&&x(a)}function e(a,b){return function(c){var d=c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(b.equals(d)||b.contains(d))||a.call(this,c)}}function g(a){function b(a){return function(b,h){h&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(f)&&(d=b);if(!(h||!c(b)||a&&u(b)))return!1}}var d,e=a.getRanges()[0];a=a.root;
-var f={table:1,ul:1,ol:1,dl:1};if(e.startPath().contains(f)){var r=e.clone();r.collapse(1);r.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(r);a.guard=b();a.checkBackward();if(d)return r=e.clone(),r.collapse(),r.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(r),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function l(a,b,c){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(c)&&!b||b&&"true"==b.getAttribute("contenteditable"))}
-function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function n(a){var b=a.editor;b.getSelection().scrollIntoView();setTimeout(function(){b.fire("saveSnapshot")},0)}function w(a,b,c){var d=a.getCommonAncestor(b);for(b=a=c?b:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)b=a;b.remove()}CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||b);this.editor=a;
-this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}try{this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]()}catch(b){if(!CKEDITOR.env.ie)throw b;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,
-b){var c=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=e(b,this),c[0]=a,c[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,c)},attachListener:function(a){!this._.listeners&&(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=
-this._.attrChanges,b,c;for(c in a)a.hasOwnProperty(c)&&(b=a[c],null!==b?this.setAttribute(c,b):this.removeAttribute(c))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||(!b&&(b=[]),b.push(a),this.setCustomData("classes",b),this.addClass(a))},changeAttr:function(a,b){var c=this.getAttribute(a);b!==c&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=c),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),
-"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a,b)},insertHtml:function(a,b,c){var d=this.editor;d.focus();d.fire("saveSnapshot");c||(c=d.getSelection().getRanges()[0]);q(this,b||"html",a,c);c.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,c){q(this,c||"html",a,b);this.editor.fire("afterInsertHtml",
-{intoRange:b})},insertElement:function(a,b){var d=this.editor;d.focus();d.fire("saveSnapshot");var e=d.activeEnterMode,d=d.getSelection(),f=a.getName(),f=CKEDITOR.dtd.$block[f];b||(b=d.getRanges()[0]);this.insertElementIntoRange(a,b)&&(b.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),f&&((f=a.getNext(function(a){return c(a)&&!u(a)}))&&f.type==CKEDITOR.NODE_ELEMENT&&f.is(CKEDITOR.dtd.$block)?f.getDtd()["#"]?b.moveToElementEditStart(f):b.moveToElementEditEnd(a):f||e==CKEDITOR.ENTER_BR||(f=b.fixBlock(!0,
-e==CKEDITOR.ENTER_DIV?"div":"p"),b.moveToElementEditStart(f))));d.selectRanges([b]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return!1;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})&&y(b);var g,l;if(f)for(;(g=b.getCommonAncestor(0,1))&&(l=CKEDITOR.dtd[g.getName()])&&
-(!l||!l[e]);)g.getName()in CKEDITOR.dtd.span?b.splitElement(g):b.checkStartOfBlock()&&b.checkEndOfBlock()?(b.setStartBefore(g),b.collapse(!0),g.remove()):b.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));
-return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),h;a:if(d.anchorNode&&d.anchorNode==c.$)h=!0;else{if(CKEDITOR.env.webkit&&(h=c.getDocument().getActive())&&h.equals(c)&&!d.anchorNode){h=
-!0;break a}h=void 0}h&&(h=new CKEDITOR.dom.range(c),h.moveToElementEditStart(c),b=b.createRange(),b.setStart(h.startContainer.$,h.startOffset),b.collapse(!0),d.removeAllRanges(),d.addRange(b))}function b(){var a=c.getDocument().$,d=a.selection,h=c.getDocument().getActive();"None"==d.type&&h.equals(c)&&(d=new CKEDITOR.dom.range(c),a=a.body.createTextRange(),d.moveToElementEditStart(c),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}
-var c=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus",function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};F.eol.detect(a,this);F.bogus.exclude(a);F.cell.shrink(a);a.fragment=a.range.cloneContents();F.tree.rebuild(a,this);F.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},
-extractHtmlFromRange:function(a,b){var c=t,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var f=this.editor.createRange();f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=f.createBookmark();c.list.detectMerge(d,this);c.table.detectRanges(d,this);c.block.detectMerge(d,this);d.tableContentsRanges?(c.table.deleteRanges(d),
-a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize();c.fixUneditableRangePosition(a);c.list.merge(d,this);c.table.purge(d,this);c.block.merge(d,this);if(b){c=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var d=c.block.getElementsByTag("span"),f=0,g;if(d)for(;g=d.getItem(f++);)if(!x(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,
-CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),A(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(B,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,
-"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",
-function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=
-!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var d=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=
-e&&this.changeAttr("dir",e);var m=CKEDITOR.getCss();m&&(e=d.getHead(),e.getCustomData("stylesheet")||(m=d.appendStyleText(m),m=new CKEDITOR.dom.element(m.ownerNode||m.owningElement),e.setCustomData("stylesheet",m),m.data("cke-temp",1)));e=d.getCustomData("stylesheet_ref")||0;d.setCustomData("stylesheet_ref",e+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");
-b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var l={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey(),d;if(c in l){b=a.getSelection();var h,e=b.getRanges()[0],m=e.startPath(),p,v,k,c=8==c;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(h=b.getSelectedElement())||(h=g(b))?(a.fire("saveSnapshot"),e.moveToPosition(h,CKEDITOR.POSITION_BEFORE_START),h.remove(),e.select(),a.fire("saveSnapshot"),d=1):e.collapsed&&((p=m.block)&&(k=p[c?"getPrevious":
-"getNext"](f))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&e[c?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),e[c?"checkEndOfBlock":"checkStartOfBlock"]()&&p.remove(),e["moveToElementEdit"+(c?"End":"Start")](k),e.select(),a.fire("saveSnapshot"),d=1):m.blockLimit&&m.blockLimit.is("td")&&(v=m.blockLimit.getAscendant("table"))&&e.checkBoundaryOfElement(v,c?CKEDITOR.START:CKEDITOR.END)&&(k=v[c?"getPrevious":"getNext"](f))?(a.fire("saveSnapshot"),e["moveToElementEdit"+(c?"End":"Start")](k),
-e.checkStartOfBlock()&&e.checkEndOfBlock()?k.remove():e.select(),a.fire("saveSnapshot"),d=1):(v=m.contains(["td","th","caption"]))&&e.checkBoundaryOfElement(v,c?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d});a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in l&&!this.getFirst(c)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;
-b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});
-CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(B,""))){var c=a.createRange();c.moveToElementEditStart(b);c.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,
-"key",function(b){if(a.readOnly)return!0;b=b.data.domEvent.getKey();if(b in l){var c=8==b,d=a.getSelection().getRanges()[0];b=d.startPath();if(d.collapsed)a:{var h=b.block;if(h&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(h,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var e=d.startContainer.getChild(d.startOffset-(c?1:0));if(e&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("hr")){a.fire("saveSnapshot");e.remove();b=!0;break a}}d=d.startPath().block;if(!d||
-d&&d.contains(h))b=void 0;else{a.fire("saveSnapshot");var m;(m=(c?d:h).getBogus())&&m.remove();m=a.getSelection();e=m.createBookmarks();(c?h:d).moveChildren(c?d:h,!1);b.lastElement.mergeSiblings();w(h,d,!c);m.selectBookmarks(e);b=!0}}else b=!1}else c=d,m=b.block,d=c.endPath().block,m&&d&&!m.equals(d)?(a.fire("saveSnapshot"),(h=m.getBogus())&&h.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(m,!1),b.lastElement.mergeSiblings(),w(m,d,!0)),c=a.getSelection().getRanges()[0],
-c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=
-a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",
-function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1"),a.setAttribute("contentEditable",!1))});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=
-b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");
-var f=CKEDITOR.dom.walker.whitespaces(!0),x=CKEDITOR.dom.walker.bookmark(!1,!0),A=CKEDITOR.dom.walker.empty(),u=CKEDITOR.dom.walker.bogus(),B=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,q=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,m,f,p,g=[],l=d.range.startContainer;e=d.range.startPath();for(var l=q[l.getName()],r=0,k=c.getChildren(),C=k.count(),G=-1,n=-1,w=0,K=e.contains(q.$list);r<
-C;++r)e=k.getItem(r),a(e)?(f=e.getName(),K&&f in CKEDITOR.dtd.$list?g=g.concat(b(e,d)):(p=!!l[f],"br"!=f||!e.data("cke-eol")||r&&r!=C-1||(w=(m=r?g[r-1].node:k.getItem(r+1))&&(!a(m)||!m.is("br")),m=m&&a(m)&&q.$block[m.getName()]),-1!=G||p||(G=r),p||(n=r),g.push({isElement:1,isLineBreak:w,isBlock:e.isBlockBoundary(),hasBlockSibling:m,node:e,name:f,allowed:p}),m=w=0)):g.push({isElement:0,node:e,allowed:1});-1<G&&(g[G].firstNotAllowed=1);-1<n&&(g[n].lastNotAllowed=1);return g}function d(b,c){var e=[],
-h=b.getChildren(),m=h.count(),f,g=0,l=q[c],r=!b.is(q.$inline)||b.is("br");for(r&&e.push(" ");g<m;g++)f=h.getItem(g),a(f)&&!f.is(l)?e=e.concat(d(f,c)):e.push(f);r&&e.push(" ");return e}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(q.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function g(b,c,d,e){var h=b.clone(),m,f;h.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);(m=(new CKEDITOR.dom.walker(h)).next())&&a(m)&&n[m.getName()]&&
-(f=m.getPrevious())&&a(f)&&!f.getParent().equals(b.startContainer)&&d.contains(f)&&e.contains(m)&&m.isIdentical(f)&&(m.moveChildren(f),m.remove(),g(b,c,d,e))}function G(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var e=c.endContainer.getChild(c.endOffset),h=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]);h&&d(h,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var q=CKEDITOR.dtd,n={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,
-h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},w={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},M=CKEDITOR.tools.extend({},q.$inline);delete M.br;return function(n,v,D,I){var E=n.editor,L=!1;"unfiltered_html"==v&&(v="html",L=!0);if(!I.checkReadOnly()){var J=(new CKEDITOR.dom.elementPath(I.startContainer,I.root)).blockLimit||I.root;n={type:v,dontFilter:L,editable:n,editor:E,range:I,blockLimit:J,mergeCandidates:[],zombies:[]};v=n.range;I=n.mergeCandidates;var K,u;"text"==n.type&&v.shrink(CKEDITOR.SHRINK_ELEMENT,
-!0,!1)&&(K=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",v.document),v.insertNode(K),v.setStartAfter(K));L=new CKEDITOR.dom.elementPath(v.startContainer);n.endPath=J=new CKEDITOR.dom.elementPath(v.endContainer);if(!v.collapsed){var E=J.block||J.blockLimit,y=v.getCommonAncestor();E&&!E.equals(y)&&!E.contains(y)&&v.checkEndOfBlock()&&n.zombies.push(E);v.deleteContents()}for(;(u=e(v))&&a(u)&&u.isBlockBoundary()&&L.contains(u);)v.moveToPosition(u,CKEDITOR.POSITION_BEFORE_END);
-g(v,n.blockLimit,L,J);K&&(v.setEndBefore(K),v.collapse(),K.remove());K=v.startPath();if(E=K.contains(f,!1,1))v.splitElement(E),n.inlineStylesRoot=E,n.inlineStylesPeak=K.lastElement;K=v.createBookmark();(E=K.startNode.getPrevious(c))&&a(E)&&f(E)&&I.push(E);(E=K.startNode.getNext(c))&&a(E)&&f(E)&&I.push(E);for(E=K.startNode;(E=E.getParent())&&f(E);)I.push(E);v.moveToBookmark(K);if(K=D){K=n.range;if("text"==n.type&&n.inlineStylesRoot){u=n.inlineStylesPeak;v=u.getDocument().createText("{cke-peak}");for(I=
-n.inlineStylesRoot.getParent();!u.equals(I);)v=v.appendTo(u.clone()),u=u.getParent();D=v.getOuterHtml().split("{cke-peak}").join(D)}u=n.blockLimit.getName();if(/^\s+|\s+$/.test(D)&&"span"in CKEDITOR.dtd[u]){var A='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';D=A+D+A}D=n.editor.dataProcessor.toHtml(D,{context:null,fixForBody:!1,protectedWhitespaces:!!A,dontFilter:n.dontFilter,filter:n.editor.activeFilter,enterMode:n.editor.activeEnterMode});u=K.document.createElement("body");u.setHtml(D);
-A&&(u.getFirst().remove(),u.getLast().remove());if((A=K.startPath().block)&&(1!=A.getChildCount()||!A.getBogus()))a:{var x;if(1==u.getChildCount()&&a(x=u.getFirst())&&x.is(w)&&!x.hasAttribute("contenteditable")){A=x.getElementsByTag("*");K=0;for(I=A.count();K<I;K++)if(v=A.getItem(K),!v.is(M))break a;x.moveChildren(x.getParent(1));x.remove()}}n.dataWrapper=u;K=D}if(K){x=n.range;K=x.document;var t;u=n.blockLimit;I=0;var B,A=[],N,T;D=E=0;var F,W;v=x.startContainer;var L=n.endPath.elements[0],X,J=L.getPosition(v),
-y=!!L.getCommonAncestor(v)&&J!=CKEDITOR.POSITION_IDENTICAL&&!(J&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);v=b(n.dataWrapper,n);for(G(v,x);I<v.length;I++){J=v[I];if(t=J.isLineBreak){t=x;F=u;var S=void 0,aa=void 0;J.hasBlockSibling?t=1:(S=t.startContainer.getAscendant(q.$block,1))&&S.is({div:1,p:1})?(aa=S.getPosition(F),aa==CKEDITOR.POSITION_IDENTICAL||aa==CKEDITOR.POSITION_CONTAINS?t=0:(F=t.splitElement(S),t.moveToPosition(F,CKEDITOR.POSITION_AFTER_START),t=1)):t=0}if(t)D=0<I;else{t=
-x.startPath();!J.isBlock&&l(n.editor,t.block,t.blockLimit)&&(T=k(n.editor))&&(T=K.createElement(T),T.appendBogus(),x.insertNode(T),CKEDITOR.env.needsBrFiller&&(B=T.getBogus())&&B.remove(),x.moveToPosition(T,CKEDITOR.POSITION_BEFORE_END));if((t=x.startPath().block)&&!t.equals(N)){if(B=t.getBogus())B.remove(),A.push(t);N=t}J.firstNotAllowed&&(E=1);if(E&&J.isElement){t=x.startContainer;for(F=null;t&&!q[t.getName()][J.name];){if(t.equals(u)){t=null;break}F=t;t=t.getParent()}if(t)F&&(W=x.splitElement(F),
-n.zombies.push(W),n.zombies.push(F));else{F=u.getName();X=!I;t=I==v.length-1;F=d(J.node,F);for(var S=[],aa=F.length,ca=0,ea=void 0,Y=0,U=-1;ca<aa;ca++)ea=F[ca]," "==ea?(Y||X&&!ca||(S.push(new CKEDITOR.dom.text(" ")),U=S.length),Y=1):(S.push(ea),Y=0);t&&U==S.length&&S.pop();X=S}}if(X){for(;t=X.pop();)x.insertNode(t);X=0}else x.insertNode(J.node);J.lastNotAllowed&&I<v.length-1&&((W=y?L:W)&&x.setEndAt(W,CKEDITOR.POSITION_AFTER_START),E=0);x.collapse()}}1!=v.length?B=!1:(B=v[0],B=B.isElement&&"false"==
-B.node.getAttribute("contenteditable"));B&&(D=!0,t=v[0].node,x.setStartAt(t,CKEDITOR.POSITION_BEFORE_START),x.setEndAt(t,CKEDITOR.POSITION_AFTER_END));n.dontMoveCaret=D;n.bogusNeededBlocks=A}B=n.range;var P;W=n.bogusNeededBlocks;for(X=B.createBookmark();N=n.zombies.pop();)N.getParent()&&(T=B.clone(),T.moveToElementEditStart(N),T.removeEmptyBlocksAtEnd());if(W)for(;N=W.pop();)CKEDITOR.env.needsBrFiller?N.appendBogus():N.append(B.document.createText(" "));for(;N=n.mergeCandidates.pop();)N.mergeSiblings();
-B.moveToBookmark(X);if(!n.dontMoveCaret){for(N=e(B);N&&a(N)&&!N.is(q.$empty);){if(N.isBlockBoundary())B.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END);else{if(f(N)&&N.getHtml().match(/(\s|&nbsp;)$/g)){P=null;break}P=B.clone();P.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}N=N.getLast(c)}P&&B.moveToRange(P)}}}}(),y=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==
-CKEDITOR.NODE_ELEMENT};return b}function b(a,c,d){c=a.getDocument().createElement(c);a.append(c,d);return c}function c(a){var b=a.count(),d;for(b;0<b--;)d=a.getItem(b),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();f||(f=d.clone(),f.setEndAt(e,
-CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}(),F={eol:{detect:function(a,b){var c=a.range,d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,
-b);d.collapse(1);e.collapse();f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c=b.getDocument(),d;a.appendEolBr&&(d=this.createEolBr(c),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(c),1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},
-bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!u(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c=a.range,d=c.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(d,b),f=new CKEDITOR.dom.elementPath(c.startContainer,b),c=new CKEDITOR.dom.elementPath(c.endContainer,b),g;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(e.blockLimit.is({tr:1,table:1})){var l=e.contains("table").getParent();g=function(a){return!a.equals(l)}}else if(e.block&&
-e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),c=c.contains(CKEDITOR.dtd.$list),!f.equals(c))){var k=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(k)}}g||(g=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a,b,d,g)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,
-d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}},t=function(){function a(b,c){var d=b.getParent();if(d.is(CKEDITOR.dtd.$inline))b[c?"insertBefore":"insertAfter"](d)}function b(c,d,e){a(d);a(e,1);for(var h;h=e.getNext();)h.insertAfter(d),d=h;A(c)&&c.remove()}function c(a,b){var d=new CKEDITOR.dom.range(a);d.setStartAfter(b.startNode);d.setEndBefore(b.endNode);return d}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),
-e=d.startPath(),h=d.endPath(),f=e.contains(CKEDITOR.dtd.$list),g=h.contains(CKEDITOR.dtd.$list);a.mergeList=f&&g&&f.getParent().equals(g.getParent())&&!f.equals(g);a.mergeListItems=e.block&&h.block&&e.block.is(CKEDITOR.dtd.$listItem)&&h.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=d.createBookmark()},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,
-e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var p=f.contains(CKEDITOR.dtd.$list),l=g.contains(CKEDITOR.dtd.$list);p.equals(l)||(l.moveChildren(p),l.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e));d.remove();e.remove()}}},block:{detectMerge:function(a,b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode);
-c.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e);d.remove();e.remove()}}},table:function(){function a(c){var e=[],h,f=new CKEDITOR.dom.walker(c),g=c.startPath().contains(d),m=c.endPath().contains(d),p={};f.guard=function(a,
-f){if(a.type==CKEDITOR.NODE_ELEMENT){var l="visited_"+(f?"out":"in");if(a.getCustomData(l))return;CKEDITOR.dom.element.setMarker(p,a,l,1)}if(f&&g&&a.equals(g))h=c.clone(),h.setEndAt(g,CKEDITOR.POSITION_BEFORE_END),e.push(h);else if(!f&&m&&a.equals(m))h=c.clone(),h.setStartAt(m,CKEDITOR.POSITION_AFTER_START),e.push(h);else{if(l=!f)l=a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&(!g||b(a,g))&&(!m||b(a,m));l&&(h=c.clone(),h.selectNodeContents(a),e.push(h))}};f.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);
-return e}function b(a,c){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(c);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&d)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e};c.checkForward();if(1<e){var c=b.startPath().contains("table"),h=b.endPath().contains("table");c&&h&&b.checkBoundaryOfElement(c,
-CKEDITOR.START)&&b.checkBoundaryOfElement(h,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(h),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,h){var f=c(h,e.bookmark),g=f.clone(),l,k,v=f.getCommonAncestor();v.is(CKEDITOR.dtd.$tableContent)&&!v.is(d)&&(v=v.getAscendant("table",!0));k=v;v=new CKEDITOR.dom.elementPath(f.startContainer,k);k=new CKEDITOR.dom.elementPath(f.endContainer,k);v=v.contains("table");k=k.contains("table");if(v||k)v&&k&&b(v,k)?(e.tableSurroundingRange=
-g,g.setStartAt(v,CKEDITOR.POSITION_AFTER_END),g.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),g=f.clone(),g.setEndAt(v,CKEDITOR.POSITION_AFTER_END),l=f.clone(),l.setStartAt(k,CKEDITOR.POSITION_BEFORE_START),l=a(g).concat(a(l))):v?k||(e.tableSurroundingRange=g,g.setStartAt(v,CKEDITOR.POSITION_AFTER_END),f.setEndAt(v,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=g,g.setEndAt(k,CKEDITOR.POSITION_BEFORE_START),f.setStartAt(k,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=l?l:a(f)},deleteRanges:function(a){for(var b;b=
-a.tableContentsRanges.pop();)b.extractContents(),A(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);c.moveToBookmark(a.purgeTableBookmark);c.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&
-a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c=b.startPath(),d;l(a,c.block,c.blockLimit)&&(d=k(a))&&(d=b.document.createElement(d),d.appendBogus(),b.insertNode(d),b.moveToPosition(d,CKEDITOR.POSITION_AFTER_START))}}}()})();
-(function(){function a(){var a=this._.fakeSelection,b;a&&(b=this.getSelection(1),b&&b.isHidden()||(a.reset(),a=0));if(!a&&(a=b||this.getSelection(1),!a||a.getType()==CKEDITOR.SELECTION_NONE))return;this.fire("selectionCheck",a);b=this.elementPath();b.compare(this._.selectionPreviousPath)||(CKEDITOR.env.webkit&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=b,this.fire("selectionChange",{selection:a,path:b}))}function d(){A=!0;x||(b.call(this),x=CKEDITOR.tools.setTimeout(b,
-200,this))}function b(){x=null;A&&(CKEDITOR.tools.setTimeout(a,0,this),A=!1)}function c(a){return u(a)||a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function e(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var d=a.startContainer,e=a.getPreviousNode(c,null,d),f=a.getNextNode(c,null,d);return b(e)||b(f,1)||!(e||f||d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()&&
-d.getBogus())?!0:!1}function g(a){l(a,!1);var b=a.getDocument().createText(t);a.setCustomData("cke-fillingChar",b);return b}function l(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=t.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f);d.focusNode==
-c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(k(c.getText(),1));g&&(c=a.getDocument().$,d=c.getSelection(),c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function k(a,b){return b?a.replace(z,function(a,b){return b?" ":""}):a.replace(t,"")}function n(a){var b=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie?"display:none":"position:fixed;top:0;left:-1000px")+
-'"\x3e\x26nbsp;\x3c/div\x3e',a.document);a.fire("lockSnapshot");a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START);d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([d]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function w(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),
-f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function f(a){for(var b=0;b<a.length;b++){var c=a[b];c.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!c.collapsed){if(c.startContainer.isReadOnly())for(var d=c.startContainer,e;d&&!((e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)e&&"false"==
-d.getAttribute("contentEditable")&&c.setStartAfter(d),d=d.getParent();d=c.startContainer;e=c.endContainer;var f=c.startOffset,g=c.endOffset,l=c.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(f>=d.getLength()?l.setStartAfter(d):l.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?l.setEndAfter(e):l.setEndBefore(e));d=new CKEDITOR.dom.walker(l);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);d.getPosition(l.endContainer)&
-CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+1,0,e));return!0}return!1};d.next()}}return a}var x,A,u=CKEDITOR.dom.walker.invisible(1),B=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return!1}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;(e=d.moveToClosestEditablePosition(b.selected,a))||(e=d.moveToClosestEditablePosition(b.selected,!a));
-e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();e||(d.moveToElementEditablePosition(c.editable()),c.getSelection().selectRanges([d]));c.fire("saveSnapshot");return!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=e.getSelection();a&&a.removeAllRanges()}var e=b.editor;e.on("contentDom",function(){function b(){D=new CKEDITOR.dom.selection(e.getSelection());D.lock()}function c(){h.removeListener("mouseup",
-c);k.removeListener("mouseup",c);var a=CKEDITOR.document.$.selection,b=a.createRange();"None"!=a.type&&b.parentElement().ownerDocument==f.$&&b.select()}var f=e.document,h=CKEDITOR.document,g=e.editable(),p=f.getBody(),k=f.getDocumentElement(),n=g.isInline(),v,D;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();0!==v&&(a=e.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==g.$&&(a=e.createRange(),a.moveToElementEditStart(g),a.select())},null,null,-2);g.attachListener(g,
-CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){v&&CKEDITOR.env.webkit&&(v=e._.previousActive&&e._.previousActive.equals(f.getActive()));e.unlockSelection(v);v=0},null,null,-1);g.attachListener(g,"mousedown",function(){v=0});if(CKEDITOR.env.ie||n)q?g.attachListener(g,"beforedeactivate",b,null,null,-1):g.attachListener(e,"selectionCheck",b,null,null,-1),g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){e.lockSelection(D);v=1},null,null,-1),g.attachListener(g,"mousedown",function(){v=
-0});if(CKEDITOR.env.ie&&!n){var I;g.attachListener(g,"mousedown",function(a){2==a.data.$.button&&((a=e.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(I=e.window.getScrollPosition()))});g.attachListener(g,"mouseup",function(a){2==a.data.$.button&&I&&(e.document.$.documentElement.scrollLeft=I.x,e.document.$.documentElement.scrollTop=I.y);I=null});if("BackCompat"!=f.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)k.on("mousedown",function(a){function b(a){a=a.data.$;
-if(d){var c=p.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(e){}d.setEndPoint(0>f.compareEndPoints("StartToStart",c)?"EndToEnd":"StartToStart",c);d.select()}}function c(){k.removeListener("mousemove",b);h.removeListener("mouseup",c);k.removeListener("mouseup",c);d.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<k.$.clientHeight&&a.$.x<k.$.clientWidth){var d=p.$.createTextRange();try{d.moveToPoint(a.$.clientX,a.$.clientY)}catch(e){}var f=d.duplicate();k.on("mousemove",b);h.on("mouseup",
-c);k.on("mouseup",c)}});if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)k.on("mousedown",function(a){a.data.getTarget().is("html")&&(h.on("mouseup",c),k.on("mouseup",c))})}}g.attachListener(g,"selectionchange",a,e);g.attachListener(g,"keyup",d,e);g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){e.forceNextSelectionCheck();e.selectionChange(1)});if(n&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var E;g.attachListener(g,"mousedown",function(){E=1});g.attachListener(f.getDocumentElement(),
-"mouseup",function(){E&&d.call(e);E=0})}else g.attachListener(CKEDITOR.env.ie?g:f.getDocumentElement(),"mouseup",d,e);CKEDITOR.env.webkit&&g.attachListener(f,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:l(g)}},null,null,-1);g.attachListener(g,"keydown",w(e),null,null,-1)});e.on("setData",function(){e.unlockSelection();CKEDITOR.env.webkit&&c()});e.on("contentDomUnload",function(){e.unlockSelection()});if(CKEDITOR.env.ie9Compat)e.on("beforeDestroy",
-c,null,null,9);e.on("dataReady",function(){delete e._.fakeSelection;delete e._.hiddenSelectionContainer;e.selectionChange(1)});e.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=e.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=e.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);e.on("key",function(a){if("wysiwyg"==e.mode){var b=e.getSelection();if(b.isFake){var c=
-B[a.data.keyCode];if(c)return c({editor:e,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?l(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){l(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=k(a.data))},b,null,20);b.on("toDataFormat",
-function(a){a.data.dataValue=k(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:d).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?(!a.isLocked&&
-a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():
-new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var q="function"!=typeof window.getSelection,y=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:y++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,
-b._.cache),this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=
-null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var F={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1},t=CKEDITOR.tools.repeat("​",7),z=new RegExp(t+"( )?","g");CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:k,_createFillingCharSequenceNode:g,FILLING_CHAR_SEQUENCE:t});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==
-this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=q?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:q?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT);"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT);c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=
-CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&F[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=q?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,
-offset:0};for(var e=d.children,f,g,h=b.duplicate(),l=0,v=e.length-1,k=-1,m,E;l<=v;)if(k=Math.floor((l+v)/2),f=e[k],h.moveToElementText(f),m=h.compareEndPoints("StartToStart",b),0<m)v=k-1;else if(0>m)l=k+1;else return{container:d,offset:a(f)};if(-1==k||k==e.length-1&&0>m){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length};
-for(d=e.length;0<h&&0<d;)g=e[--d],g.nodeType==CKEDITOR.NODE_TEXT&&(E=g,h-=g.nodeValue.length);return{container:E,offset:-h}}h.collapse(0<m?!0:!1);h.setEndPoint(0<m?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(f)+(0<m?0:1)};for(;0<h;)try{g=f[0<m?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,E=g),f=g}catch(n){return{container:d,offset:a(f)}}return{container:E,offset:0<m?-h:E.nodeValue.length+h}};
-return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=
-c.item(e),h=f.parentNode,g=0,a=new CKEDITOR.dom.range(this.root);g<h.childNodes.length&&h.childNodes[g]!=f;g++);a.setStart(new CKEDITOR.dom.node(h),g);a.setEnd(new CKEDITOR.dom.node(h),g+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};
-return function(b){var c=this._.cache,d=c.ranges;d||(c.ranges=d=new CKEDITOR.dom.rangeList(a.call(this)));return b?f(new CKEDITOR.dom.rangeList(d.slice())):d}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed)b=c.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(c.optimize();b=
-c.startContainer,c.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary();)c.setStartAfter(b);b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(c.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;)b=c,c=c.getFirst();else b=c.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;
-var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&!((c=a.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&F[c.getName()]&&(d=c));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=q?"Control"==b.type?"":b.createRange().text:
-b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),c=!b&&this.getRanges(),d=this.isFake;this.isLocked=0;this.reset();a&&(a=b||c[0]&&c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(d?this.fake(b):b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={};this.isFake=
-0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;var b=a._.hiddenSelectionContainer;if(b){var c=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!c&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=y++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){var b=
-this.root.editor,b=b&&b._.hiddenSelectionContainer;this.reset();if(b)for(var b=this.root,c,d=0;d<a.length;++d)c=a[d],c.endContainer.equals(b)&&(c.endOffset=Math.min(c.endOffset,b.getChildCount()));if(a.length)if(this.isLocked){var f=CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();f&&!f.equals(this.root)&&f.focus()}else{var k;a:{var n,w;if(1==a.length&&!(w=a[0]).collapsed&&(k=w.getEnclosedNode())&&k.type==CKEDITOR.NODE_ELEMENT&&(w=w.clone(),w.shrink(CKEDITOR.SHRINK_ELEMENT,
-!0),(n=w.getEnclosedNode())&&n.type==CKEDITOR.NODE_ELEMENT&&(k=n),"false"==k.getAttribute("contenteditable")))break a;k=void 0}if(k)this.fake(k);else{if(q){w=CKEDITOR.dom.walker.whitespaces(!0);n=/\ufeff|\u00a0/;b={table:1,tbody:1,tr:1};1<a.length&&(k=a[a.length-1],a[0].setEnd(k.endContainer,k.endOffset));k=a[0];a=k.collapsed;var u,t,x;if((c=k.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in F&&(!c.is("a")||!c.getText()))try{x=c.$.createControlRange();x.addElement(c.$);x.select();
-return}catch(v){}if(k.startContainer.type==CKEDITOR.NODE_ELEMENT&&k.startContainer.getName()in b||k.endContainer.type==CKEDITOR.NODE_ELEMENT&&k.endContainer.getName()in b)k.shrink(CKEDITOR.NODE_ELEMENT,!0),a=k.collapsed;x=k.createBookmark();b=x.startNode;a||(f=x.endNode);x=k.document.$.body.createTextRange();x.moveToElementText(b.$);x.moveStart("character",1);f?(n=k.document.$.body.createTextRange(),n.moveToElementText(f.$),x.setEndPoint("EndToEnd",n),x.moveEnd("character",-1)):(u=b.getNext(w),t=
-b.hasAscendant("pre"),u=!(u&&u.getText&&u.getText().match(n))&&(t||!b.hasPrevious()||b.getPrevious().is&&b.getPrevious().is("br")),t=k.document.createElement("span"),t.setHtml("\x26#65279;"),t.insertBefore(b),u&&k.document.createText("").insertBefore(b));k.setStartBefore(b);b.remove();a?(u?(x.moveStart("character",-1),x.select(),k.document.$.selection.clear()):x.select(),k.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START),t.remove()):(k.setEndBefore(f),f.remove(),x.select())}else{f=this.getNative();
-if(!f)return;this.removeAllRanges();for(x=0;x<a.length;x++){if(x<a.length-1&&(u=a[x],t=a[x+1],n=u.clone(),n.setStart(u.endContainer,u.endOffset),n.setEnd(t.startContainer,t.startOffset),!n.collapsed&&(n.shrink(CKEDITOR.NODE_ELEMENT,!0),k=n.getCommonAncestor(),n=n.getEnclosedNode(),k.isReadOnly()||n&&n.isReadOnly()))){t.setStart(u.startContainer,u.startOffset);a.splice(x--,1);continue}k=a[x];t=this.document.$.createRange();k.collapsed&&CKEDITOR.env.webkit&&e(k)&&(n=g(this.root),k.insertNode(n),(u=
-n.getNext())&&!n.getPrevious()&&u.type==CKEDITOR.NODE_ELEMENT&&"br"==u.getName()?(l(this.root),k.moveToPosition(u,CKEDITOR.POSITION_BEFORE_START)):k.moveToPosition(n,CKEDITOR.POSITION_AFTER_END));t.setStart(k.startContainer.$,k.startOffset);try{t.setEnd(k.endContainer.$,k.endOffset)}catch(D){if(0<=D.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))k.collapse(1),t.setEnd(k.endContainer.$,k.endOffset);else throw D;}f.addRange(t)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var b=
-this.root.editor;this.reset();n(b);var c=this._.cache,d=new CKEDITOR.dom.range(this.root);d.setStartBefore(a);d.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(d);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT;c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=y++;b._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=
-this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],c,d=0;d<a.length;d++){var e=new CKEDITOR.dom.range(this.root);e.moveToBookmark(a[d]);b.push(e)}a.isFake&&(c=b[0].getEnclosedNode(),c&&c.type==CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),a.isFake=0));a.isFake?this.fake(c):this.selectRanges(b);return this},getCommonAncestor:function(){var a=
-this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[q?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}})();"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
-(function(){function a(a,b){for(var c,d;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");"false"==e?c=a:"true"==e&&(d=1)}return c}function d(a,b,c,d){return(a.getPosition(b)|d)==d&&(!c.childRule||c.childRule(a))}function b(c){var f=c.document;if(c.collapsed)f=F(this,f),c.insertNode(f),c.moveToPosition(f,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,h=this._.definition,l,k=h.ignoreReadonly,m=k||h.includeReadonly;null==
-m&&(m=c.root.getCustomData("cke_includeReadonly"));var n=CKEDITOR.dtd[g];n||(l=!0,n=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var p=c.createBookmark(),q=p.startNode,w=p.endNode,r=q,u;if(!k){var x=c.getCommonAncestor(),k=a(q,x),x=a(w,x);k&&(r=k.getNextSourceNode(!0));x&&(w=x)}for(r.getPosition(w)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){k=!1;if(r.equals(w))r=null,k=!0;else{var t=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,x=t&&"false"==r.getAttribute("contentEditable"),y=t&&
-r.getAttribute("data-nostyle");if(t&&r.data("cke-bookmark")){r=r.getNextSourceNode(!0);continue}if(x&&m&&CKEDITOR.dtd.$block[t])for(var A=r,z=e(A),C=void 0,G=z.length,H=0,A=G&&new CKEDITOR.dom.range(A.getDocument());H<G;++H){var C=z[H],R=CKEDITOR.filter.instances[C.data("cke-filter")];if(R?R.check(this):1)A.selectNodeContents(C),b.call(this,A)}z=t?!n[t]||y?0:x&&!m?0:d(r,w,h,M):1;if(z)if(C=r.getParent(),z=h,G=g,H=l,!C||!(C.getDtd()||CKEDITOR.dtd.span)[G]&&!H||z.parentRule&&!z.parentRule(C))k=!0;else{if(u||
-t&&CKEDITOR.dtd.$removeEmpty[t]&&(r.getPosition(w)|M)!=M||(u=c.clone(),u.setStartBefore(r)),t=r.type,t==CKEDITOR.NODE_TEXT||x||t==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var t=r,Y;(k=!t.getNext(K))&&(Y=t.getParent(),n[Y.getName()])&&d(Y,q,h,Q);)t=Y;u.setEndAfter(t)}}else k=!0;r=r.getNextSourceNode(y||x)}if(k&&u&&!u.collapsed){for(var k=F(this,f),x=k.hasAttributes(),y=u.getCommonAncestor(),t={},z={},C={},G={},U,P,da;k&&y;){if(y.getName()==g){for(U in h.attributes)!G[U]&&(da=y.getAttribute(P))&&
-(k.getAttribute(U)==da?z[U]=1:G[U]=1);for(P in h.styles)!C[P]&&(da=y.getStyle(P))&&(k.getStyle(P)==da?t[P]=1:C[P]=1)}y=y.getParent()}for(U in z)k.removeAttribute(U);for(P in t)k.removeStyle(P);x&&!k.hasAttributes()&&(k=null);k?(u.extractContents().appendTo(k),u.insertNode(k),B.call(this,k),k.mergeSiblings(),CKEDITOR.env.ie||k.$.normalize()):(k=new CKEDITOR.dom.element("span"),u.extractContents().appendTo(k),u.insertNode(k),B.call(this,k),k.remove(!0));u=null}}c.moveToBookmark(p);c.shrink(CKEDITOR.SHRINK_TEXT);
-c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function c(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),c=new CKEDITOR.dom.elementPath(m.getParent()),e=null,f=null,g=0;g<a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;n.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<c.elements.length;g++){h=c.elements[g];if(h==c.block||h==c.blockLimit)break;n.checkElementRemovable(h,!0)&&(f=h)}f&&m.breakParent(f);e&&d.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var c=
-a.createBookmark(),d=c.startNode;if(a.collapsed){for(var e=new CKEDITOR.dom.elementPath(d.getParent(),a.root),f,g=0,k;g<e.elements.length&&(k=e.elements[g])&&k!=e.block&&k!=e.blockLimit;g++)if(this.checkElementRemovable(k)){var l;a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(l=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(f=k,f.match=l?"start":"end"):(k.mergeSiblings(),k.is(this.element)?u.call(this,k):q(k,h(this)[k.getName()]))}if(f){k=d;for(g=0;;g++){l=e.elements[g];if(l.equals(f))break;
-else if(l.match)continue;else l=l.clone();l.append(k);k=l}k["start"==f.match?"insertBefore":"insertAfter"](f)}}else{var m=c.endNode,n=this;b();for(e=d;!e.equals(m);)f=e.getNextSourceNode(),e.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(e)&&(e.getName()==this.element?u.call(this,e):q(e,h(this)[e.getName()]),f.type==CKEDITOR.NODE_ELEMENT&&f.contains(d)&&(b(),f=d.getNext())),e=f}a.moveToBookmark(c);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function e(a){var b=[];a.forEach(function(a){if("true"==
-a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function g(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&t(a,this)}function l(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&&
-a.removeStyle(e)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var d,e=a.document,f;d=c.getNextParagraph();)!d.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(f=F(this,e,d),w(d,f));a.moveToBookmark(b)}function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e;d=c.getNextParagraph();)this.checkElementRemovable(d)&&
-(d.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&d.copyAttributes(e),w(d,e)):u.call(this,d));a.moveToBookmark(b)}function w(a,b){var c=!b;c&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var d=b&&b.is("pre"),e=a.is("pre"),g=!d&&e;if(d&&!e){e=b;(g=a.getBogus())&&g.remove();g=a.getHtml();g=x(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+|&nbsp;)/g,
-" ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(g);b=e}else g?b=A(c?[a.getHtml()]:f(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,k;(k=c.getPrevious(R))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(d=x(k.getHtml(),/\n$/,"")+"\n\n"+x(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="\x3cpre\x3e"+d+"\x3c/pre\x3e":
-c.setHtml(d),k.remove())}else c&&y(b)}function f(a){var b=[];x(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"\x3c/pre\x3e"+c+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function x(a,b,c){var d="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function A(a,b){var c;
-1<a.length&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=x(e,/^[ \t]*\n/,""),e=x(e,/\n$/,""),e=x(e,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);
-c.append(f)}else b.setHtml(e)}return c||b}function u(a,b){var c=this._.definition,d=c.attributes,c=c.styles,e=h(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==p(g,d[g]))b&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var k in c)this._.definition.fullMatch&&a.getStyle(k)!=p(k,c[k],!0)||(f=f||!!a.getStyle(k),a.removeStyle(k));q(a,e,C[a.getName()]);f&&(this._.definition.alwaysRemoveElement?
-y(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?y(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function B(a){for(var b=h(this),c=a.getElementsByTag(this.element),d,e=c.count();0<=--e;)d=c.getItem(e),d.isReadOnly()||u.call(this,d,!0);for(var f in b)if(f!=this.element)for(c=a.getElementsByTag(f),e=c.count()-1;0<=e;e--)d=c.getItem(e),d.isReadOnly()||q(d,b[f])}function q(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=b[d][0],
-f;if(f=a.getAttribute(e)){var g=b[d][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}c||y(a)}function y(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(R),d=a.getNext(R);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br",1);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else c=a.getFirst(),d=a.getLast(),a.remove(!0),c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings(),
-d&&!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings())}function F(a,b,c){var d;d=a.element;"*"==d&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=t(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function t(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);return a}function z(a,
-b){for(var c in a)a[c]=a[c].replace(H,function(a,c){return b[c]})}function h(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function p(a,b,c){var d=new CKEDITOR.dom.element("span");
-d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function m(a,b,c){var d=a.document,e=a.getRanges();b=b?this.removeFromRange:this.applyToRange;for(var f,g=e.createIterator();f=g.getNextRange();)b.call(this,f,c);a.selectRanges(e);d.removeCustomData("doc_processing_style")}var C={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,
-details:1,datagrid:1,datalist:1},r={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},G=/\s*(?:;\s*|$)/,H=/#\((.+?)\)/g,K=CKEDITOR.dom.walker.bookmark(0,1),R=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var c=a.attributes;c&&c.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style)),delete c.style);
-b&&(a=CKEDITOR.tools.clone(a),z(a.attributes,b),z(a.styles,b));c=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():a.element:"*";this.type=a.type||(C[c]?CKEDITOR.STYLE_BLOCK:r[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return m.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var b=
-this._.enterMode;b||(this._.enterMode=a.activeEnterMode);m.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof CKEDITOR.dom.document)return m.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);m.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?
-g:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?n:this.type==CKEDITOR.STYLE_OBJECT?l:null;return this.removeFromRange(a)},applyToObject:function(a){t(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var c=a.elements,d=0,e;d<c.length;d++)if(e=c[d],
-this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element?f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,b))return!0}}return!1},checkApplicable:function(a,b,c){b&&b instanceof CKEDITOR.filter&&(c=b);if(c&&!c.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},
-checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return!1;var d=a.getName();if("string"==typeof this.element?d==this.element:d in this.element){if(!b&&!a.hasAttributes())return!0;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f)e++,d[g]=f[g];if(g=CKEDITOR.style.getStyleText(c))d.style||e++,d.style=g;d._length=e;c=c._AC=d}if(c._length){for(var h in c)if("_length"!=h){e=a.getAttribute(h)||"";if("style"==h)a:{d=c[h];"string"==typeof d&&
-(d=CKEDITOR.tools.parseCssText(d));"string"==typeof e&&(e=CKEDITOR.tools.parseCssText(e,!0));g=void 0;for(g in d)if(!(g in e)||e[g]!=d[g]&&"inherit"!=d[g]&&"inherit"!=e[g]){d=!1;break a}d=!0}else d=c[h]==e;if(d){if(!b)return!0}else if(b)return!1}if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,c){if(this.checkElementMatch(a,b,c))return!0;if(b=h(this)[a.getName()]){var d;if(!(b=b.attributes))return!0;for(c=0;c<b.length;c++)if(d=b[c][0],d=a.getAttribute(d)){var e=b[c][1];if(null===
-e)return!0;if("string"==typeof e){if(d==e)return!0}else if(e.test(d))return!0}}return!1},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;"bdo"==d&&(d="span");var c=["\x3c",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style\x3d"',e,'"');c.push("\x3e",a||b.name,"\x3c/",d,"\x3e");return c.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;
-var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(G,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(G,";");"inherit"==f?d+=g:c+=g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},
-a,!0);return this.customHandlers[a.type]=b};var M=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,Q=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,!0)};
+(function(){function a(a,e,g,h){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var k=new CKEDITOR.editor(e,a,h);h==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.setStyle("visibility","hidden"),k._.required=a.hasAttribute("required"),a.removeAttribute("required"));g&&k.setData(g,null,!0);k.on("loaded",function(){b(k);h==CKEDITOR.ELEMENT_MODE_REPLACE&&k.config.autoUpdateElement&&
+a.$.form&&k._attachToForm();k.setMode(k.config.startupMode,function(){k.resetDirty();k.status="ready";k.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,k)})});k.on("destroy",d);return k}function d(){var a=this.container,b=this.element;a&&(a.clearCustomData(),a.remove());b&&(b.clearCustomData(),this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(b.show(),this._.required&&b.setAttribute("required","required")),delete this.element)}function b(a){var b=a.name,d=a.element,h=a.elementMode,k=
+a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html,q=new CKEDITOR.template('\x3c{outerEl} id\x3d"cke_{name}" class\x3d"{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'"  dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"application"'+(a.title?' aria-labelledby\x3d"cke_{name}_arialbl"':"")+"\x3e"+(a.title?'\x3cspan id\x3d"cke_{name}_arialbl" class\x3d"cke_voice_label"\x3e{voiceLabel}\x3c/span\x3e':"")+'\x3c{outerEl} class\x3d"cke_inner cke_reset" role\x3d"presentation"\x3e{topHtml}\x3c{outerEl} id\x3d"{contentId}" class\x3d"cke_contents cke_reset" role\x3d"presentation"\x3e\x3c/{outerEl}\x3e{bottomHtml}\x3c/{outerEl}\x3e\x3c/{outerEl}\x3e'),
+b=CKEDITOR.dom.element.createFromHtml(q.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.title,topHtml:k?'\x3cspan id\x3d"'+a.ui.spaceId("top")+'" class\x3d"cke_top cke_reset_all" role\x3d"presentation" style\x3d"height:auto"\x3e'+k+"\x3c/span\x3e":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'\x3cspan id\x3d"'+a.ui.spaceId("bottom")+'" class\x3d"cke_bottom cke_reset_all" role\x3d"presentation"\x3e'+n+"\x3c/span\x3e":"",outerEl:CKEDITOR.env.ie?"span":"div"}));h==CKEDITOR.ELEMENT_MODE_REPLACE?
+(d.hide(),b.insertAfter(d)):d.append(b);a.container=b;a.ui.contentsElement=a.ui.space("contents");k&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();d=a.config.width;h=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));h&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(h));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,d){return a(b,d,null,CKEDITOR.ELEMENT_MODE_REPLACE)};
+CKEDITOR.appendTo=function(b,d,g){return a(b,d,g,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var d=null,h=a[b];if(h.name||h.id){if("string"==typeof arguments[0]){if(!(new RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)")).test(h.className))continue}else if("function"==typeof arguments[0]&&(d={},!1===arguments[0](h,d)))continue;this.replace(h,d)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes=
+{}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var d=this,h=this._.modes;if(a!=d.mode&&h&&h[a]){d.fire("beforeSetMode",a);if(d.mode){var k=d.checkDirty(),h=d._.previousModeData,n,q=0;d.fire("beforeModeUnload");d.editable(0);d._.previousMode=d.mode;d._.previousModeData=n=d.getData(1);"source"==d.mode&&h==n&&(d.fire("lockSnapshot",{forceUpdate:!0}),q=1);d.ui.space("contents").setHtml("");d.mode=""}else d._.previousModeData=d.getData(1);this._.modes[a](function(){d.mode=a;void 0!==k&&!k&&
+d.resetDirty();q?d.fire("unlockSnapshot"):"wysiwyg"==a&&d.fire("saveSnapshot");setTimeout(function(){d.fire("mode");b&&b.call(d)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,d,h){var k=this.container,n=this.ui.space("contents"),q=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement;h=h?this.container.getFirst(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_inner")}):k;h.setSize("width",a,!0);q&&(q.style.width="1%");var f=(h.$.offsetHeight||0)-(n.$.clientHeight||
+0),k=Math.max(b-(d?0:f),0);b=d?b+f:b;n.setStyle("height",k+"px");q&&(q.style.width="100%");this.fire("resize",{outerHeight:b,contentsHeight:k,outerWidth:a||h.getSize("width")})};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
+(function(){function a(a){var b=a.editor,e=a.data.path,f=e.blockLimit,g=a.data.selection,u=g.getRanges()[0],y;if(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)if(g=d(g,e))g.appendBogus(),y=CKEDITOR.env.ie;h(b,e.block,f)&&u.collapsed&&!u.getCommonAncestor().isReadOnly()&&(e=u.clone(),e.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS),f=new CKEDITOR.dom.walker(e),f.guard=function(a){return!c(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()},!f.checkForward()||e.checkStartOfBlock()&&e.checkEndOfBlock())&&
+(b=u.fixBlock(!0,b.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p"),CKEDITOR.env.needsBrFiller||(b=b.getFirst(c))&&b.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(b.getText()).match(/^(?:&nbsp;|\xa0)$/)&&b.remove(),y=1,a.cancel());y&&u.select()}function d(a,b){if(a.isFake)return 0;var d=b.block||b.blockLimit,e=d&&d.getLast(c);if(!(!d||!d.isBlockBoundary()||e&&e.type==CKEDITOR.NODE_ELEMENT&&e.isBlockBoundary()||d.is("pre")||d.getBogus()))return d}function b(a){var b=a.data.getTarget();b.is("input")&&
+(b=b.getAttribute("type"),"submit"!=b&&"reset"!=b||a.data.preventDefault())}function c(a){return f(a)&&D(a)}function e(a,b){return function(c){var d=c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget;(d=d&&d.nodeType==CKEDITOR.NODE_ELEMENT?new CKEDITOR.dom.element(d):null)&&(b.equals(d)||b.contains(d))||a.call(this,c)}}function g(a){function b(a){return function(b,e){e&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(f)&&(d=b);if(!(e||!c(b)||a&&A(b)))return!1}}var d,e=a.getRanges()[0];a=a.root;
+var f={table:1,ul:1,ol:1,dl:1};if(e.startPath().contains(f)){var u=e.clone();u.collapse(1);u.setStartAt(a,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(u);a.guard=b();a.checkBackward();if(d)return u=e.clone(),u.collapse(),u.setEndAt(d,CKEDITOR.POSITION_AFTER_END),a=new CKEDITOR.dom.walker(u),a.guard=b(!0),d=!1,a.checkForward(),d}return null}function h(a,b,c){return!1!==a.config.autoParagraph&&a.activeEnterMode!=CKEDITOR.ENTER_BR&&(a.editable().equals(c)&&!b||b&&"true"==b.getAttribute("contenteditable"))}
+function k(a){return a.activeEnterMode!=CKEDITOR.ENTER_BR&&!1!==a.config.autoParagraph?a.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":!1}function n(a){var b=a.editor;b.getSelection().scrollIntoView();setTimeout(function(){b.fire("saveSnapshot")},0)}function q(a,b,c){var d=a.getCommonAncestor(b);for(b=a=c?b:a;(a=a.getParent())&&!d.equals(a)&&1==a.getChildCount();)b=a;b.remove()}var f,D,w,A,G,x,m,K,z,I;CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,$:function(a,b){this.base(b.$||
+b);this.editor=a;this.status="unloaded";this.hasFocus=!1;this.setup()},proto:{focus:function(){var a;if(CKEDITOR.env.webkit&&!this.hasFocus&&(a=this.editor._.previousActive||this.getDocument().getActive(),this.contains(a))){a.focus();return}CKEDITOR.env.edge&&14<CKEDITOR.env.version&&!this.hasFocus&&this.getDocument().equals(CKEDITOR.document)&&(this.editor._.previousScrollTop=this.$.scrollTop);try{if(!CKEDITOR.env.ie||CKEDITOR.env.edge&&14<CKEDITOR.env.version||!this.getDocument().equals(CKEDITOR.document))if(CKEDITOR.env.chrome){var b=
+this.$.scrollTop;this.$.focus();this.$.scrollTop=b}else this.$.focus();else this.$.setActive()}catch(c){if(!CKEDITOR.env.ie)throw c;}CKEDITOR.env.safari&&!this.isInline()&&(a=CKEDITOR.document.getActive(),a.equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var c=Array.prototype.slice.call(arguments,0);CKEDITOR.env.ie&&/^focus|blur$/.exec(a)&&(a="focus"==a?"focusin":"focusout",b=e(b,this),c[0]=a,c[1]=b);return CKEDITOR.dom.element.prototype.on.apply(this,c)},attachListener:function(a){!this._.listeners&&
+(this._.listeners=[]);var b=Array.prototype.slice.call(arguments,1),b=a.on.apply(a,b);this._.listeners.push(b);return b},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,c;for(c in a)a.hasOwnProperty(c)&&(b=a[c],null!==b?this.setAttribute(c,b):this.removeAttribute(c))},attachClass:function(a){var b=this.getCustomData("classes");this.hasClass(a)||(!b&&(b=[]),b.push(a),this.setCustomData("classes",
+b),this.addClass(a))},changeAttr:function(a,b){var c=this.getAttribute(a);b!==c&&(!this._.attrChanges&&(this._.attrChanges={}),a in this._.attrChanges||(this._.attrChanges[a]=c),this.setAttribute(a,b))},insertText:function(a){this.editor.focus();this.insertHtml(this.transformPlainTextToHtml(a),"text")},transformPlainTextToHtml:function(a){var b=this.editor.getSelection().getStartElement().hasAscendant("pre",!0)?CKEDITOR.ENTER_BR:this.editor.activeEnterMode;return CKEDITOR.tools.transformPlainTextToHtml(a,
+b)},insertHtml:function(a,b,c){var d=this.editor;d.focus();d.fire("saveSnapshot");c||(c=d.getSelection().getRanges()[0]);x(this,b||"html",a,c);c.select();n(this);this.editor.fire("afterInsertHtml",{})},insertHtmlIntoRange:function(a,b,c){x(this,c||"html",a,b);this.editor.fire("afterInsertHtml",{intoRange:b})},insertElement:function(a,b){var d=this.editor;d.focus();d.fire("saveSnapshot");var e=d.activeEnterMode,d=d.getSelection(),f=a.getName(),f=CKEDITOR.dtd.$block[f];b||(b=d.getRanges()[0]);this.insertElementIntoRange(a,
+b)&&(b.moveToPosition(a,CKEDITOR.POSITION_AFTER_END),f&&((f=a.getNext(function(a){return c(a)&&!A(a)}))&&f.type==CKEDITOR.NODE_ELEMENT&&f.is(CKEDITOR.dtd.$block)?f.getDtd()["#"]?b.moveToElementEditStart(f):b.moveToElementEditEnd(a):f||e==CKEDITOR.ENTER_BR||(f=b.fixBlock(!0,e==CKEDITOR.ENTER_DIV?"div":"p"),b.moveToElementEditStart(f))));d.selectRanges([b]);n(this)},insertElementIntoSelection:function(a){this.insertElement(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,
+e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return!1;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&(b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})?m(b):b.startContainer.is(CKEDITOR.dtd.$list)&&K(b));var g,v;if(f)for(;(g=b.getCommonAncestor(0,1))&&(v=CKEDITOR.dtd[g.getName()])&&(!v||!v[e]);)g.getName()in CKEDITOR.dtd.span?b.splitElement(g):b.checkStartOfBlock()&&b.checkEndOfBlock()?(b.setStartBefore(g),b.collapse(!0),g.remove()):b.splitBlock(d==CKEDITOR.ENTER_DIV?
+"div":"p",c.editable());b.insertNode(a);return!0},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.fixInitialSelection();"unloaded"==this.status&&(this.status="ready");this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();
+delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},fixInitialSelection:function(){function a(){var b=c.getDocument().$,d=b.getSelection(),e;a:if(d.anchorNode&&d.anchorNode==c.$)e=!0;else{if(CKEDITOR.env.webkit&&(e=c.getDocument().getActive())&&e.equals(c)&&!d.anchorNode){e=!0;break a}e=void 0}e&&(e=new CKEDITOR.dom.range(c),e.moveToElementEditStart(c),b=b.createRange(),b.setStart(e.startContainer.$,e.startOffset),b.collapse(!0),d.removeAllRanges(),
+d.addRange(b))}function b(){var a=c.getDocument().$,d=a.selection,e=c.getDocument().getActive();"None"==d.type&&e.equals(c)&&(d=new CKEDITOR.dom.range(c),a=a.body.createTextRange(),d.moveToElementEditStart(c),d=d.startContainer,d.type!=CKEDITOR.NODE_ELEMENT&&(d=d.getParent()),a.moveToElementText(d.$),a.collapse(!0),a.select())}var c=this;if(CKEDITOR.env.ie&&(9>CKEDITOR.env.version||CKEDITOR.env.quirks))this.hasFocus&&(this.focus(),b());else if(this.hasFocus)this.focus(),a();else this.once("focus",
+function(){a()},null,null,-999)},getHtmlFromRange:function(a){if(a.collapsed)return new CKEDITOR.dom.documentFragment(a.document);a={doc:this.getDocument(),range:a.clone()};z.eol.detect(a,this);z.bogus.exclude(a);z.cell.shrink(a);a.fragment=a.range.cloneContents();z.tree.rebuild(a,this);z.eol.fix(a,this);return new CKEDITOR.dom.documentFragment(a.fragment.$)},extractHtmlFromRange:function(a,b){var c=I,d={range:a,doc:a.document},e=this.getHtmlFromRange(a);if(a.collapsed)return a.optimize(),e;a.enlarge(CKEDITOR.ENLARGE_INLINE,
+1);c.table.detectPurge(d);d.bookmark=a.createBookmark();delete d.range;var f=this.editor.createRange();f.moveToPosition(d.bookmark.startNode,CKEDITOR.POSITION_BEFORE_START);d.targetBookmark=f.createBookmark();c.list.detectMerge(d,this);c.table.detectRanges(d,this);c.block.detectMerge(d,this);d.tableContentsRanges?(c.table.deleteRanges(d),a.moveToBookmark(d.bookmark),d.range=a):(a.moveToBookmark(d.bookmark),d.range=a,a.extractContents(c.detectExtractMerge(d)));a.moveToBookmark(d.targetBookmark);a.optimize();
+c.fixUneditableRangePosition(a);c.list.merge(d,this);c.table.purge(d,this);c.block.merge(d,this);if(b){c=a.startPath();if(d=a.checkStartOfBlock()&&a.checkEndOfBlock()&&c.block&&!a.root.equals(c.block)){a:{var d=c.block.getElementsByTag("span"),f=0,g;if(d)for(;g=d.getItem(f++);)if(!D(g)){d=!0;break a}d=!1}d=!d}d&&(a.moveToPosition(c.block,CKEDITOR.POSITION_BEFORE_START),c.block.remove())}else c.autoParagraph(this.editor,a),w(a.startContainer)&&a.startContainer.appendBogus();a.startContainer.mergeSiblings();
+return e},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||!1!==a.config.ignoreEmptyParagraph&&(b=b.replace(G,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,
+"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&"Control"==b.type||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode,a.data.range)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?this.attachClass("cke_editable_inline"):
+a.elementMode!=CKEDITOR.ELEMENT_MODE_REPLACE&&a.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO||this.attachClass("cke_editable_themed");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus=!1},null,null,-1);this.on("focus",function(){this.hasFocus=!0},null,null,-1);if(CKEDITOR.env.webkit)this.on("scroll",function(){a._.previousScrollTop=a.editable().$.scrollTop},null,
+null,-1);if(CKEDITOR.env.edge&&14<CKEDITOR.env.version){var d=function(){var b=a.editable();null!=a._.previousScrollTop&&b.getDocument().equals(CKEDITOR.document)&&(b.$.scrollTop=a._.previousScrollTop,a._.previousScrollTop=null,this.removeListener("scroll",d))};this.on("scroll",d)}a.focusManager.add(this);this.equals(CKEDITOR.document.getActive())&&(this.hasFocus=!0,a.once("contentDom",function(){a.focusManager.focus(this)},this));this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=
+this.getDocument();a.window=this.getWindow();var e=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var k=a.config.contentsLangDirection;this.getDirection(1)!=k&&this.changeAttr("dir",k);var h=CKEDITOR.getCss();if(h){var k=e.getHead(),u=k.getCustomData("stylesheet");u?h!=u.getText()&&(CKEDITOR.env.ie&&9>CKEDITOR.env.version?u.$.styleSheet.cssText=h:u.setText(h)):(h=e.appendStyleText(h),h=new CKEDITOR.dom.element(h.ownerNode||h.owningElement),k.setCustomData("stylesheet",
+h),h.data("cke-temp",1))}k=e.getCustomData("stylesheet_ref")||0;e.setCustomData("stylesheet_ref",k+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){a=a.data;var b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&2!=a.$.button&&b.isReadOnly()&&a.preventDefault()});var y={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey(),d;b=a.getSelection();if(0!==b.getRanges().length){if(c in
+y){var e,u=b.getRanges()[0],p=u.startPath(),C,t,k,c=8==c;CKEDITOR.env.ie&&11>CKEDITOR.env.version&&(e=b.getSelectedElement())||(e=g(b))?(a.fire("saveSnapshot"),u.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START),e.remove(),u.select(),a.fire("saveSnapshot"),d=1):u.collapsed&&((C=p.block)&&(k=C[c?"getPrevious":"getNext"](f))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&u[c?"checkStartOfBlock":"checkEndOfBlock"]()?(a.fire("saveSnapshot"),u[c?"checkEndOfBlock":"checkStartOfBlock"]()&&C.remove(),u["moveToElementEdit"+
+(c?"End":"Start")](k),u.select(),a.fire("saveSnapshot"),d=1):p.blockLimit&&p.blockLimit.is("td")&&(t=p.blockLimit.getAscendant("table"))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(k=t[c?"getPrevious":"getNext"](f))?(a.fire("saveSnapshot"),u["moveToElementEdit"+(c?"End":"Start")](k),u.checkStartOfBlock()&&u.checkEndOfBlock()?k.remove():u.select(),a.fire("saveSnapshot"),d=1):(t=p.contains(["td","th","caption"]))&&u.checkBoundaryOfElement(t,c?CKEDITOR.START:CKEDITOR.END)&&(d=1))}return!d}});
+a.blockless&&CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller&&this.attachListener(this,"keyup",function(b){b.data.getKeystroke()in y&&!this.getFirst(c)&&(this.appendBogus(),b=a.createRange(),b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START),b.select())});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return!1;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie&&!CKEDITOR.env.edge||this.attachListener(this,"mousedown",
+function(b){var c=b.data.getTarget();c.is("img","hr","input","textarea","select")&&!c.isReadOnly()&&(a.getSelection().selectElement(c),c.is("input","textarea","select")&&b.data.preventDefault())});CKEDITOR.env.edge&&this.attachListener(this,"mouseup",function(b){(b=b.data.getTarget())&&b.is("img")&&a.getSelection().selectElement(b)});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(2==b.data.$.button&&(b=b.data.getTarget(),!b.getOuterHtml().replace(G,""))){var c=a.createRange();
+c.moveToElementEditStart(b);c.select(!0)}});CKEDITOR.env.webkit&&(this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()}),this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()}));CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){if(a.readOnly)return!0;var c=b.data.domEvent.getKey();if(c in y&&(b=a.getSelection(),0!==b.getRanges().length)){var c=8==c,d=b.getRanges()[0];b=d.startPath();
+if(d.collapsed)a:{var e=b.block;if(e&&d[c?"checkStartOfBlock":"checkEndOfBlock"]()&&d.moveToClosestEditablePosition(e,!c)&&d.collapsed){if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var f=d.startContainer.getChild(d.startOffset-(c?1:0));if(f&&f.type==CKEDITOR.NODE_ELEMENT&&f.is("hr")){a.fire("saveSnapshot");f.remove();b=!0;break a}}d=d.startPath().block;if(!d||d&&d.contains(e))b=void 0;else{a.fire("saveSnapshot");var p;(p=(c?d:e).getBogus())&&p.remove();p=a.getSelection();f=p.createBookmarks();
+(c?e:d).moveChildren(c?d:e,!1);b.lastElement.mergeSiblings();q(e,d,!c);p.selectBookmarks(f);b=!0}}else b=!1}else c=d,p=b.block,d=c.endPath().block,p&&d&&!p.equals(d)?(a.fire("saveSnapshot"),(e=p.getBogus())&&e.remove(),c.enlarge(CKEDITOR.ENLARGE_INLINE),c.deleteContents(),d.getParent()&&(d.moveChildren(p,!1),b.lastElement.mergeSiblings(),q(p,d,!0)),c=a.getSelection().getRanges()[0],c.collapse(1),c.optimize(),""===c.startContainer.getHtml()&&c.startContainer.appendBogus(),c.select(),b=!0):b=!1;if(!b)return;
+a.getSelection().scrollIntoView();a.fire("saveSnapshot");return!1}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");--c?a.setCustomData("stylesheet_ref",c):(a.removeCustomData("stylesheet_ref"),b.removeCustomData("stylesheet").remove())}}this.editor.fire("contentDomUnload");
+delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;arguments.length&&(b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null));return b};CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))&&("false"!=a.getAttribute("contentEditable")&&a.data("cke-editable",a.hasAttribute("contenteditable")?
+"true":"1"),a.setAttribute("contentEditable",!1))});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();d&&!d.isLocked&&(d=c.checkDirty(),c.fire("lockSnapshot"),a(b),c.fire("unlockSnapshot"),!d&&c.resetDirty())}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;
+if(d&&(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents"))){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+e+'" class\x3d"cke_voice_label"\x3e'+d+"\x3c/span\x3e");c.append(d);a.changeAttr("aria-describedby",e)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");f=CKEDITOR.dom.walker.whitespaces(!0);D=CKEDITOR.dom.walker.bookmark(!1,!0);w=CKEDITOR.dom.walker.empty();
+A=CKEDITOR.dom.walker.bogus();G=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;x=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,u,g,y=[],k=d.range.startContainer;e=d.range.startPath();for(var k=v[k.getName()],h=0,B=c.getChildren(),n=B.count(),L=-1,q=-1,E=0,H=e.contains(v.$list);h<n;++h)e=B.getItem(h),a(e)?(u=e.getName(),H&&u in CKEDITOR.dtd.$list?y=y.concat(b(e,d)):(g=!!k[u],
+"br"!=u||!e.data("cke-eol")||h&&h!=n-1||(E=(f=h?y[h-1].node:B.getItem(h+1))&&(!a(f)||!f.is("br")),f=f&&a(f)&&v.$block[f.getName()]),-1!=L||g||(L=h),g||(q=h),y.push({isElement:1,isLineBreak:E,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:u,allowed:g}),f=E=0)):y.push({isElement:0,node:e,allowed:1});-1<L&&(y[L].firstNotAllowed=1);-1<q&&(y[q].lastNotAllowed=1);return y}function d(b,c){var e=[],f=b.getChildren(),u=f.count(),g,y=0,k=v[c],h=!b.is(v.$inline)||b.is("br");for(h&&e.push(" ");y<u;y++)g=
+f.getItem(y),a(g)&&!g.is(k)?e=e.concat(d(g,c)):e.push(g);h&&e.push(" ");return e}function e(b){return a(b.startContainer)&&b.startContainer.getChild(b.startOffset-1)}function f(b){return b&&a(b)&&(b.is(v.$removeEmpty)||b.is("a")&&!b.isBlockBoundary())}function u(b,c,d,e){var f=b.clone(),g,v;f.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);(g=(new CKEDITOR.dom.walker(f)).next())&&a(g)&&B[g.getName()]&&(v=g.getPrevious())&&a(v)&&!v.getParent().equals(b.startContainer)&&d.contains(v)&&e.contains(g)&&g.isIdentical(v)&&
+(g.moveChildren(v),g.remove(),u(b,c,d,e))}function g(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br"))return b.remove(),1}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,b[b.length-1]);f&&d(f,b[0])&&(c.setEnd(c.endContainer,c.endOffset-1),c.collapse())}var v=CKEDITOR.dtd,B={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},L={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},
+v.$inline);delete n.br;return function(B,p,C,t){var F=B.editor,N=!1;"unfiltered_html"==p&&(p="html",N=!0);if(!t.checkReadOnly()){var q=(new CKEDITOR.dom.elementPath(t.startContainer,t.root)).blockLimit||t.root;B={type:p,dontFilter:N,editable:B,editor:F,range:t,blockLimit:q,mergeCandidates:[],zombies:[]};p=B.range;t=B.mergeCandidates;var m,w;"text"==B.type&&p.shrink(CKEDITOR.SHRINK_ELEMENT,!0,!1)&&(m=CKEDITOR.dom.element.createFromHtml("\x3cspan\x3e\x26nbsp;\x3c/span\x3e",p.document),p.insertNode(m),
+p.setStartAfter(m));N=new CKEDITOR.dom.elementPath(p.startContainer);B.endPath=q=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){var F=q.block||q.blockLimit,x=p.getCommonAncestor();F&&!F.equals(x)&&!F.contains(x)&&p.checkEndOfBlock()&&B.zombies.push(F);p.deleteContents()}for(;(w=e(p))&&a(w)&&w.isBlockBoundary()&&N.contains(w);)p.moveToPosition(w,CKEDITOR.POSITION_BEFORE_END);u(p,B.blockLimit,N,q);m&&(p.setEndBefore(m),p.collapse(),m.remove());m=p.startPath();if(F=m.contains(f,!1,1))p.splitElement(F),
+B.inlineStylesRoot=F,B.inlineStylesPeak=m.lastElement;m=p.createBookmark();(F=m.startNode.getPrevious(c))&&a(F)&&f(F)&&t.push(F);(F=m.startNode.getNext(c))&&a(F)&&f(F)&&t.push(F);for(F=m.startNode;(F=F.getParent())&&f(F);)t.push(F);p.moveToBookmark(m);if(m=C){m=B.range;if("text"==B.type&&B.inlineStylesRoot){w=B.inlineStylesPeak;p=w.getDocument().createText("{cke-peak}");for(t=B.inlineStylesRoot.getParent();!w.equals(t);)p=p.appendTo(w.clone()),w=w.getParent();C=p.getOuterHtml().split("{cke-peak}").join(C)}w=
+B.blockLimit.getName();if(/^\s+|\s+$/.test(C)&&"span"in CKEDITOR.dtd[w]){var D='\x3cspan data-cke-marker\x3d"1"\x3e\x26nbsp;\x3c/span\x3e';C=D+C+D}C=B.editor.dataProcessor.toHtml(C,{context:null,fixForBody:!1,protectedWhitespaces:!!D,dontFilter:B.dontFilter,filter:B.editor.activeFilter,enterMode:B.editor.activeEnterMode});w=m.document.createElement("body");w.setHtml(C);D&&(w.getFirst().remove(),w.getLast().remove());if((D=m.startPath().block)&&(1!=D.getChildCount()||!D.getBogus()))a:{var A;if(1==
+w.getChildCount()&&a(A=w.getFirst())&&A.is(L)&&!A.hasAttribute("contenteditable")){D=A.getElementsByTag("*");m=0;for(t=D.count();m<t;m++)if(p=D.getItem(m),!p.is(n))break a;A.moveChildren(A.getParent(1));A.remove()}}B.dataWrapper=w;m=C}if(m){A=B.range;m=A.document;var M;w=B.blockLimit;t=0;var z,D=[],G,S;C=F=0;var I,K;p=A.startContainer;var N=B.endPath.elements[0],W,q=N.getPosition(p),x=!!N.getCommonAncestor(p)&&q!=CKEDITOR.POSITION_IDENTICAL&&!(q&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);
+p=b(B.dataWrapper,B);for(g(p,A);t<p.length;t++){q=p[t];if(M=q.isLineBreak){M=A;I=w;var R=void 0,Z=void 0;q.hasBlockSibling?M=1:(R=M.startContainer.getAscendant(v.$block,1))&&R.is({div:1,p:1})?(Z=R.getPosition(I),Z==CKEDITOR.POSITION_IDENTICAL||Z==CKEDITOR.POSITION_CONTAINS?M=0:(I=M.splitElement(R),M.moveToPosition(I,CKEDITOR.POSITION_AFTER_START),M=1)):M=0}if(M)C=0<t;else{M=A.startPath();!q.isBlock&&h(B.editor,M.block,M.blockLimit)&&(S=k(B.editor))&&(S=m.createElement(S),S.appendBogus(),A.insertNode(S),
+CKEDITOR.env.needsBrFiller&&(z=S.getBogus())&&z.remove(),A.moveToPosition(S,CKEDITOR.POSITION_BEFORE_END));if((M=A.startPath().block)&&!M.equals(G)){if(z=M.getBogus())z.remove(),D.push(M);G=M}q.firstNotAllowed&&(F=1);if(F&&q.isElement){M=A.startContainer;for(I=null;M&&!v[M.getName()][q.name];){if(M.equals(w)){M=null;break}I=M;M=M.getParent()}if(M)I&&(K=A.splitElement(I),B.zombies.push(K),B.zombies.push(I));else{I=w.getName();W=!t;M=t==p.length-1;I=d(q.node,I);for(var R=[],Z=I.length,aa=0,ca=void 0,
+da=0,T=-1;aa<Z;aa++)ca=I[aa]," "==ca?(da||W&&!aa||(R.push(new CKEDITOR.dom.text(" ")),T=R.length),da=1):(R.push(ca),da=0);M&&T==R.length&&R.pop();W=R}}if(W){for(;M=W.pop();)A.insertNode(M);W=0}else A.insertNode(q.node);q.lastNotAllowed&&t<p.length-1&&((K=x?N:K)&&A.setEndAt(K,CKEDITOR.POSITION_AFTER_START),F=0);A.collapse()}}1!=p.length?z=!1:(z=p[0],z=z.isElement&&"false"==z.node.getAttribute("contenteditable"));z&&(C=!0,M=p[0].node,A.setStartAt(M,CKEDITOR.POSITION_BEFORE_START),A.setEndAt(M,CKEDITOR.POSITION_AFTER_END));
+B.dontMoveCaret=C;B.bogusNeededBlocks=D}z=B.range;var Q;K=B.bogusNeededBlocks;for(W=z.createBookmark();G=B.zombies.pop();)G.getParent()&&(S=z.clone(),S.moveToElementEditStart(G),S.removeEmptyBlocksAtEnd());if(K)for(;G=K.pop();)CKEDITOR.env.needsBrFiller?G.appendBogus():G.append(z.document.createText(" "));for(;G=B.mergeCandidates.pop();)G.mergeSiblings();z.moveToBookmark(W);if(!B.dontMoveCaret){for(G=e(z);G&&a(G)&&!G.is(v.$empty);){if(G.isBlockBoundary())z.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END);
+else{if(f(G)&&G.getHtml().match(/(\s|&nbsp;)$/g)){Q=null;break}Q=z.clone();Q.moveToPosition(G,CKEDITOR.POSITION_BEFORE_END)}G=G.getLast(c)}Q&&z.moveToRange(Q)}}}}();m=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$tableContent)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT};return b}function b(a,c,d){c=a.getDocument().createElement(c);a.append(c,d);return c}function c(a){var b=a.count(),
+d;for(b;0<b--;)d=a.getItem(b),CKEDITOR.tools.trim(d.getHtml())||(d.appendBogus(),CKEDITOR.env.ie&&9>CKEDITOR.env.version&&d.getChildCount()&&d.getFirst().remove())}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=!1;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();f||(f=d.clone(),f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END),f=a(f).lastForward(),g=!0);f||(f=e);f.is("table")?(d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START),
+d.collapse(!0),f.remove()):(f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g)),f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g)),(e=f.getBogus())&&e.remove(),d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END))}}();K=function(){function a(b){b=new CKEDITOR.dom.walker(b);b.guard=function(a,b){if(b)return!1;if(a.type==CKEDITOR.NODE_ELEMENT)return a.is(CKEDITOR.dtd.$list)||a.is(CKEDITOR.dtd.$listItem)};b.evaluator=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&
+a.is(CKEDITOR.dtd.$listItem)};return b}return function(b){var c=b.startContainer,d=!1,e;e=b.clone();e.setStart(c,0);e=a(e).lastBackward();e||(e=b.clone(),e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END),e=a(e).lastForward(),d=!0);e||(e=c);e.is(CKEDITOR.dtd.$list)?(b.setStartAt(e,CKEDITOR.POSITION_BEFORE_START),b.collapse(!0),e.remove()):((c=e.getBogus())&&c.remove(),b.moveToPosition(e,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END),b.select())}}();z={eol:{detect:function(a,b){var c=a.range,
+d=c.clone(),e=c.clone(),f=new CKEDITOR.dom.elementPath(c.startContainer,b),g=new CKEDITOR.dom.elementPath(c.endContainer,b);d.collapse(1);e.collapse();f.block&&d.checkBoundaryOfElement(f.block,CKEDITOR.END)&&(c.setStartAfter(f.block),a.prependEolBr=1);g.block&&e.checkBoundaryOfElement(g.block,CKEDITOR.START)&&(c.setEndBefore(g.block),a.appendEolBr=1)},fix:function(a,b){var c=b.getDocument(),d;a.appendEolBr&&(d=this.createEolBr(c),a.fragment.append(d));!a.prependEolBr||d&&!d.getPrevious()||a.fragment.append(this.createEolBr(c),
+1)},createEolBr:function(a){return a.createElement("br",{attributes:{"data-cke-eol":1}})}},bogus:{exclude:function(a){var b=a.range.getBoundaryNodes(),c=b.startNode,b=b.endNode;!b||!A(b)||c&&c.equals(b)||a.range.setEndBefore(b)}},tree:{rebuild:function(a,b){var c=a.range,d=c.getCommonAncestor(),e=new CKEDITOR.dom.elementPath(d,b),f=new CKEDITOR.dom.elementPath(c.startContainer,b),c=new CKEDITOR.dom.elementPath(c.endContainer,b),g;d.type==CKEDITOR.NODE_TEXT&&(d=d.getParent());if(e.blockLimit.is({tr:1,
+table:1})){var v=e.contains("table").getParent();g=function(a){return!a.equals(v)}}else if(e.block&&e.block.is(CKEDITOR.dtd.$listItem)&&(f=f.contains(CKEDITOR.dtd.$list),c=c.contains(CKEDITOR.dtd.$list),!f.equals(c))){var k=e.contains(CKEDITOR.dtd.$list).getParent();g=function(a){return!a.equals(k)}}g||(g=function(a){return!a.equals(e.block)&&!a.equals(e.blockLimit)});this.rebuildFragment(a,b,d,g)},rebuildFragment:function(a,b,c,d){for(var e;c&&!c.equals(b)&&d(c);)e=c.clone(0,1),a.fragment.appendTo(e),
+a.fragment=e,c=c.getParent()}},cell:{shrink:function(a){a=a.range;var b=a.startContainer,c=a.endContainer,d=a.startOffset,e=a.endOffset;b.type==CKEDITOR.NODE_ELEMENT&&b.equals(c)&&b.is("tr")&&++d==e&&a.shrink(CKEDITOR.SHRINK_TEXT)}}};I=function(){function a(b,c){var d=b.getParent();if(d.is(CKEDITOR.dtd.$inline))b[c?"insertBefore":"insertAfter"](d)}function b(c,d,e){a(d);a(e,1);for(var f;f=e.getNext();)f.insertAfter(d),d=f;w(c)&&c.remove()}function c(a,b){var d=new CKEDITOR.dom.range(a);d.setStartAfter(b.startNode);
+d.setEndBefore(b.endNode);return d}return{list:{detectMerge:function(a,b){var d=c(b,a.bookmark),e=d.startPath(),f=d.endPath(),g=e.contains(CKEDITOR.dtd.$list),k=f.contains(CKEDITOR.dtd.$list);a.mergeList=g&&k&&g.getParent().equals(k.getParent())&&!g.equals(k);a.mergeListItems=e.block&&f.block&&e.block.is(CKEDITOR.dtd.$listItem)&&f.block.is(CKEDITOR.dtd.$listItem);if(a.mergeList||a.mergeListItems)d=d.clone(),d.setStartBefore(a.bookmark.startNode),d.setEndAfter(a.bookmark.endNode),a.mergeListBookmark=
+d.createBookmark()},merge:function(a,c){if(a.mergeListBookmark){var d=a.mergeListBookmark.startNode,e=a.mergeListBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c);if(a.mergeList){var k=f.contains(CKEDITOR.dtd.$list),h=g.contains(CKEDITOR.dtd.$list);k.equals(h)||(h.moveChildren(k),h.remove())}a.mergeListItems&&(f=f.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$listItem),f.equals(g)||b(g,d,e));d.remove();e.remove()}}},block:{detectMerge:function(a,
+b){if(!a.tableContentsRanges&&!a.mergeListBookmark){var c=new CKEDITOR.dom.range(b);c.setStartBefore(a.bookmark.startNode);c.setEndAfter(a.bookmark.endNode);a.mergeBlockBookmark=c.createBookmark()}},merge:function(a,c){if(a.mergeBlockBookmark&&!a.purgeTableBookmark){var d=a.mergeBlockBookmark.startNode,e=a.mergeBlockBookmark.endNode,f=new CKEDITOR.dom.elementPath(d,c),g=new CKEDITOR.dom.elementPath(e,c),f=f.block,g=g.block;f&&g&&!f.equals(g)&&b(g,d,e);d.remove();e.remove()}}},table:function(){function a(c){var e=
+[],f,g=new CKEDITOR.dom.walker(c),k=c.startPath().contains(d),h=c.endPath().contains(d),p={};g.guard=function(a,g){if(a.type==CKEDITOR.NODE_ELEMENT){var F="visited_"+(g?"out":"in");if(a.getCustomData(F))return;CKEDITOR.dom.element.setMarker(p,a,F,1)}if(g&&k&&a.equals(k))f=c.clone(),f.setEndAt(k,CKEDITOR.POSITION_BEFORE_END),e.push(f);else if(!g&&h&&a.equals(h))f=c.clone(),f.setStartAt(h,CKEDITOR.POSITION_AFTER_START),e.push(f);else{if(F=!g)F=a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&(!k||b(a,k))&&(!h||
+b(a,h));F&&(f=c.clone(),f.selectNodeContents(a),e.push(f))}};g.lastForward();CKEDITOR.dom.element.clearAllMarkers(p);return e}function b(a,c){var d=CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED,e=a.getPosition(c);return e===CKEDITOR.POSITION_IDENTICAL?!1:0===(e&d)}var d={td:1,th:1,caption:1};return{detectPurge:function(a){var b=a.range,c=b.clone();c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var c=new CKEDITOR.dom.walker(c),e=0;c.evaluator=function(a){a.type==CKEDITOR.NODE_ELEMENT&&a.is(d)&&++e};
+c.checkForward();if(1<e){var c=b.startPath().contains("table"),f=b.endPath().contains("table");c&&f&&b.checkBoundaryOfElement(c,CKEDITOR.START)&&b.checkBoundaryOfElement(f,CKEDITOR.END)&&(b=a.range.clone(),b.setStartBefore(c),b.setEndAfter(f),a.purgeTableBookmark=b.createBookmark())}},detectRanges:function(e,f){var g=c(f,e.bookmark),k=g.clone(),h,l,p=g.getCommonAncestor();p.is(CKEDITOR.dtd.$tableContent)&&!p.is(d)&&(p=p.getAscendant("table",!0));l=p;p=new CKEDITOR.dom.elementPath(g.startContainer,
+l);l=new CKEDITOR.dom.elementPath(g.endContainer,l);p=p.contains("table");l=l.contains("table");if(p||l)p&&l&&b(p,l)?(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),k=g.clone(),k.setEndAt(p,CKEDITOR.POSITION_AFTER_END),h=g.clone(),h.setStartAt(l,CKEDITOR.POSITION_BEFORE_START),h=a(k).concat(a(h))):p?l||(e.tableSurroundingRange=k,k.setStartAt(p,CKEDITOR.POSITION_AFTER_END),g.setEndAt(p,CKEDITOR.POSITION_AFTER_END)):(e.tableSurroundingRange=
+k,k.setEndAt(l,CKEDITOR.POSITION_BEFORE_START),g.setStartAt(l,CKEDITOR.POSITION_AFTER_START)),e.tableContentsRanges=h?h:a(g)},deleteRanges:function(a){for(var b;b=a.tableContentsRanges.pop();)b.extractContents(),w(b.startContainer)&&b.startContainer.appendBogus();a.tableSurroundingRange&&a.tableSurroundingRange.extractContents()},purge:function(a){if(a.purgeTableBookmark){var b=a.doc,c=a.range.clone(),b=b.createElement("p");b.insertBefore(a.purgeTableBookmark.startNode);c.moveToBookmark(a.purgeTableBookmark);
+c.deleteContents();a.range.moveToPosition(b,CKEDITOR.POSITION_AFTER_START)}}}}(),detectExtractMerge:function(a){return!(a.range.startPath().contains(CKEDITOR.dtd.$listItem)&&a.range.endPath().contains(CKEDITOR.dtd.$listItem))},fixUneditableRangePosition:function(a){a.startContainer.getDtd()["#"]||a.moveToClosestEditablePosition(null,!0)},autoParagraph:function(a,b){var c=b.startPath(),d;h(a,c.block,c.blockLimit)&&(d=k(a))&&(d=b.document.createElement(d),d.appendBogus(),b.insertNode(d),b.moveToPosition(d,
+CKEDITOR.POSITION_AFTER_START))}}}()})();
+(function(){function a(a,b){if(0===a.length)return!1;var c,d;if((c=!b&&1===a.length)&&!(c=a[0].collapsed)){var e=a[0];c=e.startContainer.getAscendant({td:1,th:1},!0);var f=e.endContainer.getAscendant({td:1,th:1},!0);d=CKEDITOR.tools.trim;c&&c.equals(f)&&!c.findOne("td, th, tr, tbody, table")?(e=e.cloneContents(),c=e.getFirst()?d(e.getFirst().getText())!==d(c.getText()):!0):c=!1}if(c)return!1;for(d=0;d<a.length;d++)if(c=a[d]._getTableElement(),!c)return!1;return!0}function d(a){function b(a){a=a.find("td, th");
+var c=[],d;for(d=0;d<a.count();d++)c.push(a.getItem(d));return c}var c=[],d,e;for(e=0;e<a.length;e++)d=a[e]._getTableElement(),d.is&&d.is({td:1,th:1})?c.push(d):c=c.concat(b(d));return c}function b(a){a=d(a);var b="",c=[],e,f;for(f=0;f<a.length;f++)e&&!e.equals(a[f].getAscendant("tr"))?(b+=c.join("\t")+"\n",e=a[f].getAscendant("tr"),c=[]):0===f&&(e=a[f].getAscendant("tr")),c.push(a[f].getText());return b+=c.join("\t")}function c(a){var c=this.root.editor,d=c.getSelection(1);this.reset();I=!0;d.root.once("selectionchange",
+function(a){a.cancel()},null,null,0);d.selectRanges([a[0]]);d=this._.cache;d.ranges=new CKEDITOR.dom.rangeList(a);d.type=CKEDITOR.SELECTION_TEXT;d.selectedElement=a[0]._getTableElement();d.selectedText=b(a);d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;I=!1;this.root.fire("selectionchange")}function e(){var b=this._.fakeSelection,c;if(b){c=this.getSelection(1);var d;if(!(d=!c)&&(d=!c.isHidden())){d=b;var e=c.getRanges(),f=d.getRanges(),g=e.length&&e[0]._getTableElement()&&e[0]._getTableElement().getAscendant("table",
+!0),k=f.length&&f[0]._getTableElement()&&f[0]._getTableElement().getAscendant("table",!0),p=1===e.length&&e[0]._getTableElement()&&e[0]._getTableElement().is("table"),h=1===f.length&&f[0]._getTableElement()&&f[0]._getTableElement().is("table"),t=1===e.length&&e[0].collapsed,f=a(e,!!CKEDITOR.env.webkit)&&a(f);g=g&&k?g.equals(k)||k.contains(g):!1;g&&(t||f)?(p&&!h&&d.selectRanges(e),d=!0):d=!1;d=!d}d&&(b.reset(),b=0)}if(!b&&(b=c||this.getSelection(1),!b||b.getType()==CKEDITOR.SELECTION_NONE))return;
+this.fire("selectionCheck",b);c=this.elementPath();c.compare(this._.selectionPreviousPath)||(d=this._.selectionPreviousPath&&this._.selectionPreviousPath.blockLimit.equals(c.blockLimit),CKEDITOR.env.webkit&&!d&&(this._.previousActive=this.document.getActive()),this._.selectionPreviousPath=c,this.fire("selectionChange",{selection:b,path:c}))}function g(){r=!0;l||(h.call(this),l=CKEDITOR.tools.setTimeout(h,200,this))}function h(){l=null;r&&(CKEDITOR.tools.setTimeout(e,0,this),r=!1)}function k(a){return J(a)||
+a.type==CKEDITOR.NODE_ELEMENT&&!a.is(CKEDITOR.dtd.$empty)?!0:!1}function n(a){function b(c,d){return c&&c.type!=CKEDITOR.NODE_TEXT?a.clone()["moveToElementEdit"+(d?"End":"Start")](c):!1}if(!(a.root instanceof CKEDITOR.editable))return!1;var c=a.startContainer,d=a.getPreviousNode(k,null,c),e=a.getNextNode(k,null,c);return b(d)||b(e,1)||!(d||e||c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?!0:!1}function q(a){f(a,!1);var b=a.getDocument().createText(K);a.setCustomData("cke-fillingChar",
+b);return b}function f(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(!1!==b){var d=a.getDocument().getSelection().getNative(),e=d&&"None"!=d.type&&d.getRangeAt(0),f=K.length;if(c.getLength()>f&&e&&e.intersectsNode(c.$)){var g=[{node:d.anchorNode,offset:d.anchorOffset},{node:d.focusNode,offset:d.focusOffset}];d.anchorNode==c.$&&d.anchorOffset>f&&(g[0].offset-=f);d.focusNode==c.$&&d.focusOffset>f&&(g[1].offset-=f)}}c.setText(D(c.getText(),1));g&&(c=a.getDocument().$,d=c.getSelection(),
+c=c.createRange(),c.setStart(g[0].node,g[0].offset),c.collapse(!0),d.removeAllRanges(),d.addRange(c),d.extend(g[1].node,g[1].offset))}}function D(a,b){return b?a.replace(z,function(a,b){return b?" ":""}):a.replace(K,"")}function w(a,b){var c=CKEDITOR.dom.element.createFromHtml('\x3cdiv data-cke-hidden-sel\x3d"1" data-cke-temp\x3d"1" style\x3d"'+(CKEDITOR.env.ie&&14>CKEDITOR.env.version?"display:none":"position:fixed;top:0;left:-1000px")+'"\x3e'+(b||"\x26nbsp;")+"\x3c/div\x3e",a.document);a.fire("lockSnapshot");
+a.editable().append(c);var d=a.getSelection(1),e=a.createRange(),f=d.root.on("selectionchange",function(a){a.cancel()},null,null,0);e.setStartAt(c,CKEDITOR.POSITION_AFTER_START);e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);d.selectRanges([e]);f.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=c}function A(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];1==e.length&&f.collapsed&&(d=f[38>d?"getPreviousEditableNode":
+"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&"false"==d.getAttribute("contenteditable")&&(a.getSelection().fake(d),c.data.preventDefault(),c.cancel())}}}function G(a){for(var b=0;b<a.length;b++){var c=a[b];c.getCommonAncestor().isReadOnly()&&a.splice(b,1);if(!c.collapsed){if(c.startContainer.isReadOnly())for(var d=c.startContainer,e;d&&!((e=d.type==CKEDITOR.NODE_ELEMENT)&&d.is("body")||!d.isReadOnly());)e&&"false"==d.getAttribute("contentEditable")&&c.setStartAfter(d),d=d.getParent();
+d=c.startContainer;e=c.endContainer;var f=c.startOffset,g=c.endOffset,p=c.clone();d&&d.type==CKEDITOR.NODE_TEXT&&(f>=d.getLength()?p.setStartAfter(d):p.setStartBefore(d));e&&e.type==CKEDITOR.NODE_TEXT&&(g?p.setEndAfter(e):p.setEndBefore(e));d=new CKEDITOR.dom.walker(p);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);d.getPosition(p.endContainer)&CKEDITOR.POSITION_CONTAINS||(e.setStartAfter(d),e.collapsed||a.splice(b+
+1,0,e));return!0}return!1};d.next()}}return a}var x="function"!=typeof window.getSelection,m=1,K=CKEDITOR.tools.repeat("​",7),z=new RegExp(K+"( )?","g"),I,l,r,J=CKEDITOR.dom.walker.invisible(1),H=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return!1}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;(e=d.moveToClosestEditablePosition(b.selected,a))||(e=d.moveToClosestEditablePosition(b.selected,
+!a));e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();e||(d.moveToElementEditablePosition(c.editable()),c.getSelection().selectRanges([d]));c.fire("saveSnapshot");return!1}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(a){function b(){var a=c.getSelection();a&&a.removeAllRanges()}var c=a.editor;c.on("contentDom",function(){function a(){q=new CKEDITOR.dom.selection(c.getSelection());q.lock()}function b(){p.removeListener("mouseup",
+b);u.removeListener("mouseup",b);var a=CKEDITOR.document.$.selection,c=a.createRange();"None"!=a.type&&c.parentElement()&&c.parentElement().ownerDocument==k.$&&c.select()}function d(a){if(CKEDITOR.env.ie){var b=(a=a.getRanges()[0])?a.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&("false"==a.getAttribute("contenteditable")||"true"==a.getAttribute("contenteditable"))},!0):null;return a&&"false"==b.getAttribute("contenteditable")&&b}}var k=c.document,p=CKEDITOR.document,
+h=c.editable(),t=k.getBody(),u=k.getDocumentElement(),l=h.isInline(),y,q;CKEDITOR.env.gecko&&h.attachListener(h,"focus",function(a){a.removeListener();0!==y&&(a=c.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==h.$&&(a=c.createRange(),a.moveToElementEditStart(h),a.select())},null,null,-2);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){y&&CKEDITOR.env.webkit&&(y=c._.previousActive&&c._.previousActive.equals(k.getActive()))&&null!=c._.previousScrollTop&&c._.previousScrollTop!=
+h.$.scrollTop&&(h.$.scrollTop=c._.previousScrollTop);c.unlockSelection(y);y=0},null,null,-1);h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie||l)x?h.attachListener(h,"beforedeactivate",a,null,null,-1):h.attachListener(c,"selectionCheck",a,null,null,-1),h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){c.lockSelection(q);y=1},null,null,-1),h.attachListener(h,"mousedown",function(){y=0});if(CKEDITOR.env.ie&&!l){var n;h.attachListener(h,"mousedown",function(a){2==
+a.data.$.button&&((a=c.document.getSelection())&&a.getType()!=CKEDITOR.SELECTION_NONE||(n=c.window.getScrollPosition()))});h.attachListener(h,"mouseup",function(a){2==a.data.$.button&&n&&(c.document.$.documentElement.scrollLeft=n.x,c.document.$.documentElement.scrollTop=n.y);n=null});if("BackCompat"!=k.$.compatMode){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat){var m,w;u.on("mousedown",function(a){function b(a){a=a.data.$;if(m){var c=t.$.createTextRange();try{c.moveToPoint(a.clientX,a.clientY)}catch(d){}m.setEndPoint(0>
+w.compareEndPoints("StartToStart",c)?"EndToEnd":"StartToStart",c);m.select()}}function c(){u.removeListener("mousemove",b);p.removeListener("mouseup",c);u.removeListener("mouseup",c);m.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<u.$.clientHeight&&a.$.x<u.$.clientWidth){m=t.$.createTextRange();try{m.moveToPoint(a.$.clientX,a.$.clientY)}catch(d){}w=m.duplicate();u.on("mousemove",b);p.on("mouseup",c);u.on("mouseup",c)}})}if(7<CKEDITOR.env.version&&11>CKEDITOR.env.version)u.on("mousedown",function(a){a.data.getTarget().is("html")&&
+(p.on("mouseup",b),u.on("mouseup",b))})}}h.attachListener(h,"selectionchange",e,c);h.attachListener(h,"keyup",g,c);h.attachListener(h,"keydown",function(a){var b=this.getSelection(1);d(b)&&(b.selectElement(d(b)),a.data.preventDefault())},c);h.attachListener(h,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){c.forceNextSelectionCheck();c.selectionChange(1)});if(l&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var r;h.attachListener(h,"mousedown",function(){r=1});h.attachListener(k.getDocumentElement(),
+"mouseup",function(){r&&g.call(c);r=0})}else h.attachListener(CKEDITOR.env.ie?h:k.getDocumentElement(),"mouseup",g,c);CKEDITOR.env.webkit&&h.attachListener(k,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:h.hasFocus&&f(h)}},null,null,-1);h.attachListener(h,"keydown",A(c),null,null,-1)});c.on("setData",function(){c.unlockSelection();CKEDITOR.env.webkit&&b()});c.on("contentDomUnload",function(){c.unlockSelection()});if(CKEDITOR.env.ie9Compat)c.on("beforeDestroy",
+b,null,null,9);c.on("dataReady",function(){delete c._.fakeSelection;delete c._.hiddenSelectionContainer;c.selectionChange(1)});c.on("loadSnapshot",function(){var a=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT),b=c.editable().getLast(a);b&&b.hasAttribute("data-cke-hidden-sel")&&(b.remove(),CKEDITOR.env.gecko&&(a=c.editable().getFirst(a))&&a.is("br")&&a.getAttribute("_moz_editor_bogus_node")&&a.remove())},null,null,100);c.on("key",function(a){if("wysiwyg"==c.mode){var b=c.getSelection();if(b.isFake){var d=
+H[a.data.keyCode];if(d)return d({editor:c,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});if(CKEDITOR.env.webkit)CKEDITOR.on("instanceReady",function(a){var b=a.editor;b.on("selectionChange",function(){var a=b.editable(),c=a.getCustomData("cke-fillingChar");c&&(c.getCustomData("ready")?(f(a),a.editor.fire("selectionCheck")):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){f(b.editable())},null,null,-1);b.on("getSnapshot",function(a){a.data&&(a.data=D(a.data))},
+b,null,20);b.on("toDataFormat",function(a){a.data.dataValue=D(a.data.dataValue)},null,null,0)});CKEDITOR.editor.prototype.selectionChange=function(a){(a?e:g).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){return!this._.savedSelection&&!this._.fakeSelection||a?(a=this.editable())&&"wysiwyg"==this.mode?new CKEDITOR.dom.selection(a):null:this._.savedSelection||this._.fakeSelection};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);return a.getType()!=CKEDITOR.SELECTION_NONE?
+(!a.isLocked&&a.lock(),this._.savedSelection=a,!0):!1};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;return b?(b.unlock(a),delete this._.savedSelection,!0):!1};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():
+new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection){var b=a;a=a.root}var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:m++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b)return CKEDITOR.tools.extend(this._.cache,b._.cache),
+this.isFake=b.isFake,this.isLocked=b.isLocked,this;a=this.getNative();var d,e;if(a)if(a.getRangeAt)d=(e=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(e.commonAncestorContainer);else{try{e=a.createRange()}catch(f){}d=e&&CKEDITOR.dom.element.get(e.item&&e.item(0)||e.parentElement())}if(!d||d.type!=CKEDITOR.NODE_ELEMENT&&d.type!=CKEDITOR.NODE_TEXT||!this.root.equals(d)&&!this.root.contains(d))this._.cache.type=CKEDITOR.SELECTION_NONE,this._.cache.startElement=null,this._.cache.selectedElement=
+null,this._.cache.selectedText="",this._.cache.ranges=new CKEDITOR.dom.rangeList;return this};var E={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.tools.extend(CKEDITOR.dom.selection,{_removeFillingCharSequenceString:D,_createFillingCharSequenceNode:q,FILLING_CHAR_SEQUENCE:K});CKEDITOR.dom.selection.prototype={getNative:function(){return void 0!==this._.cache.nativeSel?this._.cache.nativeSel:this._.cache.nativeSel=
+x?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:x?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;"Text"==d&&(b=CKEDITOR.SELECTION_TEXT);"Control"==d&&(b=CKEDITOR.SELECTION_ELEMENT);c.createRange().parentElement()&&(b=CKEDITOR.SELECTION_TEXT)}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;
+else if(1==c.rangeCount){var c=c.getRangeAt(0),d=c.startContainer;d==c.endContainer&&1==d.nodeType&&1==c.endOffset-c.startOffset&&E[d.childNodes[c.startOffset].nodeName.toLowerCase()]&&(b=CKEDITOR.SELECTION_ELEMENT)}return a.type=b},getRanges:function(){var a=x?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,f,g,h=b.duplicate(),k=0,
+l=e.length-1,u=-1,q,n;k<=l;)if(u=Math.floor((k+l)/2),f=e[u],h.moveToElementText(f),q=h.compareEndPoints("StartToStart",b),0<q)l=u-1;else if(0>q)k=u+1;else return{container:d,offset:a(f)};if(-1==u||u==e.length-1&&0>q){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h)return f=e[e.length-1],f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length};for(d=e.length;0<h&&0<d;)g=e[--d],g.nodeType==
+CKEDITOR.NODE_TEXT&&(n=g,h-=g.nodeValue.length);return{container:n,offset:-h}}h.collapse(0<q?!0:!1);h.setEndPoint(0<q?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(f)+(0<q?0:1)};for(;0<h;)try{g=f[0<q?"previousSibling":"nextSibling"],g.nodeType==CKEDITOR.NODE_TEXT&&(h-=g.nodeValue.length,n=g),f=g}catch(m){return{container:d,offset:a(f)}}return{container:n,offset:0<q?-h:n.nodeValue.length+h}};return function(){var a=this.getNative(),c=a&&
+a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT)return a=new CKEDITOR.dom.range(this.root),d=b(c,!0),a.setStart(new CKEDITOR.dom.node(d.container),d.offset),d=b(c),a.setEnd(new CKEDITOR.dom.node(d.container),d.offset),a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse(),[a];if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=c.item(e),g=f.parentNode,h=0,a=new CKEDITOR.dom.range(this.root);h<
+g.childNodes.length&&g.childNodes[h]!=f;h++);a.setStart(new CKEDITOR.dom.node(g),h);a.setEnd(new CKEDITOR.dom.node(g),h+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};return function(b){var c=this._.cache,d=c.ranges;d||(c.ranges=
+d=new CKEDITOR.dom.rangeList(a.call(this)));return b?G(new CKEDITOR.dom.rangeList(d.slice())):d}}(),getStartElement:function(){var a=this._.cache;if(void 0!==a.startElement)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed)b=c.startContainer,b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());else{for(c.optimize();b=c.startContainer,c.startOffset==(b.getChildCount?
+b.getChildCount():b.getLength())&&!b.isBlockBoundary();)c.setStartAfter(b);b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();if((b=b.getChild(c.startOffset))&&b.type==CKEDITOR.NODE_ELEMENT)for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;)b=c,c=c.getFirst();else b=c.startContainer}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(void 0!==a.selectedElement)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},
+function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&!((c=a.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&E[c.getName()]&&(d=c));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(void 0!==a.selectedText)return a.selectedText;var b=this.getNative(),b=x?"Control"==b.type?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();
+this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(b){if(this.isLocked){if(b)var d=this.getSelectedElement(),e=this.getRanges(),f=this.isFake;this.isLocked=0;this.reset();b&&(b=d||e[0]&&e[0].getCommonAncestor())&&b.getAscendant("body",1)&&(a(e)?c.call(this,e):f?this.fake(d):d?this.selectElement(d):this.selectRanges(e))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection)if(this.rev==a._.fakeSelection.rev){delete a._.fakeSelection;
+var b=a._.hiddenSelectionContainer;if(b){var c=a.checkDirty();a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot");!c&&a.resetDirty()}delete a._.hiddenSelectionContainer}else CKEDITOR.warn("selection-fake-reset");this.rev=m++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(b){var d=this.root.editor,e=d&&d._.hiddenSelectionContainer;this.reset();if(e)for(var e=this.root,g,h=0;h<b.length;++h)g=
+b[h],g.endContainer.equals(e)&&(g.endOffset=Math.min(g.endOffset,e.getChildCount()));if(b.length)if(this.isLocked){var k=CKEDITOR.document.getActive();this.unlock();this.selectRanges(b);this.lock();k&&!k.equals(this.root)&&k.focus()}else{var l;a:{var p,C;if(1==b.length&&!(C=b[0]).collapsed&&(l=C.getEnclosedNode())&&l.type==CKEDITOR.NODE_ELEMENT&&(C=C.clone(),C.shrink(CKEDITOR.SHRINK_ELEMENT,!0),(p=C.getEnclosedNode())&&p.type==CKEDITOR.NODE_ELEMENT&&(l=p),"false"==l.getAttribute("contenteditable")))break a;
+l=void 0}if(l)this.fake(l);else if(d&&d.plugins.tableselection&&CKEDITOR.plugins.tableselection.isSupportedEnvironment&&a(b)&&!I)c.call(this,b);else{if(x){p=CKEDITOR.dom.walker.whitespaces(!0);l=/\ufeff|\u00a0/;C={table:1,tbody:1,tr:1};1<b.length&&(d=b[b.length-1],b[0].setEnd(d.endContainer,d.endOffset));d=b[0];b=d.collapsed;var t,F,m;if((e=d.getEnclosedNode())&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in E&&(!e.is("a")||!e.getText()))try{m=e.$.createControlRange();m.addElement(e.$);m.select();return}catch(w){}if(d.startContainer.type==
+CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in C||d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in C)d.shrink(CKEDITOR.NODE_ELEMENT,!0),b=d.collapsed;m=d.createBookmark();C=m.startNode;b||(k=m.endNode);m=d.document.$.body.createTextRange();m.moveToElementText(C.$);m.moveStart("character",1);k?(l=d.document.$.body.createTextRange(),l.moveToElementText(k.$),m.setEndPoint("EndToEnd",l),m.moveEnd("character",-1)):(t=C.getNext(p),F=C.hasAscendant("pre"),t=!(t&&t.getText&&t.getText().match(l))&&
+(F||!C.hasPrevious()||C.getPrevious().is&&C.getPrevious().is("br")),F=d.document.createElement("span"),F.setHtml("\x26#65279;"),F.insertBefore(C),t&&d.document.createText("").insertBefore(C));d.setStartBefore(C);C.remove();b?(t?(m.moveStart("character",-1),m.select(),d.document.$.selection.clear()):m.select(),d.moveToPosition(F,CKEDITOR.POSITION_BEFORE_START),F.remove()):(d.setEndBefore(k),k.remove(),m.select())}else{k=this.getNative();if(!k)return;this.removeAllRanges();for(m=0;m<b.length;m++){if(m<
+b.length-1&&(t=b[m],F=b[m+1],l=t.clone(),l.setStart(t.endContainer,t.endOffset),l.setEnd(F.startContainer,F.startOffset),!l.collapsed&&(l.shrink(CKEDITOR.NODE_ELEMENT,!0),d=l.getCommonAncestor(),l=l.getEnclosedNode(),d.isReadOnly()||l&&l.isReadOnly()))){F.setStart(t.startContainer,t.startOffset);b.splice(m--,1);continue}d=b[m];F=this.document.$.createRange();d.collapsed&&CKEDITOR.env.webkit&&n(d)&&(l=q(this.root),d.insertNode(l),(t=l.getNext())&&!l.getPrevious()&&t.type==CKEDITOR.NODE_ELEMENT&&"br"==
+t.getName()?(f(this.root),d.moveToPosition(t,CKEDITOR.POSITION_BEFORE_START)):d.moveToPosition(l,CKEDITOR.POSITION_AFTER_END));F.setStart(d.startContainer.$,d.startOffset);try{F.setEnd(d.endContainer.$,d.endOffset)}catch(r){if(0<=r.toString().indexOf("NS_ERROR_ILLEGAL_VALUE"))d.collapse(1),F.setEnd(d.endContainer.$,d.endOffset);else throw r;}k.addRange(F)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a,b){var c=this.root.editor;void 0===b&&a.hasAttribute("aria-label")&&(b=a.getAttribute("aria-label"));
+this.reset();w(c,b);var d=this._.cache,e=new CKEDITOR.dom.range(this.root);e.setStartBefore(a);e.setEndAfter(a);d.ranges=new CKEDITOR.dom.rangeList(e);d.selectedElement=d.startElement=a;d.type=CKEDITOR.SELECTION_ELEMENT;d.selectedText=d.nativeSel=null;this.isFake=1;this.rev=m++;c._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},isInTable:function(b){return a(this.getRanges(),
+b)},isCollapsed:function(){var a=this.getRanges();return 1===a.length&&a[0].collapsed},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(b){for(var c=[],d,e=0;e<b.length;e++){var f=new CKEDITOR.dom.range(this.root);f.moveToBookmark(b[e]);c.push(f)}b.isFake&&(d=a(c)?c[0]._getTableElement():c[0].getEnclosedNode(),d&&d.type==
+CKEDITOR.NODE_ELEMENT||(CKEDITOR.warn("selection-not-fake"),b.isFake=0));b.isFake&&!a(c)?this.fake(d):this.selectRanges(c);return this},getCommonAncestor:function(){var a=this.getRanges();return a.length?a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer):null},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){if(this.getType()!=CKEDITOR.SELECTION_NONE){var a=this.getNative();try{a&&a[x?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}}})();
+"use strict";CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
+(function(){function a(a,b){for(var c,d;(a=a.getParent())&&!a.equals(b);)if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");"false"==e?c=a:"true"==e&&(d=1)}return c}function d(a,b,c,d){return(a.getPosition(b)|d)==d&&(!c.childRule||c.childRule(a))}function b(c){var f=c.document;if(c.collapsed)f=K(this,f),c.insertNode(f),c.moveToPosition(f,CKEDITOR.POSITION_BEFORE_END);else{var g=this.element,h=this._.definition,k,l=h.ignoreReadonly,m=l||h.includeReadonly;null==
+m&&(m=c.root.getCustomData("cke_includeReadonly"));var q=CKEDITOR.dtd[g];q||(k=!0,q=CKEDITOR.dtd.span);c.enlarge(CKEDITOR.ENLARGE_INLINE,1);c.trim();var n=c.createBookmark(),w=n.startNode,u=n.endNode,r=w,v;if(!l){var x=c.getCommonAncestor(),l=a(w,x),x=a(u,x);l&&(r=l.getNextSourceNode(!0));x&&(u=x)}for(r.getPosition(u)==CKEDITOR.POSITION_FOLLOWING&&(r=0);r;){l=!1;if(r.equals(u))r=null,l=!0;else{var A=r.type==CKEDITOR.NODE_ELEMENT?r.getName():null,x=A&&"false"==r.getAttribute("contentEditable"),D=A&&
+r.getAttribute("data-nostyle");if(A&&r.data("cke-bookmark")){r=r.getNextSourceNode(!0);continue}if(x&&m&&CKEDITOR.dtd.$block[A])for(var z=r,y=e(z),E=void 0,H=y.length,I=0,z=H&&new CKEDITOR.dom.range(z.getDocument());I<H;++I){var E=y[I],J=CKEDITOR.filter.instances[E.data("cke-filter")];if(J?J.check(this):1)z.selectNodeContents(E),b.call(this,z)}y=A?!q[A]||D?0:x&&!m?0:d(r,u,h,V):1;if(y)if(E=r.getParent(),y=h,H=g,I=k,!E||!(E.getDtd()||CKEDITOR.dtd.span)[H]&&!I||y.parentRule&&!y.parentRule(E))l=!0;else{if(v||
+A&&CKEDITOR.dtd.$removeEmpty[A]&&(r.getPosition(u)|V)!=V||(v=c.clone(),v.setStartBefore(r)),A=r.type,A==CKEDITOR.NODE_TEXT||x||A==CKEDITOR.NODE_ELEMENT&&!r.getChildCount()){for(var A=r,L;(l=!A.getNext(B))&&(L=A.getParent(),q[L.getName()])&&d(L,w,h,O);)A=L;v.setEndAfter(A)}}else l=!0;r=r.getNextSourceNode(D||x)}if(l&&v&&!v.collapsed){for(var l=K(this,f),x=l.hasAttributes(),D=v.getCommonAncestor(),A={},y={},E={},H={},T,Q,ba;l&&D;){if(D.getName()==g){for(T in h.attributes)!H[T]&&(ba=D.getAttribute(Q))&&
+(l.getAttribute(T)==ba?y[T]=1:H[T]=1);for(Q in h.styles)!E[Q]&&(ba=D.getStyle(Q))&&(l.getStyle(Q)==ba?A[Q]=1:E[Q]=1)}D=D.getParent()}for(T in y)l.removeAttribute(T);for(Q in A)l.removeStyle(Q);x&&!l.hasAttributes()&&(l=null);l?(v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.mergeSiblings(),CKEDITOR.env.ie||l.$.normalize()):(l=new CKEDITOR.dom.element("span"),v.extractContents().appendTo(l),v.insertNode(l),G.call(this,l),l.remove(!0));v=null}}c.moveToBookmark(n);c.shrink(CKEDITOR.SHRINK_TEXT);
+c.shrink(CKEDITOR.NODE_ELEMENT,!0)}}function c(a){function b(){for(var a=new CKEDITOR.dom.elementPath(d.getParent()),c=new CKEDITOR.dom.elementPath(q.getParent()),e=null,f=null,g=0;g<a.elements.length;g++){var h=a.elements[g];if(h==a.block||h==a.blockLimit)break;n.checkElementRemovable(h,!0)&&(e=h)}for(g=0;g<c.elements.length;g++){h=c.elements[g];if(h==c.block||h==c.blockLimit)break;n.checkElementRemovable(h,!0)&&(f=h)}f&&q.breakParent(f);e&&d.breakParent(e)}a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var c=
+a.createBookmark(),d=c.startNode,e=this._.definition.alwaysRemoveElement;if(a.collapsed){for(var f=new CKEDITOR.dom.elementPath(d.getParent(),a.root),g,h=0,k;h<f.elements.length&&(k=f.elements[h])&&k!=f.block&&k!=f.blockLimit;h++)if(this.checkElementRemovable(k)){var m;!e&&a.collapsed&&(a.checkBoundaryOfElement(k,CKEDITOR.END)||(m=a.checkBoundaryOfElement(k,CKEDITOR.START)))?(g=k,g.match=m?"start":"end"):(k.mergeSiblings(),k.is(this.element)?A.call(this,k):x(k,l(this)[k.getName()]))}if(g){e=d;for(h=
+0;;h++){k=f.elements[h];if(k.equals(g))break;else if(k.match)continue;else k=k.clone();k.append(e);e=k}e["start"==g.match?"insertBefore":"insertAfter"](g)}}else{var q=c.endNode,n=this;b();for(f=d;!f.equals(q);)g=f.getNextSourceNode(),f.type==CKEDITOR.NODE_ELEMENT&&this.checkElementRemovable(f)&&(f.getName()==this.element?A.call(this,f):x(f,l(this)[f.getName()]),g.type==CKEDITOR.NODE_ELEMENT&&g.contains(d)&&(b(),g=d.getNext())),f=g}a.moveToBookmark(c);a.shrink(CKEDITOR.NODE_ELEMENT,!0)}function e(a){var b=
+[];a.forEach(function(a){if("true"==a.getAttribute("contenteditable"))return b.push(a),!1},CKEDITOR.NODE_ELEMENT,!0);return b}function g(a){var b=a.getEnclosedNode()||a.getCommonAncestor(!1,!0);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&z(a,this)}function h(a){var b=a.getCommonAncestor(!0,!0);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&&
+a.removeStyle(e)}}function k(a){var b=a.createBookmark(!0),c=a.createIterator();c.enforceRealBlocks=!0;this._.enterMode&&(c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR);for(var d,e=a.document,f;d=c.getNextParagraph();)!d.isReadOnly()&&(c.activeFilter?c.activeFilter.check(this):1)&&(f=K(this,e,d),q(d,f));a.moveToBookmark(b)}function n(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=!0;c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e;d=c.getNextParagraph();)this.checkElementRemovable(d)&&
+(d.is("pre")?((e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))&&d.copyAttributes(e),q(d,e)):A.call(this,d));a.moveToBookmark(b)}function q(a,b){var c=!b;c&&(b=a.getDocument().createElement("div"),a.copyAttributes(b));var d=b&&b.is("pre"),e=a.is("pre"),g=!d&&e;if(d&&!e){e=b;(g=a.getBogus())&&g.remove();g=a.getHtml();g=D(g,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");g=g.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+|&nbsp;)/g,
+" ");g=g.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var h=a.getDocument().createElement("div");h.append(e);e.$.outerHTML="\x3cpre\x3e"+g+"\x3c/pre\x3e";e.copyAttributes(h.getFirst());e=h.getFirst().remove()}else e.setHtml(g);b=e}else g?b=w(c?[a.getHtml()]:f(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,k;(k=c.getPrevious(L))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("pre")&&(d=D(k.getHtml(),/\n$/,"")+"\n\n"+D(c.getHtml(),/^\n/,""),CKEDITOR.env.ie?c.$.outerHTML="\x3cpre\x3e"+d+"\x3c/pre\x3e":
+c.setHtml(d),k.remove())}else c&&m(b)}function f(a){var b=[];D(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"\x3c/pre\x3e"+c+"\x3cpre\x3e"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function D(a,b,c){var d="",e="";a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function w(a,b){var c;
+1<a.length&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=D(e,/^[ \t]*\n/,""),e=D(e,/\n$/,""),e=D(e,/^[ \t]+|[ \t]+$/g,function(a,b){return 1==a.length?"\x26nbsp;":b?" "+CKEDITOR.tools.repeat("\x26nbsp;",a.length-1):CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "}),e=e.replace(/\n/g,"\x3cbr\x3e"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("\x26nbsp;",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);
+c.append(f)}else b.setHtml(e)}return c||b}function A(a,b){var c=this._.definition,d=c.attributes,c=c.styles,e=l(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if("class"!=g&&!this._.definition.fullMatch||a.getAttribute(g)==r(g,d[g]))b&&"data-"==g.slice(0,5)||(f=a.hasAttribute(g),a.removeAttribute(g));for(var h in c)this._.definition.fullMatch&&a.getStyle(h)!=r(h,c[h],!0)||(f=f||!!a.getStyle(h),a.removeStyle(h));x(a,e,E[a.getName()]);f&&(this._.definition.alwaysRemoveElement?
+m(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?m(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function G(a){for(var b=l(this),c=a.getElementsByTag(this.element),d,e=c.count();0<=--e;)d=c.getItem(e),d.isReadOnly()||A.call(this,d,!0);for(var f in b)if(f!=this.element)for(c=a.getElementsByTag(f),e=c.count()-1;0<=e;e--)d=c.getItem(e),d.isReadOnly()||x(d,b[f])}function x(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=b[d][0],
+f;if(f=a.getAttribute(e)){var g=b[d][1];(null===g||g.test&&g.test(f)||"string"==typeof g&&f==g)&&a.removeAttribute(e)}}c||m(a)}function m(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(L),d=a.getNext(L);!c||c.type!=CKEDITOR.NODE_TEXT&&c.isBlockBoundary({br:1})||a.append("br",1);!d||d.type!=CKEDITOR.NODE_TEXT&&d.isBlockBoundary({br:1})||a.append("br");a.remove(!0)}else c=a.getFirst(),d=a.getLast(),a.remove(!0),c&&(c.type==CKEDITOR.NODE_ELEMENT&&c.mergeSiblings(),
+d&&!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT&&d.mergeSiblings())}function K(a,b,c){var d;d=a.element;"*"==d&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=z(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function z(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);return a}function I(a,
+b){for(var c in a)a[c]=a[c].replace(v,function(a,c){return b[c]})}function l(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;"string"==typeof e?f=e.toLowerCase():(f=e.element?e.element.toLowerCase():a.element,g=e.attributes);e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function r(a,b,c){var d=new CKEDITOR.dom.element("span");
+d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function J(a,b){function c(a,b){return"font-family"==b.toLowerCase()?a.replace(/["']/g,""):a}"string"==typeof a&&(a=CKEDITOR.tools.parseCssText(a));"string"==typeof b&&(b=CKEDITOR.tools.parseCssText(b,!0));for(var d in a)if(!(d in b)||c(b[d],d)!=c(a[d],d)&&"inherit"!=a[d]&&"inherit"!=b[d])return!1;return!0}function H(a,b,c){var d=a.document,e=a.getRanges();b=b?this.removeFromRange:this.applyToRange;var f,g;if(a.isFake&&a.isInTable())for(f=
+[],g=0;g<e.length;g++)f.push(e[g].clone());for(var h=e.createIterator();g=h.getNextRange();)b.call(this,g,c);a.selectRanges(f||e);d.removeCustomData("doc_processing_style")}var E={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},u={a:1,blockquote:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,
+dd:1,form:1,audio:1,video:1},y=/\s*(?:;\s*|$)/,v=/#\((.+?)\)/g,B=CKEDITOR.dom.walker.bookmark(0,1),L=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){if("string"==typeof a.type)return new CKEDITOR.style.customHandlers[a.type](a);var c=a.attributes;c&&c.style&&(a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style)),delete c.style);b&&(a=CKEDITOR.tools.clone(a),I(a.attributes,b),I(a.styles,b));c=this.element=a.element?"string"==typeof a.element?a.element.toLowerCase():
+a.element:"*";this.type=a.type||(E[c]?CKEDITOR.STYLE_BLOCK:u[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);"object"==typeof this.element&&(this.type=CKEDITOR.STYLE_OBJECT);this._={definition:a}};CKEDITOR.style.prototype={apply:function(a){if(a instanceof CKEDITOR.dom.document)return H.call(this,a.getSelection());if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),0,a);this._.enterMode=b}},remove:function(a){if(a instanceof
+CKEDITOR.dom.document)return H.call(this,a.getSelection(),1);if(this.checkApplicable(a.elementPath(),a)){var b=this._.enterMode;b||(this._.enterMode=a.activeEnterMode);H.call(this,a.getSelection(),1,a);this._.enterMode=b}},applyToRange:function(a){this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?k:this.type==CKEDITOR.STYLE_OBJECT?g:null;return this.applyToRange(a)},removeFromRange:function(a){this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?
+n:this.type==CKEDITOR.STYLE_OBJECT?h:null;return this.removeFromRange(a)},applyToObject:function(a){z(a,this)},checkActive:function(a,b){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||a.blockLimit,!0,b);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var c=a.elements,d=0,e;d<c.length;d++)if(e=c[d],this.type!=CKEDITOR.STYLE_INLINE||e!=a.block&&e!=a.blockLimit){if(this.type==CKEDITOR.STYLE_OBJECT){var f=e.getName();if(!("string"==typeof this.element?
+f==this.element:f in this.element))continue}if(this.checkElementRemovable(e,!0,b))return!0}}return!1},checkApplicable:function(a,b,c){b&&b instanceof CKEDITOR.filter&&(c=b);if(c&&!c.check(this))return!1;switch(this.type){case CKEDITOR.STYLE_OBJECT:return!!a.contains(this.element);case CKEDITOR.STYLE_BLOCK:return!!a.blockLimit.getDtd()[this.element]}return!0},checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return!1;var d=a.getName();if("string"==typeof this.element?
+d==this.element:d in this.element){if(!b&&!a.hasAttributes())return!0;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f)e++,d[g]=f[g];if(g=CKEDITOR.style.getStyleText(c))d.style||e++,d.style=g;d._length=e;c=c._AC=d}if(c._length){for(var h in c)if("_length"!=h)if(d=a.getAttribute(h)||"","style"==h?J(c[h],d):c[h]==d){if(!b)return!0}else if(b)return!1;if(b)return!0}else return!0}return!1},checkElementRemovable:function(a,b,c){if(this.checkElementMatch(a,b,c))return!0;if(b=l(this)[a.getName()]){var d;
+if(!(b=b.attributes))return!0;for(c=0;c<b.length;c++)if(d=b[c][0],d=a.getAttribute(d)){var e=b[c][1];if(null===e)return!0;if("string"==typeof e){if(d==e)return!0}else if(e.test(d))return!0}}return!1},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;"bdo"==d&&(d="span");var c=["\x3c",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'\x3d"',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style\x3d"',e,'"');c.push("\x3e",a||b.name,"\x3c/",d,"\x3e");return c.join("")},getDefinition:function(){return this._.definition}};
+CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(y,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(y,";");"inherit"==f?d+=g:c+=g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,!0));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),
+{assignedTo:CKEDITOR.STYLE_OBJECT},a,!0);return this.customHandlers[a.type]=b};var V=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,O=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,!0)};
 CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(a,d,b){CKEDITOR.stylesSet.addExternal(a,d,"");CKEDITOR.stylesSet.load(a,b)};
-CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,d){var b=this._.styleStateChangeCallbacks;b||(b=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var d=0;d<b.length;d++){var g=b[d],l=g.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;g.fn.call(this,l)}}));b.push({style:a,fn:d})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);
+CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,d){var b=this._.styleStateChangeCallbacks;b||(b=this._.styleStateChangeCallbacks=[],this.on("selectionChange",function(a){for(var d=0;d<b.length;d++){var g=b[d],h=g.style.checkActive(a.data.path,this)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;g.fn.call(this,h)}}));b.push({style:a,fn:d})},applyStyle:function(a){a.apply(this)},removeStyle:function(a){a.remove(this)},getStylesSet:function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);
 else{var d=this,b=d.config.stylesCombo_stylesSet||d.config.stylesSet;if(!1===b)a(null);else if(b instanceof Array)d._.stylesDefinitions=b,a(b);else{b||(b="default");var b=b.split(":"),c=b[0];CKEDITOR.stylesSet.addExternal(c,b[1]?b.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(c,function(b){d._.stylesDefinitions=b[c];a(d._.stylesDefinitions)})}}}});
 CKEDITOR.dom.comment=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"\x3c!--"+this.$.nodeValue+"--\x3e"}});"use strict";
-(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var g=null,l=null,k=[],n=b,w;e=e||b.getDocument().getBody();do if(n.type==CKEDITOR.NODE_ELEMENT){k.push(n);if(!this.lastElement&&(this.lastElement=n,n.is(CKEDITOR.dtd.$object)||"false"==n.getAttribute("contenteditable")))continue;if(n.equals(e))break;if(!l&&(w=n.getName(),
-"true"==n.getAttribute("contenteditable")?l=n:!g&&d[w]&&(g=n),a[w])){if(w=!g&&"div"==w){a:{w=n.getChildren();for(var f=0,x=w.count();f<x;f++){var A=w.getItem(f);if(A.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[A.getName()]){w=!0;break a}}w=!1}w=!w}w?g=n:l=n}}while(n=n.getParent());l||(l=e);this.block=g;this.blockLimit=l;this.root=e;this.elements=k}})();
-CKEDITOR.dom.elementPath.prototype={compare:function(a){var d=this.elements;a=a&&a.elements;if(!a||d.length!=a.length)return!1;for(var b=0;b<d.length;b++)if(!d[b].equals(a[b]))return!1;return!0},contains:function(a,d,b){var c;"string"==typeof a&&(c=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?c=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?c=function(b){return-1<CKEDITOR.tools.indexOf(a,b.getName())}:"function"==typeof a?c=a:"object"==typeof a&&(c=function(b){return b.getName()in
-a});var e=this.elements,g=e.length;d&&g--;b&&(e=Array.prototype.slice.call(e,0),e.reverse());for(d=0;d<g;d++)if(c(e[d]))return e[d];return null},isContextFor:function(a){var d;return a in CKEDITOR.dtd.$block?(d=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!d.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
+(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var g=null,h=null,k=[],n=b,q;e=e||b.getDocument().getBody();n||(n=e);do if(n.type==CKEDITOR.NODE_ELEMENT){k.push(n);if(!this.lastElement&&(this.lastElement=n,n.is(CKEDITOR.dtd.$object)||"false"==n.getAttribute("contenteditable")))continue;if(n.equals(e))break;if(!h&&(q=n.getName(),
+"true"==n.getAttribute("contenteditable")?h=n:!g&&d[q]&&(g=n),a[q])){if(q=!g&&"div"==q){a:{q=n.getChildren();for(var f=0,D=q.count();f<D;f++){var w=q.getItem(f);if(w.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[w.getName()]){q=!0;break a}}q=!1}q=!q}q?g=n:h=n}}while(n=n.getParent());h||(h=e);this.block=g;this.blockLimit=h;this.root=e;this.elements=k}})();
+CKEDITOR.dom.elementPath.prototype={compare:function(a){var d=this.elements;a=a&&a.elements;if(!a||d.length!=a.length)return!1;for(var b=0;b<d.length;b++)if(!d[b].equals(a[b]))return!1;return!0},contains:function(a,d,b){var c=0,e;"string"==typeof a&&(e=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?e=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?e=function(b){return-1<CKEDITOR.tools.indexOf(a,b.getName())}:"function"==typeof a?e=a:"object"==typeof a&&(e=function(b){return b.getName()in
+a});var g=this.elements,h=g.length;d&&(b?c+=1:--h);b&&(g=Array.prototype.slice.call(g,0),g.reverse());for(;c<h;c++)if(e(g[c]))return g[c];return null},isContextFor:function(a){var d;return a in CKEDITOR.dtd.$block?(d=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit,!!d.getDtd()[a]):!0},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
 CKEDITOR.dom.text=function(a,d){"string"==typeof a&&(a=(d?d.$:document).createTextNode(a));this.$=a};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node;
 CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var d=this.$.parentNode,b=d.childNodes.length,c=this.getLength(),e=this.getDocument(),g=new CKEDITOR.dom.text(this.$.splitText(a),e);d.childNodes.length==b&&(a>=c?(g=e.createText(""),g.insertAfter(this)):(a=e.createText(""),a.insertAfter(g),a.remove()));return g},substring:function(a,
 d){return"number"!=typeof d?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,d)}});
-(function(){function a(a,c,d){var g=a.serializable,l=c[d?"endContainer":"startContainer"],k=d?"endOffset":"startOffset",n=g?c.document.getById(a.startNode):a.startNode;a=g?c.document.getById(a.endNode):a.endNode;l.equals(n.getPrevious())?(c.startOffset=c.startOffset-l.getLength()-a.getPrevious().getLength(),l=a.getNext()):l.equals(a.getPrevious())&&(c.startOffset-=l.getLength(),l=a.getNext());l.equals(n.getParent())&&c[k]++;l.equals(a.getParent())&&c[k]++;c[d?"endContainer":"startContainer"]=l;return c}
-CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],g;return{getNextRange:function(l){g=void 0===g?0:g+1;var k=a[g];if(k&&1<a.length){if(!g)for(var n=a.length-1;0<=n;n--)d.unshift(a[n].createBookmark(!0));if(l)for(var w=0;a[g+w+1];){var f=k.document;l=0;n=f.getById(d[w].endNode);for(f=f.getById(d[w+1].startNode);;){n=
-n.getNextSourceNode(!1);if(f.equals(n))l=1;else if(c(n)||n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary())continue;break}if(!l)break;w++}for(k.moveToBookmark(d.shift());w--;)n=a[++g],n.moveToBookmark(d.shift()),k.setEnd(n.endContainer,n.endOffset)}return k}}},createBookmarks:function(b){for(var c=[],d,g=0;g<this.length;g++){c.push(d=this[g].createBookmark(b,!0));for(var l=g+1;l<this.length;l++)this[l]=a(d,this[l]),this[l]=a(d,this[l],!0)}return c},createBookmarks2:function(a){for(var c=[],d=0;d<
+(function(){function a(a,c,d){var g=a.serializable,h=c[d?"endContainer":"startContainer"],k=d?"endOffset":"startOffset",n=g?c.document.getById(a.startNode):a.startNode;a=g?c.document.getById(a.endNode):a.endNode;h.equals(n.getPrevious())?(c.startOffset=c.startOffset-h.getLength()-a.getPrevious().getLength(),h=a.getNext()):h.equals(a.getPrevious())&&(c.startOffset-=h.getLength(),h=a.getNext());h.equals(n.getParent())&&c[k]++;h.equals(a.getParent())&&c[k]++;c[d?"endContainer":"startContainer"]=h;return c}
+CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],g;return{getNextRange:function(h){g=void 0===g?0:g+1;var k=a[g];if(k&&1<a.length){if(!g)for(var n=a.length-1;0<=n;n--)d.unshift(a[n].createBookmark(!0));if(h)for(var q=0;a[g+q+1];){var f=k.document;h=0;n=f.getById(d[q].endNode);for(f=f.getById(d[q+1].startNode);;){n=
+n.getNextSourceNode(!1);if(f.equals(n))h=1;else if(c(n)||n.type==CKEDITOR.NODE_ELEMENT&&n.isBlockBoundary())continue;break}if(!h)break;q++}for(k.moveToBookmark(d.shift());q--;)n=a[++g],n.moveToBookmark(d.shift()),k.setEnd(n.endContainer,n.endOffset)}return k}}},createBookmarks:function(b){for(var c=[],d,g=0;g<this.length;g++){c.push(d=this[g].createBookmark(b,!0));for(var h=g+1;h<this.length;h++)this[h]=a(d,this[h]),this[h]=a(d,this[h],!0)}return c},createBookmarks2:function(a){for(var c=[],d=0;d<
 this.length;d++)c.push(this[d].createBookmark2(a));return c},moveToBookmarks:function(a){for(var c=0;c<this.length;c++)this[c].moveToBookmark(a[c])}}})();
 (function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function d(b){var c=CKEDITOR.skin["ua_"+b],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,g;e<c.length;e++)if(g=c[e],d.ie&&(g.replace(/^ie/,"")==d.version||d.quirks&&"iequirks"==g)&&(g="ie"),d[g]){b+="_"+c[e];break}return CKEDITOR.getUrl(a()+b+".css")}function b(a,b){g[a]||(CKEDITOR.document.appendStyleSheet(d(a)),g[a]=1);b&&b()}function c(a){var b=
-a.getById(l);b||(b=a.getHead().append("style"),b.setAttribute("id",l),b.setAttribute("type","text/css"));return b}function e(a,b,c){var d,e,g;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),e=0;e<b.length;e++)b[e]=b[e].split("{");for(var k=0;k<a.length;k++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){g=b[e][1];for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);a[k].$.sheet.addRule(b[e][0],g)}else{g=b;for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?
-a[k].$.styleSheet.cssText+=g:a[k].$.innerHTML+=g}}var g={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(d(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var g;a&&(a=a.toLowerCase(),b&&(g=this.icons[a+"-rtl"]),
+a.getById(h);b||(b=a.getHead().append("style"),b.setAttribute("id",h),b.setAttribute("type","text/css"));return b}function e(a,b,c){var d,e,g;if(CKEDITOR.env.webkit)for(b=b.split("}").slice(0,-1),e=0;e<b.length;e++)b[e]=b[e].split("{");for(var h=0;h<a.length;h++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){g=b[e][1];for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);a[h].$.sheet.addRule(b[e][0],g)}else{g=b;for(d=0;d<c.length;d++)g=g.replace(c[d][0],c[d][1]);CKEDITOR.env.ie&&11>CKEDITOR.env.version?
+a[h].$.styleSheet.cssText+=g:a[h].$.innerHTML+=g}}var g={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(d(a))},icons:{},addIcon:function(a,b,c,d){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0,bgsize:d||"16px"})},getIconStyle:function(a,b,c,d,e){var g;a&&(a=a.toLowerCase(),b&&(g=this.icons[a+"-rtl"]),
 g||(g=this.icons[a]));a=c||g&&g.path||"";d=d||g&&g.offset;e=e||g&&g.bgsize||"16px";a&&(a=a.replace(/'/g,"\\'"));return a&&"background-image:url('"+CKEDITOR.getUrl(a)+"');background-position:0 "+d+"px;background-size:"+e+";"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=c(CKEDITOR.document);return(this.setUiColor=function(a){this.uiColor=a;var c=CKEDITOR.skin.chameleon,d="",g="";"function"==typeof c&&(d=c(this,"editor"),g=
-c(this,"panel"));a=[[n,a]];e([b],d,a);e(k,g,a)}).call(this,a)}});var l="cke_ui_color",k=[],n=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=c(a);k.push(a);var d=b.getUiColor();d&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[n,d]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
+c(this,"panel"));a=[[n,a]];e([b],d,a);e(k,g,a)}).call(this,a)}});var h="cke_ui_color",k=[],n=/\$color/g;CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor;a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=c(a);k.push(a);var d=b.getUiColor();d&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[n,d]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
 (function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=!1;else{var a=CKEDITOR.dom.element.createFromHtml('\x3cdiv style\x3d"width:0;height:0;position:absolute;left:-10000px;border:1px solid;border-color:red blue"\x3e\x3c/div\x3e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var d=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!(!d||d!=b)}catch(c){CKEDITOR.env.hc=!1}a.remove()}CKEDITOR.env.hc&&(CKEDITOR.env.cssClass+=" cke_hc");CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
 CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending)for(delete CKEDITOR._.pending,d=0;d<a.length;d++)CKEDITOR.editor.prototype.constructor.apply(a[d][0],a[d][1]),CKEDITOR.add(a[d][0])})();/*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.skin.name="moono";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8";
@@ -533,127 +564,156 @@ CKEDITOR.tools.removeFunction(m)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},ge
 new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",v);CKEDITOR.dialog.addUIElement("password",v);CKEDITOR.dialog.addUIElement("textarea",n);CKEDITOR.dialog.addUIElement("checkbox",n);CKEDITOR.dialog.addUIElement("radio",n);CKEDITOR.dialog.addUIElement("button",n);CKEDITOR.dialog.addUIElement("select",n);CKEDITOR.dialog.addUIElement("file",n);CKEDITOR.dialog.addUIElement("fileButton",n);CKEDITOR.dialog.addUIElement("html",
 n);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var f=a.children,c,e=[],h=[],g=0;g<f.length&&(c=f[g]);g++){var k=[];e.push(k);h.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,k))}return new CKEDITOR.ui.dialog[a.type](b,h,e,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;CKEDITOR.DIALOG_STATE_IDLE=1;CKEDITOR.DIALOG_STATE_BUSY=2;
 (function(){function x(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function A(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function K(a,b){for(var c=a.$.getElementsByTagName("input"),
-d=0,e=c.length;d<e;d++){var f=new CKEDITOR.dom.element(c[d]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function T(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
-function U(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function V(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",W).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),d=c.getChild(0),e=c.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
-!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));d.unselectable();e.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:d,close:e,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),
+e=0,d=c.length;e<d;e++){var f=new CKEDITOR.dom.element(c[e]);"text"==f.getAttribute("type").toLowerCase()&&(b?(f.setAttribute("value",f.getCustomData("fake_value")||""),f.removeCustomData("fake_value")):(f.setCustomData("fake_value",f.getAttribute("value")),f.setAttribute("value","")))}}function T(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
+function U(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function V(a){var b=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",W).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close,hidpi:CKEDITOR.env.hidpi?"cke_hidpi":""})),c=b.getChild([0,0,0,0,0]),e=c.getChild(0),d=c.getChild(1);a.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(c);
+!CKEDITOR.env.ie||CKEDITOR.env.quirks||CKEDITOR.env.edge||(a="javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())",CKEDITOR.dom.element.createFromHtml('\x3ciframe frameBorder\x3d"0" class\x3d"cke_iframe_shim" src\x3d"'+a+'" tabIndex\x3d"-1"\x3e\x3c/iframe\x3e').appendTo(c.getParent()));e.unselectable();d.unselectable();return{element:b,parts:{dialog:b.getChild(0),title:e,close:d,tabs:c.getChild(2),contents:c.getChild([3,0,0,0]),
 footer:c.getChild([3,0,1,0])}}}function L(a,b,c){this.element=b;this.focusIndex=c;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function X(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();
-c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function M(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function Y(a){function b(b){var c=a.getSize(),k=CKEDITOR.document.getWindow().getViewPaneSize(),q=b.data.$.screenX,n=b.data.$.screenY,r=q-d.x,l=n-d.y;d={x:q,y:n};e.x+=r;e.y+=l;a.move(e.x+h[3]<g?-h[3]:e.x-h[1]>k.width-c.width-g?k.width-c.width+("rtl"==f.lang.dir?0:h[1]):e.x,e.y+h[0]<g?-h[0]:e.y-h[2]>k.height-c.height-g?k.height-c.height+h[2]:e.y,1);b.data.preventDefault()}
-function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var d=null,e=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(g){d={x:g.data.$.screenX,y:g.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",
-c);e=a.getPosition();if(CKEDITOR.env.ie6Compat){var f=u.getChild(0).getFrameDocument();f.on("mousemove",b);f.on("mouseup",c)}g.data.preventDefault()},a)}function Z(a){function b(b){var c="rtl"==f.lang.dir,n=k.width,q=k.height,G=n+(b.data.$.screenX-m.x)*(c?-1:1)*(a._.moved?1:2),H=q+(b.data.$.screenY-m.y)*(a._.moved?1:2),B=a._.element.getFirst(),B=c&&B.getComputedStyle("right"),C=a.getPosition();C.y+H>p.height&&(H=p.height-C.y);(c?B:C.x)+G>p.width&&(G=p.width-(c?B:C.x));if(e==CKEDITOR.DIALOG_RESIZE_WIDTH||
-e==CKEDITOR.DIALOG_RESIZE_BOTH)n=Math.max(d.minWidth||0,G-g);if(e==CKEDITOR.DIALOG_RESIZE_HEIGHT||e==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(d.minHeight||0,H-h);a.resize(n,q);a._.moved||a.layout();b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mouseup",c);CKEDITOR.document.removeListener("mousemove",b);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mouseup",c);a.removeListener("mousemove",b)}}var d=a.definition,e=d.resizable;
-if(e!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,p,m,k,q,n=CKEDITOR.tools.addFunction(function(e){k=a.getSize();var d=a.parts.contents;d.$.getElementsByTagName("iframe").length&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),d.append(q));h=k.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));g=k.width-a.parts.contents.getSize("width",
-1);m={x:e.screenX,y:e.screenY};p=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);CKEDITOR.env.ie6Compat&&(d=u.getChild(0).getFrameDocument(),d.on("mousemove",b),d.on("mouseup",c));e.preventDefault&&e.preventDefault()});a.on("load",function(){var b="";e==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":e==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+
-b+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+n+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function I(a){a.data.preventDefault(1)}function N(a){var b=CKEDITOR.document.getWindow(),c=a.config,d=c.dialog_backgroundCoverColor||"white",e=c.dialog_backgroundCoverOpacity,f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,
-e,f),g=z[c];g?g.show():(f=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",f,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",f.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),f.push("void((function(){"+
-encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),f.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),f.push("\x3c/div\x3e"),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",I),g.on("keypress",I),g.on("keyup",I),g.appendTo(CKEDITOR.document.getBody()),z[c]=g);a.focusManager.add(g);
-u=g;a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;g.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};J=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus();if(CKEDITOR.env.ie6Compat){var p=function(){h();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){p.prevScrollHandler=
+c.on("resize",b);a.on("hide",function(){c.removeListener("resize",b)})}function M(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function Y(a){function b(b){var c=a.getSize(),k=CKEDITOR.document.getWindow().getViewPaneSize(),q=b.data.$.screenX,n=b.data.$.screenY,r=q-e.x,l=n-e.y;e={x:q,y:n};d.x+=r;d.y+=l;a.move(d.x+h[3]<g?-h[3]:d.x-h[1]>k.width-c.width-g?k.width-c.width+("rtl"==f.lang.dir?0:h[1]):d.x,d.y+h[0]<g?-h[0]:d.y-h[2]>k.height-c.height-g?k.height-c.height+h[2]:d.y,1);b.data.preventDefault()}
+function c(){CKEDITOR.document.removeListener("mousemove",b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var e=null,d=null,f=a.getParentEditor(),g=f.config.dialog_magnetDistance,h=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof g&&(g=20);a.parts.title.on("mousedown",function(g){e={x:g.data.$.screenX,y:g.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",
+c);d=a.getPosition();if(CKEDITOR.env.ie6Compat){var f=u.getChild(0).getFrameDocument();f.on("mousemove",b);f.on("mouseup",c)}g.data.preventDefault()},a)}function Z(a){function b(b){var c="rtl"==f.lang.dir,n=k.width,q=k.height,G=n+(b.data.$.screenX-m.x)*(c?-1:1)*(a._.moved?1:2),H=q+(b.data.$.screenY-m.y)*(a._.moved?1:2),B=a._.element.getFirst(),B=c&&B.getComputedStyle("right"),C=a.getPosition();C.y+H>p.height&&(H=p.height-C.y);(c?B:C.x)+G>p.width&&(G=p.width-(c?B:C.x));if(d==CKEDITOR.DIALOG_RESIZE_WIDTH||
+d==CKEDITOR.DIALOG_RESIZE_BOTH)n=Math.max(e.minWidth||0,G-g);if(d==CKEDITOR.DIALOG_RESIZE_HEIGHT||d==CKEDITOR.DIALOG_RESIZE_BOTH)q=Math.max(e.minHeight||0,H-h);a.resize(n,q);a._.moved||a.layout();b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mouseup",c);CKEDITOR.document.removeListener("mousemove",b);q&&(q.remove(),q=null);if(CKEDITOR.env.ie6Compat){var a=u.getChild(0).getFrameDocument();a.removeListener("mouseup",c);a.removeListener("mousemove",b)}}var e=a.definition,d=e.resizable;
+if(d!=CKEDITOR.DIALOG_RESIZE_NONE){var f=a.getParentEditor(),g,h,p,m,k,q,n=CKEDITOR.tools.addFunction(function(d){k=a.getSize();var e=a.parts.contents;e.$.getElementsByTagName("iframe").length&&(q=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_dialog_resize_cover" style\x3d"height: 100%; position: absolute; width: 100%;"\x3e\x3c/div\x3e'),e.append(q));h=k.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.ie&&CKEDITOR.env.quirks));g=k.width-a.parts.contents.getSize("width",
+1);m={x:d.screenX,y:d.screenY};p=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);CKEDITOR.env.ie6Compat&&(e=u.getChild(0).getFrameDocument(),e.on("mousemove",b),e.on("mouseup",c));d.preventDefault&&d.preventDefault()});a.on("load",function(){var b="";d==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":d==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_resizer'+
+b+" cke_resizer_"+f.lang.dir+'" title\x3d"'+CKEDITOR.tools.htmlEncode(f.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+n+', event )"\x3e'+("ltr"==f.lang.dir?"◢":"◣")+"\x3c/div\x3e");a.parts.footer.append(b,1)});f.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function I(a){a.data.preventDefault(1)}function N(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=CKEDITOR.skinName||a.config.skin,d=c.dialog_backgroundCoverColor||("moono-lisa"==e?"black":"white"),e=c.dialog_backgroundCoverOpacity,
+f=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(d,e,f),g=z[c];g?g.show():(f=['\x3cdiv tabIndex\x3d"-1" style\x3d"position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",f,"; top: 0px; left: 0px; ",CKEDITOR.env.ie6Compat?"":"background-color: "+d,'" class\x3d"cke_dialog_background_cover"\x3e'],CKEDITOR.env.ie6Compat&&(d="\x3chtml\x3e\x3cbody style\x3d\\'background-color:"+d+";\\'\x3e\x3c/body\x3e\x3c/html\x3e",f.push('\x3ciframe hidefocus\x3d"true" frameborder\x3d"0" id\x3d"cke_dialog_background_iframe" src\x3d"javascript:'),
+f.push("void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.write( '"+d+"' );document.close();")+"})())"),f.push('" style\x3d"position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity\x3d0)"\x3e\x3c/iframe\x3e')),f.push("\x3c/div\x3e"),g=CKEDITOR.dom.element.createFromHtml(f.join("")),g.setOpacity(void 0!==e?e:.5),g.on("keydown",I),g.on("keypress",I),g.on("keyup",I),g.appendTo(CKEDITOR.document.getBody()),
+z[c]=g);a.focusManager.add(g);u=g;a=function(){var a=b.getViewPaneSize();g.setStyles({width:a.width+"px",height:a.height+"px"})};var h=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;g.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};J=a;b.on("resize",a);a();CKEDITOR.env.mac&&CKEDITOR.env.webkit||g.focus();if(CKEDITOR.env.ie6Compat){var p=function(){h();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){p.prevScrollHandler=
 window.onscroll||function(){};window.onscroll=p},0);h()}}function O(a){u&&(a.focusManager.remove(u),a=CKEDITOR.document.getWindow(),u.hide(),a.removeListener("resize",J),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),J=null)}var v=CKEDITOR.tools.cssLength,W='\x3cdiv class\x3d"cke_reset_all {editorId} {editorDialogClass} {hidpi}" dir\x3d"{langDir}" lang\x3d"{langCode}" role\x3d"dialog" aria-labelledby\x3d"cke_dialog_title_{id}"\x3e\x3ctable class\x3d"cke_dialog '+
 CKEDITOR.env.cssClass+' cke_{langDir}" style\x3d"position:absolute" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd role\x3d"presentation"\x3e\x3cdiv class\x3d"cke_dialog_body" role\x3d"presentation"\x3e\x3cdiv id\x3d"cke_dialog_title_{id}" class\x3d"cke_dialog_title" role\x3d"presentation"\x3e\x3c/div\x3e\x3ca id\x3d"cke_dialog_close_button_{id}" class\x3d"cke_dialog_close_button" href\x3d"javascript:void(0)" title\x3d"{closeTitle}" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e\x3cdiv id\x3d"cke_dialog_tabs_{id}" class\x3d"cke_dialog_tabs" role\x3d"tablist"\x3e\x3c/div\x3e\x3ctable class\x3d"cke_dialog_contents" role\x3d"presentation"\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_contents_{id}" class\x3d"cke_dialog_contents_body" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd id\x3d"cke_dialog_footer_{id}" class\x3d"cke_dialog_footer" role\x3d"presentation"\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e';
-CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function d(a){var b=l._.focusList;a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;l._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(e){}var d=c,g=1<l._.pageCount;do{d+=a;if(g&&!l._.tabBarMode&&(d==b.length||-1==d)){l._.tabBarMode=!0;l._.tabs[l._.currentTabId][0].focus();
-l._.currentFocusIndex=-1;return}d=(d+b.length)%b.length;if(d==c)break}while(a&&!b[d].isFocusable());b[d].focus();"text"==b[d].type&&b[d].select()}}function e(b){if(l==CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),e="rtl"==a.lang.dir,g=[37,38,39,40];q=n=0;if(9==c||c==CKEDITOR.SHIFT+9)d(c==CKEDITOR.SHIFT+9?-1:1),q=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1,q=1;else if(-1!=CKEDITOR.tools.indexOf(g,
-c)&&l._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([e?39:37,38],c)?x.call(l):A.call(l),l.selectPage(c),l._.tabs[c][0].focus(),q=1;else if(13!=c&&32!=c||!l._.tabBarMode)if(13==c)c=b.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),q=1),n=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),n=1;else return;else this.selectPage(this._.currentTabId),
-this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1),q=1;f(b)}}function f(a){q?a.data.preventDefault(1):n&&a.data.stopPropagation()}var g=CKEDITOR.dialog._.dialogDefinitions[b],h=CKEDITOR.tools.clone(aa),p=a.config.dialog_buttonsOrder||"OS",m=a.lang.dir,k={},q,n;("OS"==p&&CKEDITOR.env.mac||"rtl"==p&&"ltr"==m||"ltr"==p&&"rtl"==m)&&h.buttons.reverse();g=CKEDITOR.tools.extend(g(a),h);g=CKEDITOR.tools.clone(g);g=new P(this,g);h=V(a);this._={editor:a,element:h.element,name:b,contentSize:{width:0,height:0},
+CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function e(a){var b=l._.focusList;a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;l._.tabBarMode&&0>a&&(c=0);try{b[c].getInputElement().$.blur()}catch(d){}var e=c,g=1<l._.pageCount;do{e+=a;if(g&&!l._.tabBarMode&&(e==b.length||-1==e)){l._.tabBarMode=!0;l._.tabs[l._.currentTabId][0].focus();
+l._.currentFocusIndex=-1;return}e=(e+b.length)%b.length;if(e==c)break}while(a&&!b[e].isFocusable());b[e].focus();"text"==b[e].type&&b[e].select()}}function d(b){if(l==CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),d="rtl"==a.lang.dir,g=[37,38,39,40];q=n=0;if(9==c||c==CKEDITOR.SHIFT+9)e(c==CKEDITOR.SHIFT+9?-1:1),q=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1,q=1;else if(-1!=CKEDITOR.tools.indexOf(g,
+c)&&l._.tabBarMode)c=-1!=CKEDITOR.tools.indexOf([d?39:37,38],c)?x.call(l):A.call(l),l.selectPage(c),l._.tabs[c][0].focus(),q=1;else if(13!=c&&32!=c||!l._.tabBarMode)if(13==c)c=b.data.getTarget(),c.is("a","button","select","textarea")||c.is("input")&&"button"==c.$.type||((c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),q=1),n=1;else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),n=1;else return;else this.selectPage(this._.currentTabId),
+this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1),q=1;f(b)}}function f(a){q?a.data.preventDefault(1):n&&a.data.stopPropagation()}var g=CKEDITOR.dialog._.dialogDefinitions[b],h=CKEDITOR.tools.clone(aa),p=a.config.dialog_buttonsOrder||"OS",m=a.lang.dir,k={},q,n;("OS"==p&&CKEDITOR.env.mac||"rtl"==p&&"ltr"==m||"ltr"==p&&"rtl"==m)&&h.buttons.reverse();g=CKEDITOR.tools.extend(g(a),h);g=CKEDITOR.tools.clone(g);g=new P(this,g);h=V(a);this._={editor:a,element:h.element,name:b,contentSize:{width:0,height:0},
 size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],currentFocusIndex:0,hasFocus:!1};this.parts=h.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);h={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};h["rtl"==m?"right":"left"]=0;this.parts.dialog.setStyles(h);CKEDITOR.event.call(this);this.definition=g=CKEDITOR.fire("dialogDefinition",
 {name:b,definition:g},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){h=a.config.removeDialogTabs.split(";");for(m=0;m<h.length;m++)if(p=h[m].split(":"),2==p.length){var r=p[0];k[r]||(k[r]=[]);k[r].push(p[1])}a._.removeDialogTabs=k}if(a._.removeDialogTabs&&(k=a._.removeDialogTabs[b]))for(m=0;m<k.length;m++)g.removeContents(k[m]);if(g.onLoad)this.on("load",g.onLoad);if(g.onShow)this.on("show",g.onShow);if(g.onHide)this.on("hide",g.onHide);if(g.onOk)this.on("ok",function(b){a.fire("saveSnapshot");
 setTimeout(function(){a.fire("saveSnapshot")},0);!1===g.onOk.call(this,b)&&(b.data.hide=!1)});this.state=CKEDITOR.DIALOG_STATE_IDLE;if(g.onCancel)this.on("cancel",function(a){!1===g.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,t=function(a){var b=l._.contents,c=!1,d;for(d in b)for(var e in b[d])if(c=a.call(this,b[d][e]))return};this.on("ok",function(a){t(function(b){if(b.validate){var c=b.validate(this),d="string"==typeof c||!1===c;d&&(a.data.hide=!1,a.stop());T.call(b,!d,"string"==typeof c?
-c:void 0);return d}})},this,null,0);this.on("cancel",function(b){t(function(c){if(c.isChanged())return a.config.dialog_noConfirmCancel||confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=d;var y=this._.element;a.focusManager.add(y,1);this.on("show",function(){y.on("keydown",e,this);if(CKEDITOR.env.gecko)y.on("keypress",f,this)});this.on("hide",
-function(){y.removeListener("keydown",e);CKEDITOR.env.gecko&&y.removeListener("keypress",f);t(function(a){U.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",e,this,null,0)});this.on("show",function(){c();var b=1<l._.pageCount;a.config.dialog_startupFocusTab&&b?(l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=b?-1:this._.focusList.length-1,g.onFocus?
-(b=g.onFocus.call(this))&&b.focus():d(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);Y(this);Z(this);(new CKEDITOR.dom.text(g.title,CKEDITOR.document)).appendTo(this.parts.title);for(m=0;m<g.contents.length;m++)(k=g.contents[m])&&this.addPage(k);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
-this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,d(1)),a.data.preventDefault())},this);m=[];k=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:g.buttons},m).getChild();this.parts.footer.setHtml(m.join(""));for(m=0;m<k.length;m++)this._.buttons[k[m].id]=k[m]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
+c:void 0);return d}})},this,null,0);this.on("cancel",function(b){t(function(c){if(c.isChanged())return a.config.dialog_noConfirmCancel||confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=e;var y=this._.element;a.focusManager.add(y,1);this.on("show",function(){y.on("keydown",d,this);if(CKEDITOR.env.gecko)y.on("keypress",f,this)});this.on("hide",
+function(){y.removeListener("keydown",d);CKEDITOR.env.gecko&&y.removeListener("keypress",f);t(function(a){U.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",d,this,null,0)});this.on("show",function(){c();var b=1<l._.pageCount;a.config.dialog_startupFocusTab&&b?(l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),l._.currentFocusIndex=-1):this._.hasFocus||(this._.currentFocusIndex=b?-1:this._.focusList.length-1,g.onFocus?
+(b=g.onFocus.call(this))&&b.focus():e(1))},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);Y(this);Z(this);(new CKEDITOR.dom.text(g.title,CKEDITOR.document)).appendTo(this.parts.title);for(m=0;m<g.contents.length;m++)(k=g.contents[m])&&this.addPage(k);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),
+this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1)),a.data.preventDefault())},this);m=[];k=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:g.buttons},m).getChild();this.parts.footer.setHtml(m.join(""));for(m=0;m<k.length;m++)this._.buttons[k[m].id]=k[m]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){this._.contentSize&&this._.contentSize.width==
 a&&this._.contentSize.height==b||(CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b})}}(),getSize:function(){var a=this._.element.getFirst();
-return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var d=this._.element.getFirst(),e="rtl"==this._.editor.lang.dir,f="fixed"==d.getComputedStyle("position");CKEDITOR.env.ie&&d.setStyle("zoom","100%");f&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},f||(f=CKEDITOR.document.getWindow().getScrollPosition(),a+=f.x,b+=f.y),e&&(f=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-f.width-a),b={top:(0<b?b:0)+"px"},
-b[e?"right":"left"]=(0<a?a:0)+"px",d.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);
-null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,N(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);
-a.on("keydown",Q);a.on("keyup",R);this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],d=this._.tabs[a.id],e=a.requiredContent,f=0;if(d){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?h.disable():(h.enable(),f++))}!f||e&&!this._.editor.activeFilter.check(e)?d[0].addClass("cke_dialog_tab_disabled"):d[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();
-X(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),d=(c.width-b.width)/2,e=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<e?e:0)>c.height||
-b.width+(0<d?d:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:d,this._.moved?this._.position.y:e)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
-commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(ba(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
-if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else O(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",Q);a.removeListener("keyup",R);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;
-this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",d=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),e=this._.contents[a.id]={},f=d.getChild(),
-g=0;d=f.shift();)d.notAllowed||"hbox"==d.type||"vbox"==d.type||g++,e[d.id]=d,"function"==typeof d.getChild&&f.push.apply(f,d.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");d=CKEDITOR.env;e="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',e,'"',d.gecko&&!d.hc?"":' href\x3d"javascript:void(0)"',
-' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",e);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(S(this,this,"CTRL+"+a.accessKey,ca,da),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&
-!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],d=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),d.hide());d.setAttribute("aria-hidden",b!=a)}var e=this._.tabs[a];e[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(K(e[1]),e[1].show(),setTimeout(function(){K(e[1],1)},0)):e[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},
-updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&1!=this._.pageCount&&b.isVisible()&&(a==this._.currentTabId&&this.selectPage(x.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},
-getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},
-getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new L(this,a,b));else{this._.focusList.splice(b,0,new L(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}},setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var b=this.getParentEditor().lang.dir,c={attributes:{"class":"cke_dialog_spinner"},
-styles:{"float":"rtl"==b?"right":"left"}};c.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",c);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&
-"function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+c+"(?:$|;)","i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",
-{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,
-b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var aa={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},D=function(a,b,c){for(var d=0,e;e=a[d];d++)if(e.id==b||c&&e[c]&&(e=D(e[c],
-b,c)))return e;return null},E=function(a,b,c,d,e){if(c){for(var f=0,g;g=a[f];f++){if(g.id==c)return a.splice(f,0,b),b;if(d&&g[d]&&(g=E(g[d],b,c,d,!0)))return g}if(e)return null}a.push(b);return b},F=function(a,b,c){for(var d=0,e;e=a[d];d++){if(e.id==b)return a.splice(d,1);if(c&&e[c]&&(e=F(e[c],b,c)))return e}return null},P=function(a,b){this.dialog=a;for(var c=b.contents,d=0,e;e=c[d];d++)c[d]=e&&new M(a,e);CKEDITOR.tools.extend(this,b)};P.prototype={getContents:function(a){return D(this.contents,
-a)},getButton:function(a){return D(this.buttons,a)},addContents:function(a,b){return E(this.contents,a,b)},addButton:function(a,b){return E(this.buttons,a,b)},removeContents:function(a){F(this.contents,a)},removeButton:function(a){F(this.buttons,a)}};M.prototype={get:function(a){return D(this.elements,a,"children")},add:function(a,b){return E(this.elements,a,b,"children")},remove:function(a){F(this.elements,a,"children")}};var J,z={},u,w={},Q=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=
-a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},R=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,d=a.data.$.shiftKey,e=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(d?"SHIFT+":"")+e])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),
-a.data.preventDefault()))},S=function(a,b,c,d,e){(w[c]||(w[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:e||a.accessKeyUp,keydown:d||a.accessKeyDown})},ba=function(a){for(var b in w){for(var c=w[b],d=c.length-1;0<=d;d--)c[d].dialog!=a&&c[d].uiElement!=a||c.splice(d,1);0===c.length&&delete w[b]}},da=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},ca=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,d,e,f,g){if(!(4>arguments.length)){var h=(d.call?d(b):d)||
-"div",p=["\x3c",h," "],m=(e&&e.call?e(b):e)||{},k=(f&&f.call?f(b):f)||{},q=(g&&g.call?g.call(this,a,b):g)||"",n=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(m.display="none",this.notAllowed=!0);k.id=n;var r={};b.type&&(r["cke_dialog_ui_"+b.type]=1);b.className&&(r[b.className]=1);b.disabled&&(r.cke_disabled=1);for(var l=k["class"]&&k["class"].split?k["class"].split(" "):[],n=0;n<l.length;n++)l[n]&&(r[l[n]]=1);l=
-[];for(n in r)l.push(n);k["class"]=l.join(" ");b.title&&(k.title=b.title);r=(b.style||"").split(";");b.align&&(l=b.align,m["margin-left"]="left"==l?0:"auto",m["margin-right"]="right"==l?0:"auto");for(n in m)r.push(n+":"+m[n]);b.hidden&&r.push("display:none");for(n=r.length-1;0<=n;n--)""===r[n]&&r.splice(n,1);0<r.length&&(k.style=(k.style?k.style+"; ":"")+r.join("; "));for(n in k)p.push(n+'\x3d"'+CKEDITOR.tools.htmlEncode(k[n])+'" ');p.push("\x3e",q,"\x3c/",h,"\x3e");c.push(p.join(""));(this._||(this._=
-{})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);
-this.registerEvents(b);this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&S(this,a,"CTRL+"+b.accessKey);var t=this;a.on("load",function(){var b=t.getInputElement();if(b){var c=t.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;t.fire("focus");c&&this.addClass(c)});b.on("blur",function(){t.fire("blur");c&&this.removeClass(c)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=
-b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=t.focusIndex}))}},hbox:function(a,b,c,d,e){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.widths||null,h=e&&e.height||null,p,m={role:"presentation"};e&&e.align&&(m.align=e.align);CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"hbox"},d,"table",{},m,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(p=0;p<c.length;p++){var b="cke_dialog_ui_hbox_child",
-d=[];0===p&&(b="cke_dialog_ui_hbox_first");p==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');g?g[p]&&d.push("width:"+v(g[p])):d.push("width:"+Math.floor(100/c.length)+"%");h&&d.push("height:"+v(h));e&&void 0!==e.padding&&d.push("padding:"+v(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[p].align&&d.push("text-align:"+f[p].align);0<d.length&&a.push('style\x3d"'+d.join("; ")+'" ');a.push("\x3e",c[p],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");
-return a.join("")})}},vbox:function(a,b,c,d,e){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=e&&e.width||null,h=e&&e.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,e||{type:"vbox"},d,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];b.push('style\x3d"');e&&e.expand&&b.push("height:100%;");b.push("width:"+v(g||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',
-CKEDITOR.tools.htmlEncode(e&&e.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var d=0;d<c.length;d++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+v(g||"100%"));h?k.push("height:"+v(h[d])):e&&e.expand&&k.push("height:"+Math.floor(100/c.length)+"%");e&&void 0!==e.padding&&k.push("padding:"+v(e.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[d].align&&k.push("text-align:"+f[d].align);0<k.length&&b.push('style\x3d"',
-k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',c[d],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},
-isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,d=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},e;for(e in a)if(c=
-e.match(b))this.eventProcessors[e]?this.eventProcessors[e].call(this,this._.dialog,a[e]):d(this,this._.dialog,c[1].toLowerCase(),a[e]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=
-this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>
-a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,d){for(var e=c.children,f,g=[],h=[],p=0;p<e.length&&(f=e[p]);p++){var m=[];g.push(m);h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,f,m))}return new CKEDITOR.ui.dialog[c.type](a,h,g,d,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",
-a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){a.openDialog(this.dialogName)},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=
-arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c,d=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(c=a[f],f++);f<a.length&&"number"==typeof a[f]&&(d=a[f]);var n=d==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)n=d==CKEDITOR.VALIDATE_AND?n&&e[f](b):n||e[f](b);return n?!0:c}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return a.test(c)?!0:b}},
-notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))},a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},
-notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in z)z[c].remove();z={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,d=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&N(this);if("function"==typeof d)c=
-this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==d)throw O(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof d&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(d),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();
-CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(x){x.on("doubleclick",function(A){A.data.dialog&&x.openDialog(A.data.dialog)},null,null,999)}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=b.langCode,a=c.availableLangs[a]?
-a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(a){a.data.label=b.lang.common.editorHelp})}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){a=new CKEDITOR.style(a);var f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
+return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var e=this._.element.getFirst(),d="rtl"==this._.editor.lang.dir,f="fixed"==e.getComputedStyle("position");CKEDITOR.env.ie&&e.setStyle("zoom","100%");f&&this._.position&&this._.position.x==a&&this._.position.y==b||(this._.position={x:a,y:b},f||(f=CKEDITOR.document.getWindow().getScrollPosition(),a+=f.x,b+=f.y),d&&(f=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-f.width-a),b={top:(0<b?b:0)+"px"},
+b[d?"right":"left"]=(0<a?a:0)+"px",e.setStyles(b),c&&(this._.moved=1))},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;a.getParent()&&a.getParent().equals(CKEDITOR.document.getBody())?a.setStyle("display","block"):a.appendTo(CKEDITOR.document.getBody());this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();null===
+this._.currentTabId&&this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,N(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/
+2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",Q);a.on("keyup",R);this._.hasFocus=!1;for(var c in b.contents)if(b.contents[c]){var a=b.contents[c],e=this._.tabs[a.id],d=a.requiredContent,f=0;if(e){for(var g in this._.contents[a.id]){var h=this._.contents[a.id][g];"hbox"!=h.type&&"vbox"!=h.type&&h.getInputElement()&&(h.requiredContent&&!this._.editor.activeFilter.check(h.requiredContent)?h.disable():(h.enable(),f++))}!f||d&&!this._.editor.activeFilter.check(d)?e[0].addClass("cke_dialog_tab_disabled"):
+e[0].removeClass("cke_dialog_tab_disabled")}}CKEDITOR.tools.setTimeout(function(){this.layout();X(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e=
+(c.width-b.width)/2,d=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<d?d:0)>c.height||b.width+(0<e?e:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:e,this._.moved?this._.position.y:d)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),
+setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility",
+"hidden");for(ba(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else O(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",Q);a.removeListener("keyup",R);var c=this._.editor;
+c.focus();setTimeout(function(){c.focusManager.unlock();CKEDITOR.env.iOS&&c.window.focus()},0)}delete this._.parentDialog;this.foreach(function(a){a.resetInitValue&&a.resetInitValue()});this.setState(CKEDITOR.DIALOG_STATE_IDLE)}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title\x3d"'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",
+children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),d=this._.contents[a.id]={},f=e.getChild(),g=0;e=f.shift();)e.notAllowed||"hbox"==e.type||"vbox"==e.type||g++,d[e.id]=e,"function"==typeof e.getChild&&f.push.apply(f,e.getChild());g||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");e=CKEDITOR.env;d="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['\x3ca class\x3d"cke_dialog_tab"',
+0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style\x3d"display:none"':"",' id\x3d"',d,'"',e.gecko&&!e.hc?"":' href\x3d"javascript:void(0)"',' tabIndex\x3d"-1" hidefocus\x3d"true" role\x3d"tab"\x3e',a.label,"\x3c/a\x3e"].join(""));b.setAttribute("aria-labelledby",d);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&
+(S(this,this,"CTRL+"+a.accessKey,ca,da),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!this._.tabs[a][0].hasClass("cke_dialog_tab_disabled")&&!1!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),e.hide());e.setAttribute("aria-hidden",b!=a)}var d=this._.tabs[a];d[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||
+CKEDITOR.env.ie7Compat?(K(d[1]),d[1].show(),setTimeout(function(){K(d[1],1)},0)):d[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&1!=this._.pageCount&&b.isVisible()&&(a==this._.currentTabId&&this.selectPage(x.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=
+this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},
+enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new L(this,a,b));else{this._.focusList.splice(b,0,new L(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}},
+setState:function(a){if(this.state!=a){this.state=a;if(a==CKEDITOR.DIALOG_STATE_BUSY){if(!this.parts.spinner){var b=this.getParentEditor().lang.dir,c={attributes:{"class":"cke_dialog_spinner"},styles:{"float":"rtl"==b?"right":"left"}};c.styles["margin-"+("rtl"==b?"left":"right")]="8px";this.parts.spinner=CKEDITOR.document.createElement("div",c);this.parts.spinner.setHtml("\x26#8987;");this.parts.spinner.appendTo(this.parts.title,1)}this.parts.spinner.show();this.getButton("ok").disable()}else a==
+CKEDITOR.DIALOG_STATE_IDLE&&(this.parts.spinner&&this.parts.spinner.hide(),this.getButton("ok").enable());this.fire("state",a)}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){this._.dialogDefinitions[a]&&"function"!=typeof b||(this._.dialogDefinitions[a]=b)},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(new RegExp("(?:^|;)"+b+":"+c+"(?:$|;)",
+"i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,
+"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);
+var aa={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},D=function(a,b,c){for(var e=0,d;d=a[e];e++)if(d.id==b||c&&d[c]&&(d=D(d[c],b,c)))return d;return null},E=function(a,b,c,e,d){if(c){for(var f=0,g;g=a[f];f++){if(g.id==c)return a.splice(f,0,b),b;if(e&&g[e]&&(g=E(g[e],b,c,e,!0)))return g}if(d)return null}a.push(b);return b},F=function(a,b,c){for(var e=0,d;d=a[e];e++){if(d.id==b)return a.splice(e,1);if(c&&d[c]&&(d=F(d[c],
+b,c)))return d}return null},P=function(a,b){this.dialog=a;for(var c=b.contents,e=0,d;d=c[e];e++)c[e]=d&&new M(a,d);CKEDITOR.tools.extend(this,b)};P.prototype={getContents:function(a){return D(this.contents,a)},getButton:function(a){return D(this.buttons,a)},addContents:function(a,b){return E(this.contents,a,b)},addButton:function(a,b){return E(this.buttons,a,b)},removeContents:function(a){F(this.contents,a)},removeButton:function(a){F(this.buttons,a)}};M.prototype={get:function(a){return D(this.elements,
+a,"children")},add:function(a,b){return E(this.elements,a,b,"children")},remove:function(a){F(this.elements,a,"children")}};var J,z={},u,w={},Q=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},R=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,
+e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);(b=w[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length&&(b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault()))},S=function(a,b,c,e,d){(w[c]||(w[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:d||a.accessKeyUp,keydown:e||a.accessKeyDown})},ba=function(a){for(var b in w){for(var c=w[b],e=c.length-1;0<=e;e--)c[e].dialog!=a&&c[e].uiElement!=a||c.splice(e,1);0===c.length&&delete w[b]}},da=function(a,
+b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},ca=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,e,d,f,g){if(!(4>arguments.length)){var h=(e.call?e(b):e)||"div",p=["\x3c",h," "],m=(d&&d.call?d(b):d)||{},k=(f&&f.call?f(b):f)||{},q=(g&&g.call?g.call(this,a,b):g)||"",n=this.domId=k.id||CKEDITOR.tools.getNextId()+"_uiElement";b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&(m.display="none",this.notAllowed=!0);k.id=n;var r={};b.type&&(r["cke_dialog_ui_"+
+b.type]=1);b.className&&(r[b.className]=1);b.disabled&&(r.cke_disabled=1);for(var l=k["class"]&&k["class"].split?k["class"].split(" "):[],n=0;n<l.length;n++)l[n]&&(r[l[n]]=1);l=[];for(n in r)l.push(n);k["class"]=l.join(" ");b.title&&(k.title=b.title);r=(b.style||"").split(";");b.align&&(l=b.align,m["margin-left"]="left"==l?0:"auto",m["margin-right"]="right"==l?0:"auto");for(n in m)r.push(n+":"+m[n]);b.hidden&&r.push("display:none");for(n=r.length-1;0<=n;n--)""===r[n]&&r.splice(n,1);0<r.length&&(k.style=
+(k.style?k.style+"; ":"")+r.join("; "));for(n in k)p.push(n+'\x3d"'+CKEDITOR.tools.htmlEncode(k[n])+'" ');p.push("\x3e",q,"\x3c/",h,"\x3e");c.push(p.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&&
+(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);this.accessKeyUp&&this.accessKeyDown&&b.accessKey&&S(this,a,"CTRL+"+b.accessKey);var t=this;a.on("load",function(){var b=t.getInputElement();if(b){var c=t.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=!1;a._.hasFocus=!0;t.fire("focus");
+c&&this.addClass(c)});b.on("blur",function(){t.fire("blur");c&&this.removeClass(c)})}});CKEDITOR.tools.extend(this,b);this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=t.focusIndex}))}},hbox:function(a,b,c,e,d){if(!(4>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.widths||null,h=d&&d.height||null,p,m={role:"presentation"};d&&d.align&&(m.align=d.align);CKEDITOR.ui.dialog.uiElement.call(this,
+a,d||{type:"hbox"},e,"table",{},m,function(){var a=['\x3ctbody\x3e\x3ctr class\x3d"cke_dialog_ui_hbox"\x3e'];for(p=0;p<c.length;p++){var b="cke_dialog_ui_hbox_child",e=[];0===p&&(b="cke_dialog_ui_hbox_first");p==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('\x3ctd class\x3d"',b,'" role\x3d"presentation" ');g?g[p]&&e.push("width:"+v(g[p])):e.push("width:"+Math.floor(100/c.length)+"%");h&&e.push("height:"+v(h));d&&void 0!==d.padding&&e.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&
+f[p].align&&e.push("text-align:"+f[p].align);0<e.length&&a.push('style\x3d"'+e.join("; ")+'" ');a.push("\x3e",c[p],"\x3c/td\x3e")}a.push("\x3c/tr\x3e\x3c/tbody\x3e");return a.join("")})}},vbox:function(a,b,c,e,d){if(!(3>arguments.length)){this._||(this._={});var f=this._.children=b,g=d&&d.width||null,h=d&&d.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"vbox"},e,"div",null,{role:"presentation"},function(){var b=['\x3ctable role\x3d"presentation" cellspacing\x3d"0" border\x3d"0" '];
+b.push('style\x3d"');d&&d.expand&&b.push("height:100%;");b.push("width:"+v(g||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align\x3d"',CKEDITOR.tools.htmlEncode(d&&d.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("\x3e\x3ctbody\x3e");for(var e=0;e<c.length;e++){var k=[];b.push('\x3ctr\x3e\x3ctd role\x3d"presentation" ');g&&k.push("width:"+v(g||"100%"));h?k.push("height:"+v(h[e])):d&&d.expand&&k.push("height:"+Math.floor(100/c.length)+"%");
+d&&void 0!==d.padding&&k.push("padding:"+v(d.padding));CKEDITOR.env.ie&&CKEDITOR.env.quirks&&f[e].align&&k.push("text-align:"+f[e].align);0<k.length&&b.push('style\x3d"',k.join("; "),'" ');b.push(' class\x3d"cke_dialog_ui_vbox_child"\x3e',c[e],"\x3c/td\x3e\x3c/tr\x3e")}b.push("\x3c/tbody\x3e\x3c/table\x3e");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},
+setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();
+return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},d;for(d in a)if(c=d.match(b))this.eventProcessors[d]?this.eventProcessors[d].call(this,this._.dialog,a[d]):e(this,this._.dialog,c[1].toLowerCase(),a[d]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},
+disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return this.isEnabled()&&this.isVisible()?!0:!1}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
+{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,e){for(var d=c.children,f,g=[],h=[],p=0;p<d.length&&(f=d[p]);p++){var m=[];g.push(m);h.push(CKEDITOR.dialog._.uiElementBuilders[f.type].build(a,f,m))}return new CKEDITOR.ui.dialog[c.type](a,
+h,g,e,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){var b=this.tabId;a.openDialog(this.dialogName,function(a){b&&a.selectPage(b)})},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
+f=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c,d=CKEDITOR.VALIDATE_AND,e=[],f;for(f=0;f<a.length;f++)if("function"==typeof a[f])e.push(a[f]);else break;f<a.length&&"string"==typeof a[f]&&(c=a[f],f++);f<a.length&&"number"==typeof a[f]&&(d=a[f]);var n=d==CKEDITOR.VALIDATE_AND?!0:!1;for(f=0;f<e.length;f++)n=d==CKEDITOR.VALIDATE_AND?n&&
+e[f](b):n||e[f](b);return n?!0:c}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return a.test(c)?!0:b}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return f.test(CKEDITOR.tools.trim(a))},
+a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in z)z[c].remove();z={}}a=a.editor._.storedDialogs;for(var d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,e=CKEDITOR.dialog._.dialogDefinitions[a];
+null===CKEDITOR.dialog._.currentTop&&N(this);if("function"==typeof e)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==e)throw O(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,
+b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(x){x.on("doubleclick",function(A){A.data.dialog&&x.openDialog(A.data.dialog)},null,null,999)}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,"de-ch":1,el:1,en:1,"en-gb":1,eo:1,es:1,"es-mx":1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,"fr-ca":1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,"sr-latn":1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=
+b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js");b.on("ariaEditorHelpLabel",function(a){a.data.label=b.lang.common.editorHelp})}})})();(function(){function f(c){var a=this.att;c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var k={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=k);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
+"";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=k);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
+style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(new RegExp("(?:^|;)\\s*"+
+a+"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
+widths:["50%","50%"],children:[].concat(e)});return h}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){a=new CKEDITOR.style(a);var f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
 a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},b=c.config,a=c.lang.basicstyles;d("Bold",a.bold,"bold",b.coreStyles_bold);d("Italic",a.italic,"italic",b.coreStyles_italic);d("Underline",a.underline,"underline",b.coreStyles_underline);d("Strike",a.strike,"strike",b.coreStyles_strike);d("Subscript",a.subscript,
 "subscript",b.coreStyles_subscript);d("Superscript",a.superscript,"superscript",b.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};
-CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var f=CKEDITOR.addTemplate("panel",
-'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),g=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),h=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');
-CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(h.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
-b+");"},d)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var d={editorId:a.id,id:this.id,langCode:a.langCode,
-dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var e=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";d.frame=g.output({id:this.id+"_frame",src:e})}e=f.output(d);b&&b.push(e);return e},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
-b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,d=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&b.hide();this._.currentBlock=a;CKEDITOR.fire("ariaWidget",d);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=
+CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var g=CKEDITOR.addTemplate("panel",
+'\x3cdiv lang\x3d"{langCode}" id\x3d"{id}" dir\x3d{dir} class\x3d"cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style\x3d"z-index:{z-index}" role\x3d"presentation"\x3e{frame}\x3c/div\x3e'),h=CKEDITOR.addTemplate("panel-frame",'\x3ciframe id\x3d"{id}" class\x3d"cke_panel_frame" role\x3d"presentation" frameborder\x3d"0" src\x3d"{src}"\x3e\x3c/iframe\x3e'),k=CKEDITOR.addTemplate("panel-frame-inner",'\x3c!DOCTYPE html\x3e\x3chtml class\x3d"cke_panel_container {env}" dir\x3d"{dir}" lang\x3d"{langCode}"\x3e\x3chead\x3e{css}\x3c/head\x3e\x3cbody class\x3d"cke_{dir}" style\x3d"margin:0;padding:0" onload\x3d"{onload}"\x3e\x3c/body\x3e\x3c/html\x3e');
+CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(k.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
+b+");"},e)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("keydown",function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var e={editorId:a.id,id:this.id,langCode:a.langCode,
+dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};if(this.isFramed){var d=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+"}())":"";e.frame=h.output({id:this.id+"_frame",src:d})}d=g.output(e);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
+b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){a=this._.blocks[a];var b=this._.currentBlock,e=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&b.hide();this._.currentBlock=a;CKEDITOR.fire("ariaWidget",e);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&this.element.remove()}};CKEDITOR.ui.panel.block=
 CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabindex:-1,"class":"cke_panel_block"},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.element.setAttributes({role:this.attributes.role||"presentation","aria-label":this.attributes["aria-label"],title:this.attributes.title||this.attributes["aria-label"]});this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=
-a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var d=this.keys[a];switch(d){case "next":for(var e=this._.focusIndex,d=this.element.getElementsByTag("a"),c;c=d.getItem(++e);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=e;c.focus();break}return c||
-b?!1:(this._.focusIndex=-1,this.onKeyDown(a,1));case "prev":e=this._.focusIndex;for(d=this.element.getElementsByTag("a");0<e&&(c=d.getItem(--e));){if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=e;c.focus();break}c=null}return c||b?!1:(this._.focusIndex=d.count(),this.onKeyDown(a,1));case "click":case "mouseup":return e=this._.focusIndex,(c=0<=e&&this.element.getElementsByTag("a").getItem(e))&&(c.$[d]?c.$[d]():c.$["on"+d]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
-(function(){function v(a,b,c,l,h){h=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",l.css||"",h||"");var g=f[h];g||(g=f[h]=new CKEDITOR.ui.panel(b,l),g.element=c.append(CKEDITOR.dom.element.createFromHtml(g.render(a),b)),g.element.setStyles({display:"none",position:"absolute"}));return g}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,l){function h(){e.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
-(b=CKEDITOR.document.getById("cke_"+a.name));var g=b.getDocument();l=v(a,g,b,c,l||0);var m=l.element,p=m.getFirst(),e=this;m.disableContextMenu();this.element=m;this._={editor:a,panel:l,parentElement:b,definition:c,document:g,iframe:p,children:[],dir:a.lang.dir,showBlockParams:null};a.on("mode",h);a.on("resize",h);g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,
-b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,l,h,g){var m=this._.panel,p=m.showBlock(a);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var e=this._.editor.editable();this._.returnFocus=e.hasFocus?e:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var k=this.element,e=this._.iframe,e=CKEDITOR.env.ie&&!CKEDITOR.env.edge?e:new CKEDITOR.dom.window(e.$.contentWindow),f=k.getDocument(),r=this._.parentElement.getPositionedAncestor(),
-t=b.getDocumentPosition(f),f=r?r.getDocumentPosition(f):{x:0,y:0},q="rtl"==this._.dir,d=t.x+(l||0)-f.x,n=t.y+(h||0)-f.y;!q||1!=c&&4!=c?q||2!=c&&3!=c||(d+=b.$.offsetWidth-1):d+=b.$.offsetWidth;if(3==c||4==c)n+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();k.setStyles({top:n+"px",left:0,display:""});k.setOpacity(0);k.getFirst().removeStyle("width");this._.editor.focusManager.add(e);this._.blurSet||(CKEDITOR.event.useCapture=!0,e.on("blur",function(a){function u(){delete this._.returnFocus;
+a),CKEDITOR.env.webkit&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))},markFirstDisplayed:function(a){for(var b=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"none"==a.getStyle("display")},e=this._.getItems(),d,c,f=e.count()-1;0<=f;f--)if(d=e.getItem(f),d.getAscendant(b)||(c=d,this._.focusIndex=f),"true"==d.getAttribute("aria-selected")){c=d;this._.focusIndex=f;break}c&&(a&&a(),CKEDITOR.env.webkit&&c.getDocument().getWindow().focus(),c.focus(),this.onMark&&this.onMark(c))},
+getItems:function(){return this.element.getElementsByTag("a")}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){this.onHide&&!0===this.onHide.call(this)||this.element.setStyle("display","none")},onKeyDown:function(a,b){var e=this.keys[a];switch(e){case "next":for(var d=this._.focusIndex,e=this.element.getElementsByTag("a"),c;c=e.getItem(++d);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}return c||b?!1:(this._.focusIndex=-1,this.onKeyDown(a,
+1));case "prev":d=this._.focusIndex;for(e=this.element.getElementsByTag("a");0<d&&(c=e.getItem(--d));){if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=d;c.focus();break}c=null}return c||b?!1:(this._.focusIndex=e.count(),this.onKeyDown(a,1));case "click":case "mouseup":return d=this._.focusIndex,(c=0<=d&&this.element.getElementsByTag("a").getItem(d))&&(c.$[e]?c.$[e]():c.$["on"+e]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
+(function(){function v(a,b,c,m,h){h=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",m.css||"",h||"");var g=f[h];g||(g=f[h]=new CKEDITOR.ui.panel(b,m),g.element=c.append(CKEDITOR.dom.element.createFromHtml(g.render(a),b)),g.element.setStyles({display:"none",position:"absolute"}));return g}var f={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,m){function h(){e.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
+(b=CKEDITOR.document.getById("cke_"+a.name));var g=b.getDocument();m=v(a,g,b,c,m||0);var n=m.element,k=n.getFirst(),e=this;n.disableContextMenu();this.element=n;this._={editor:a,panel:m,parentElement:b,definition:c,document:g,iframe:k,children:[],dir:a.lang.dir,showBlockParams:null};a.on("mode",h);a.on("resize",h);g.getWindow().on("resize",function(){this.reposition()},this)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,
+b)},getBlock:function(a){return this._.panel.getBlock(a)},showBlock:function(a,b,c,m,h,g){var n=this._.panel,k=n.showBlock(a);this._.showBlockParams=[].slice.call(arguments);this.allowBlur(!1);var e=this._.editor.editable();this._.returnFocus=e.hasFocus?e:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);this._.hideTimeout=0;var l=this.element,e=this._.iframe,e=CKEDITOR.env.ie&&!CKEDITOR.env.edge?e:new CKEDITOR.dom.window(e.$.contentWindow),f=l.getDocument(),r=this._.parentElement.getPositionedAncestor(),
+t=b.getDocumentPosition(f),f=r?r.getDocumentPosition(f):{x:0,y:0},q="rtl"==this._.dir,d=t.x+(m||0)-f.x,p=t.y+(h||0)-f.y;!q||1!=c&&4!=c?q||2!=c&&3!=c||(d+=b.$.offsetWidth-1):d+=b.$.offsetWidth;if(3==c||4==c)p+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();l.setStyles({top:p+"px",left:0,display:""});l.setOpacity(0);l.getFirst().removeStyle("width");this._.editor.focusManager.add(e);this._.blurSet||(CKEDITOR.event.useCapture=!0,e.on("blur",function(a){function u(){delete this._.returnFocus;
 this.hide()}this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&this.visible&&!this._.activeChild&&(CKEDITOR.env.iOS?this._.hideTimeout||(this._.hideTimeout=CKEDITOR.tools.setTimeout(u,0,this)):u.call(this))},this),e.on("focus",function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.env.iOS&&(e.on("touchstart",function(){clearTimeout(this._.hideTimeout)},this),e.on("touchend",function(){this._.hideTimeout=0;this.focus()},this)),CKEDITOR.event.useCapture=!1,
-this._.blurSet=1);m.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=k;a.removeStyle("width");if(p.autoSize){var b=p.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?p.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=p.element.$.scrollHeight;CKEDITOR.env.ie&&
-CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");m._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(d-=k.$.offsetWidth);k.setStyle("left",d+"px");var b=m.element.getWindow(),a=k.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,e=a.height||a.bottom-a.top,l=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?l<c&&(d=h>c?d+c:b.width>c?d-a.left:d-a.right+b.width):
-l<c&&(d=h>c?d-c:b.width>c?d-a.right+b.width:d-a.left);c=a.top;b.height-a.top<e&&(n=c>e?n-e:b.height>e?n-a.bottom+b.height:n-a.top);CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(k.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(d=CKEDITOR.env.ie8Compat?d-2*k.getDocument().getDocumentElement().$.scrollLeft:d-(a.$.scrollWidth-a.$.clientWidth)));var a=k.getFirst(),f;(f=a.getCustomData("activePanel"))&&f.onHide&&f.onHide.call(this,1);a.setCustomData("activePanel",
-this);k.setStyles({top:n+"px",left:d+"px"});k.setOpacity(1);g&&g()},this);m.isLoaded?a():m.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();p.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;
-this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();
-this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus();delete this._.lastFocused;this._.showBlockParams=null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=
-CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),
-b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(g){for(var h=g.config.menu_groups.split(","),p=g._.menuGroups={},n=g._.menuItems={},a=0;a<h.length;a++)p[h[a]]=a+1;g.addMenuGroup=function(b,a){p[b]=a||100};g.addMenuItem=function(a,c){p[c.group]&&(n[a]=new CKEDITOR.menuItem(this,a,c))};g.addMenuItems=function(a){for(var c in a)this.addMenuItem(c,a[c])};g.getMenuItem=function(a){return n[a]};g.removeMenuItem=function(a){delete n[a]}}});
-(function(){function g(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1"_cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked}';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');
-CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e'),p=CKEDITOR.addTemplate("menuItem",h+'\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e'),
-n=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),m=c.block.attributes=c.attributes||{};!m.role&&(m.role="menu");this._.panelDefinition=
-c},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),m=this._.listeners;this.removeAll();for(var e=0;e<m.length;e++){var l=m[e](b,a,c);if(l)for(var k in l){var f=this.editor.getMenuItem(k);!f||f.command&&!this.editor.getCommand(f.command).state||(f.state=l[k],this.add(f))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):
-27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,c=this.items[a];if(c=c.getItems&&c.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var m in c){var e=this.editor.getMenuItem(m);e&&(e.state=c[m],b.add(e))}var l=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+
-String(a));setTimeout(function(){b.show(l,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,c,m){if(!this.parent&&(this._.onShow(),!this.items.length))return;b=b||("rtl"==this.editor.lang.dir?2:1);var e=this.items,l=this.editor,k=this._.panel,f=this._.element;if(!k){k=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);
-k.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);k.onShow=function(){k._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};k.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);f=k.addBlock(this.id,this._.panelDefinition.block);f.autoSize=!0;var d=f.keys;d[40]="next";d[9]="next";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d["rtl"==l.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";d[32]=CKEDITOR.env.ie?"mouseup":
-"click";CKEDITOR.env.ie&&(d[13]="mouseup");f=this._.element=f.element;d=f.getDocument();d.getBody().setStyle("overflow","hidden");d.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,l.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
-this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}g(e);for(var d=l.elementPath(),d=['\x3cdiv class\x3d"cke_menu'+(d&&d.direction()!=l.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],h=e.length,p=h&&e[0].group,n=0;n<h;n++){var q=e[n];p!=q.group&&(d.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
-p=q.group);q.render(this,n,d)}d.push("\x3c/div\x3e");f.setHtml(d.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(k,this.id,a,b,c,m):k.showBlock(this.id,a,b,c,m);l.fire("menuShow",[k])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=
-a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,c){var h=a.id+String(b),e="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,l="",k=e==CKEDITOR.TRISTATE_ON?"on":e==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(l=' aria-checked\x3d"'+(e==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var f=this.getItems,d="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",g=this.name;this.icon&&!/\./.test(this.icon)&&(g=
-this.icon);a={id:h,name:this.name,iconName:g,label:this.label,cls:this.className||"",state:k,hasPopup:f?"true":"false",disabled:e==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(g,"rtl"==this.editor.lang.dir,g==this.icon?null:this.icon,this.iconOffset),arrowHtml:f?n.output({label:d}):"",role:this.role?this.role:"menuitem",ariaChecked:l};
-p.output(a,c)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,e){a.on("contextmenu",function(a){a=a.data;var c=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!e||!c){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var c=this.editor,
+this._.blurSet=1);n.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&!1===this.onEscape(a))return!1},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){var a=l;a.removeStyle("width");if(k.autoSize){var b=k.element.getDocument(),b=(CKEDITOR.env.webkit||CKEDITOR.env.edge?k.element:b.getBody()).$.scrollWidth;CKEDITOR.env.ie&&CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetWidth||0)-(a.$.clientWidth||0)+3);a.setStyle("width",b+10+"px");b=k.element.$.scrollHeight;CKEDITOR.env.ie&&
+CKEDITOR.env.quirks&&0<b&&(b+=(a.$.offsetHeight||0)-(a.$.clientHeight||0)+3);a.setStyle("height",b+"px");n._.currentBlock.element.setStyle("display","none").removeStyle("display")}else a.removeStyle("height");q&&(d-=l.$.offsetWidth);l.setStyle("left",d+"px");var b=n.element.getWindow(),a=l.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,e=a.height||a.bottom-a.top,m=q?a.right:b.width-a.left,h=q?b.width-a.right:a.left;q?m<c&&(d=h>c?d+c:b.width>c?d-a.left:d-a.right+b.width):
+m<c&&(d=h>c?d-c:b.width>c?d-a.right+b.width:d-a.left);c=a.top;b.height-a.top<e&&(p=c>e?p-e:b.height>e?p-a.bottom+b.height:p-a.top);CKEDITOR.env.ie&&(b=a=new CKEDITOR.dom.element(l.$.offsetParent),"html"==b.getName()&&(b=b.getDocument().getBody()),"rtl"==b.getComputedStyle("direction")&&(d=CKEDITOR.env.ie8Compat?d-2*l.getDocument().getDocumentElement().$.scrollLeft:d-(a.$.scrollWidth-a.$.clientWidth)));var a=l.getFirst(),f;(f=a.getCustomData("activePanel"))&&f.onHide&&f.onHide.call(this,1);a.setCustomData("activePanel",
+this);l.setStyles({top:p+"px",left:d+"px"});l.setOpacity(1);g&&g()},this);n.isLoaded?a():n.onLoad=a;CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.env.webkit&&CKEDITOR.document.getWindow().getScrollPosition().y;this.focus();k.element.focus();CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=a);this.allowBlur(!0);CKEDITOR.env.ie?CKEDITOR.tools.setTimeout(function(){k.markFirstDisplayed?k.markFirstDisplayed():k._.markFirstDisplayed()},0):k.markFirstDisplayed?k.markFirstDisplayed():
+k._.markFirstDisplayed();this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},reposition:function(){var a=this._.showBlockParams;this.visible&&this._.showBlockParams&&(this.hide(),this.showBlock.apply(this,a))},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();a&&!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=
+this._.iframe.getFrameDocument().getActive();a&&a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),a.focus();delete this._.lastFocused;this._.showBlockParams=
+null;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!==a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,f,h,g){if(this._.activeChild!=a||a._.panel._.offsetParentId!=c.getId())this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,f,h,g),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&setTimeout(function(){a.element.getChild(0).$.style.cssText+=
+""},100)},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in f){var c=f[b];a?c.destroy():c.element.hide()}a&&(f={})})})();CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(l){for(var h=l.config.menu_groups.split(","),r=l._.menuGroups={},t=l._.menuItems={},n=0;n<h.length;n++)r[h[n]]=n+1;l.addMenuGroup=function(a,b){r[a]=b||100};l.addMenuItem=function(a,b){r[b.group]&&(t[a]=new CKEDITOR.menuItem(this,a,b))};l.addMenuItems=function(a){for(var b in a)this.addMenuItem(b,a[b])};l.getMenuItem=function(a){return t[a]};l.removeMenuItem=function(a){delete t[a]}}});
+(function(){function l(a){a.sort(function(a,d){return a.group<d.group?-1:a.group>d.group?1:a.order<d.order?-1:a.order>d.order?1:0})}var h='\x3cspan class\x3d"cke_menuitem"\x3e\x3ca id\x3d"{id}" class\x3d"cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href\x3d"{href}" title\x3d"{title}" tabindex\x3d"-1" _cke_focus\x3d1 hidefocus\x3d"true" role\x3d"{role}" aria-label\x3d"{label}" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasPopup}" aria-disabled\x3d"{disabled}" {ariaChecked} draggable\x3d"false"';
+CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(h+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(h+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;" ondragstart\x3d"return false;"');var h=h+(' onmouseover\x3d"CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout\x3d"CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;"\x3e'),r=CKEDITOR.addTemplate("menuItem",
+h+'\x3cspan class\x3d"cke_menubutton_inner"\x3e\x3cspan class\x3d"cke_menubutton_icon"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{iconStyle}"\x3e\x3c/span\x3e\x3c/span\x3e\x3cspan class\x3d"cke_menubutton_label"\x3e{label}\x3c/span\x3e{shortcutHtml}{arrowHtml}\x3c/span\x3e\x3c/a\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_voice_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e\x3c/span\x3e'),t=CKEDITOR.addTemplate("menuArrow",'\x3cspan class\x3d"cke_menuarrow"\x3e\x3cspan\x3e{label}\x3c/span\x3e\x3c/span\x3e'),
+n=CKEDITOR.addTemplate("menuShortcut",'\x3cspan class\x3d"cke_menubutton_label cke_menubutton_shortcut"\x3e{shortcut}\x3c/span\x3e');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var d=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),m=d.block.attributes=d.attributes||{};!m.role&&(m.role="menu");this._.panelDefinition=
+d},_:{onShow:function(){var a=this.editor.getSelection(),b=a&&a.getStartElement(),d=this.editor.elementPath(),m=this._.listeners;this.removeAll();for(var g=0;g<m.length;g++){var k=m[g](b,a,d);if(k)for(var e in k){var f=this.editor.getMenuItem(e);!f||f.command&&!this.editor.getCommand(f.command).state||(f.state=k[e],this.add(f))}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):
+27==a&&this.hide(1);return!1},onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,d=this.items[a];if(d=d.getItems&&d.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var m in d){var g=this.editor.getMenuItem(m);g&&(g.state=d[m],b.add(g))}var k=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+
+String(a));setTimeout(function(){b.show(k,2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,d,m){if(!this.parent&&(this._.onShow(),!this.items.length))return;b=b||("rtl"==this.editor.lang.dir?2:1);var g=this.items,k=this.editor,e=this._.panel,f=this._.element;if(!e){e=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);
+e.onEscape=CKEDITOR.tools.bind(function(a){if(!1===this._.onEscape(a))return!1},this);e.onShow=function(){e._.panel.getHolderElement().getParent().addClass("cke").addClass("cke_reset_all")};e.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);f=e.addBlock(this.id,this._.panelDefinition.block);f.autoSize=!0;var c=f.keys;c[40]="next";c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c["rtl"==k.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";c[32]=CKEDITOR.env.ie?"mouseup":
+"click";CKEDITOR.env.ie&&(c[13]="mouseup");f=this._.element=f.element;c=f.getDocument();c.getBody().setStyle("overflow","hidden");c.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,k.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);
+this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}l(g);for(var c=k.elementPath(),c=['\x3cdiv class\x3d"cke_menu'+(c&&c.direction()!=k.lang.dir?" cke_mixed_dir_content":"")+'" role\x3d"presentation"\x3e'],h=g.length,n=h&&g[0].group,q=0;q<h;q++){var p=g[q];n!=p.group&&(c.push('\x3cdiv class\x3d"cke_menuseparator" role\x3d"separator"\x3e\x3c/div\x3e'),
+n=p.group);p.render(this,q,c)}c.push("\x3c/div\x3e");f.setHtml(c.join(""));CKEDITOR.ui.fire("ready",this);this.parent?this.parent._.panel.showAsChild(e,this.id,a,b,d,m):e.showBlock(this.id,a,b,d,m);k.fire("menuShow",[e])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,d){CKEDITOR.tools.extend(this,d,{order:0,className:"cke_menubutton__"+b});this.group=
+a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,d){var h=a.id+String(b),g="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,k="",e=this.editor,f,c,l=g==CKEDITOR.TRISTATE_ON?"on":g==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";this.role in{menuitemcheckbox:1,menuitemradio:1}&&(k=' aria-checked\x3d"'+(g==CKEDITOR.TRISTATE_ON?"true":"false")+'"');var u=this.getItems,q="\x26#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",p=this.name;this.icon&&!/\./.test(this.icon)&&
+(p=this.icon);this.command&&(f=e.getCommand(this.command),(f=e.getCommandKeystroke(f))&&(c=CKEDITOR.tools.keystrokeToString(e.lang.common.keyboard,f)));a={id:h,name:this.name,iconName:p,label:this.label,cls:this.className||"",state:l,hasPopup:u?"true":"false",disabled:g==CKEDITOR.TRISTATE_DISABLED,title:this.label+(c?" ("+c.display+")":""),ariaShortcut:c?e.lang.common.keyboardShortcut+" "+c.aria:"",href:"javascript:void('"+(this.label||"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,
+clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(p,"rtl"==this.editor.lang.dir,p==this.icon?null:this.icon,this.iconOffset),shortcutHtml:c?n.output({shortcut:c.display}):"",arrowHtml:u?t.output({label:q}):"",role:this.role?this.role:"menuitem",ariaChecked:k};r.output(a,d)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(a){this.base.call(this,a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.contextmenu.options}}})},proto:{addTarget:function(a,e){a.on("contextmenu",function(a){a=a.data;var c=CKEDITOR.env.webkit?f:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey;if(!e||!c){a.preventDefault();if(CKEDITOR.env.mac&&CKEDITOR.env.webkit){var c=this.editor,
 b=(new CKEDITOR.dom.elementPath(a.getTarget(),c.editable())).contains(function(a){return a.hasAttribute("contenteditable")},!0);b&&"false"==b.getAttribute("contenteditable")&&c.getSelection().fake(b)}var b=a.getTarget().getDocument(),d=a.getTarget().getDocument().getDocumentElement(),c=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),g=c?a.$.clientX:a.$.pageX||b.x+a.$.clientX,h=c?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(d,null,g,h)},CKEDITOR.env.ie?
-200:0,this)}},this);if(CKEDITOR.env.webkit){var f,d=function(){f=0};a.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",d);a.on("contextmenu",d)}},open:function(a,e,f,d){this.editor.focus();a=a||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);this.show(a,e,f,d)}}})},beforeInit:function(a){var e=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){e.addTarget(a.editable(),!1!==a.config.browserContextMenuOnCtrl)});
-a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}});a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){function f(c){var a=this.att;c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var k={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=k);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
-"";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=k);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
-style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(new RegExp("(?:^|;)\\s*"+
-a+"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
-widths:["50%","50%"],children:[].concat(e)});return h}})})();(function(){function q(a,d){function l(c){c=k.list[c];if(c.equals(a.editable())||"true"==c.getAttribute("contenteditable")){var e=a.createRange();e.selectNodeContents(c);e.select()}else a.getSelection().selectElement(c);a.focus()}function m(){n&&n.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete k.list}var p=a.ui.spaceId("path"),n,k=a._.elementsPath,q=k.idBase;d.html+='\x3cspan id\x3d"'+p+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+
-p+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+p+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});k.onClick=l;var v=CKEDITOR.tools.addFunction(l),w=CKEDITOR.tools.addFunction(function(c,e){var g=k.idBase,b;e=new CKEDITOR.dom.event(e);b="rtl"==a.lang.dir;switch(e.getKeystroke()){case b?39:37:case 9:return(b=CKEDITOR.document.getById(g+(c+1)))||(b=CKEDITOR.document.getById(g+
-"0")),b.focus(),!1;case b?37:39:case CKEDITOR.SHIFT+9:return(b=CKEDITOR.document.getById(g+(c-1)))||(b=CKEDITOR.document.getById(g+(k.list.length-1))),b.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(c),!1}return!0});a.on("selectionChange",function(){for(var c=[],e=k.list=[],g=[],b=k.filters,d=!0,l=a.elementPath().elements,f,u=l.length;u--;){var h=l[u],r=0;f=h.data("cke-display-name")?h.data("cke-display-name"):h.data("cke-real-element-type")?h.data("cke-real-element-type"):h.getName();
-(d=h.hasAttribute("contenteditable")?"true"==h.getAttribute("contenteditable"):d)||h.hasAttribute("contenteditable")||(r=1);for(var t=0;t<b.length;t++){var m=b[t](h,f);if(!1===m){r=1;break}f=m||f}r||(e.unshift(h),g.unshift(f))}e=e.length;for(b=0;b<e;b++)f=g[b],d=a.lang.elementspath.eleTitle.replace(/%1/,f),f=x.output({id:q+b,label:d,text:f,jsTitle:"javascript:void('"+f+"')",index:b,keyDownFn:w,clickFn:v}),c.unshift(f);n||(n=CKEDITOR.document.getById(p));g=n;g.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');
-a.fire("elementsPathUpdate",{space:g})});a.on("readOnly",m);a.on("contentDomUnload",m);a.addCommand("elementsPathFocus",y.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var y={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},d="";CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(d+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(d+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
-var x=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+d+' hidefocus\x3d"true"  onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+
-"_",filters:[]};a.on("uiSpace",function(d){"bottom"==d.data.space&&q(a,d.data)})}})})();(function(){function q(b,d,a){a=b.config.forceEnterMode||a;"wysiwyg"==b.mode&&(d||(d=b.activeEnterMode),b.elementPath().isContextFor("p")||(d=CKEDITOR.ENTER_BR,a=1),b.fire("saveSnapshot"),d==CKEDITOR.ENTER_BR?t(b,d,null,a):u(b,d,null,a),b.fire("saveSnapshot"))}function v(b){b=b.getSelection().getRanges(!0);for(var d=b.length-1;0<d;d--)b[d].deleteContents();return b[0]}function y(b){var d=b.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},
+200:0,this)}},this);if(CKEDITOR.env.webkit){var f,d=function(){f=0};a.on("keydown",function(a){f=CKEDITOR.env.mac?a.data.$.metaKey:a.data.$.ctrlKey});a.on("keyup",d);a.on("contextmenu",d)}},open:function(a,e,f,d){!1!==this.editor.config.enableContextMenu&&(this.editor.focus(),a=a||CKEDITOR.document.getDocumentElement(),this.editor.selectionChange(1),this.show(a,e,f,d))}}})},beforeInit:function(a){var e=a.contextMenu=new CKEDITOR.plugins.contextMenu(a);a.on("contentDom",function(){e.addTarget(a.editable(),
+!1!==a.config.browserContextMenuOnCtrl)});a.addCommand("contextMenu",{exec:function(){a.contextMenu.open(a.document.getBody())}});a.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");a.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});CKEDITOR.plugins.add("resize",{init:function(b){function f(d){var e=c.width,m=c.height,f=e+(d.data.$.screenX-n.x)*("rtl"==g?-1:1);d=m+(d.data.$.screenY-n.y);h&&(e=Math.max(a.resize_minWidth,Math.min(f,a.resize_maxWidth)));p&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(h?e:null,m)}function k(){CKEDITOR.document.removeListener("mousemove",f);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",f),b.document.removeListener("mouseup",
+k))}var a=b.config,r=b.ui.spaceId("resizer"),g=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0===a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0===a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0===a.resize_minWidth&&(a.resize_minWidth=750);void 0===a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var l=null,n,c,h=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,p=("both"==a.resize_dir||"vertical"==
+a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,q=CKEDITOR.tools.addFunction(function(d){l||(l=b.getResizable());c={width:l.$.offsetWidth||0,height:l.$.offsetHeight||0};n={x:d.screenX,y:d.screenY};a.resize_minWidth>c.width&&(a.resize_minWidth=c.width);a.resize_minHeight>c.height&&(a.resize_minHeight=c.height);CKEDITOR.document.on("mousemove",f);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",f),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",
+function(){CKEDITOR.tools.removeFunction(q)});b.on("uiSpace",function(a){if("bottom"==a.data.space){var e="";h&&!p&&(e=" cke_resizer_horizontal");!h&&p&&(e=" cke_resizer_vertical");var c='\x3cspan id\x3d"'+r+'" class\x3d"cke_resizer'+e+" cke_resizer_"+g+'" title\x3d"'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event)"\x3e'+("ltr"==g?"◢":"◣")+"\x3c/span\x3e";"ltr"==g&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",
+function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){var c='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-describedby\x3d"{id}_description" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+=
+' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),c=c+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e\x3cspan id\x3d"{id}_description" class\x3d"cke_button_label" aria-hidden\x3d"false"\x3e{ariaShortcut}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
+t=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),u=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
+CKEDITOR.ui.button.prototype={render:function(a,b){function c(){var f=a.mode;f&&(f=this.modes[f]?void 0!==m[f]?m[f]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,f=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:f,this.setState(f),this.refresh&&this.refresh())}var n=CKEDITOR.env,p=this._.id=CKEDITOR.tools.getNextId(),g="",d=this.command,q,k,h;this._.editor=a;var e={id:p,button:this,editor:a,focus:function(){CKEDITOR.document.getById(p).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},
+v=CKEDITOR.tools.addFunction(function(a){if(e.onkey)return a=new CKEDITOR.dom.event(a),!1!==e.onkey(e,a.getKeystroke())}),w=CKEDITOR.tools.addFunction(function(a){var b;e.onfocus&&(b=!1!==e.onfocus(e,new CKEDITOR.dom.event(a)));return b}),r=0;e.clickFn=q=CKEDITOR.tools.addFunction(function(){r&&(a.unlockSelection(1),r=0);e.execute();n.iOS&&a.focus()});if(this.modes){var m={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(m[a.mode]=this._.state)},this);a.on("activeFilterChange",
+c,this);a.on("mode",c,this);!this.readOnly&&a.on("readOnly",c,this)}else d&&(d=a.getCommand(d))&&(d.on("state",function(){this.setState(d.state)},this),g+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(l,
+"rtl"==b,this.icon,this.iconOffset))},this);d?(k=a.getCommandKeystroke(d))&&(h=CKEDITOR.tools.keystrokeToString(a.lang.common.keyboard,k)):g+="off";var l=k=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(l=this.icon,this.icon=null);g={id:p,name:k,iconName:l,label:this.label,cls:this.className||"",state:g,ariaDisabled:"disabled"==g?"true":"false",title:this.title+(h?" ("+h.display+")":""),ariaShortcut:h?a.lang.common.keyboardShortcut+" "+h.aria:"",titleJs:n.gecko&&!n.hc?"":(this.title||
+"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:v,focusFn:w,clickFn:q,style:CKEDITOR.skin.getIconStyle(l,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?t.output():""};u.output(g,b);if(this.onRender)this.onRender();return e},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),
+this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature=
+b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();(function(){function D(a){function d(){for(var b=f(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||v(a),n=0;n<e.length;n++){var g=e[n];if("/"!=g){"string"==typeof g&&(g=e[n]={name:g});var l,d=g.groups;if(d)for(var h=0;h<d.length;h++)l=d[h],(l=b[l])&&c(g,l);(l=b[g.name])&&c(g,l)}}return e}function f(){var b={},c,e,g;for(c in a.ui.items)e=a.ui.items[c],g=e.toolbar||"others",g=g.split(","),e=g[0],g=parseInt(g[1]||-1,10),b[e]||(b[e]=[]),b[e].push({name:c,order:g});for(e in b)b[e]=b[e].sort(function(b,
+a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var d;d=e.shift();)d="string"==typeof d?d:d.name,b&&-1!=CKEDITOR.tools.indexOf(b,d)||(d=a.ui.create(d))&&a.addFeature(d)&&c.items.push(d)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
+h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function v(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
+"indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var z=function(){this.toolbars=[];this.focusCommandExecuted=!1};z.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var f=0,c;c=d.items[f++];)if(c.focus){c.focus();return}};var E={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
+100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,f=function(c,h){var b,e="rtl"==a.lang.dir,k=a.config.toolbarGroupCycling,q=e?37:39,e=e?39:37,k=void 0===k||k;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||
+(b=0);c&&c.focus();return!1;case q:b=c;do b=b.next,!b&&k&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():f(c,9);return!1;case 40:return c.button&&c.button.hasArrow?c.execute():f(c,40==h?q:e),!1;case e:case 38:b=c;do b=b.previous,!b&&k&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,f(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();
+a.toolbox=new z;var d=CKEDITOR.tools.getNextId(),b=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,e,k;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&b.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));
+for(var q=a.toolbox.toolbars,n=D(a),g=n.length,l=0;l<g;l++){var r,m=0,w,p=n[l],v="/"!==p&&("/"===n[l+1]||l==g-1),x;if(p)if(e&&(b.push("\x3c/span\x3e"),k=e=0),"/"===p)b.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{x=p.items||p;for(var y=0;y<x.length;y++){var t=x[y],A;if(t){var B=function(c){c=c.render(a,b);u=m.items.push(c)-1;0<u&&(c.previous=m.items[u-1],c.previous.next=c);c.toolbar=m;c.onkey=f;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)k=
+e&&t;else{A=!1!==t.canGroup;if(!m){r=CKEDITOR.tools.getNextId();m={id:r,items:[]};w=p.name&&(a.lang.toolbar.toolbarGroups[p.name]||p.name);b.push('\x3cspan id\x3d"',r,'" class\x3d"cke_toolbar'+(v?' cke_toolbar_last"':'"'),w?' aria-labelledby\x3d"'+r+'_label"':"",' role\x3d"toolbar"\x3e');w&&b.push('\x3cspan id\x3d"',r,'_label" class\x3d"cke_voice_label"\x3e',w,"\x3c/span\x3e");b.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var u=q.push(m)-1;0<u&&(m.previous=q[u-1],m.previous.next=
+m)}A?e||(b.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),e=1):e&&(b.push("\x3c/span\x3e"),e=0);k&&(B(k),k=0);B(t)}}}e&&(b.push("\x3c/span\x3e"),k=e=0);m&&b.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&b.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var C=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(C)});
+a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),d=b.ui.space("contents"),e=c.getParent(),h=parseInt(d.$.style.height,10),g=e.$.offsetHeight,f=a.hasClass("cke_toolbox_collapser_min");f?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(f?"▲":"◀");d.setStyle("height",
+h-(e.$.offsetHeight-g)+"px");b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:d.$.offsetHeight,outerWidth:b.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||b.push(" cke_toolbox_collapser_min");
+b.push('" onclick\x3d"CKEDITOR.tools.callFunction('+C+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}b.push("\x3c/span\x3e");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,f;for(a=this.toolbox.toolbars;d<a.length;d++)for(e=a[d].items,b=0;b<e.length;b++)f=e[b],f.clickFn&&CKEDITOR.tools.removeFunction(f.clickFn),f.keyDownFn&&CKEDITOR.tools.removeFunction(f.keyDownFn)}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c,
+1)});a.addCommand("toolbarFocus",E);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,f){var c=v(this.editor),h=0===d,b={name:a};if(f){if(f=CKEDITOR.tools.search(c,function(a){return a.name==f})){!f.groups&&(f.groups=[]);if(d&&
+(d=CKEDITOR.tools.indexOf(f.groups,d),0<=d)){f.groups.splice(d+1,0,a);return}h?f.groups.splice(0,0,a):f.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){function q(a,e){function l(c){c=k.list[c];var d;c.equals(a.editable())||"true"==c.getAttribute("contenteditable")?(d=a.createRange(),d.selectNodeContents(c),d=d.select()):(d=a.getSelection(),d.selectElement(c));CKEDITOR.env.ie&&a.fire("selectionChange",{selection:d,path:new CKEDITOR.dom.elementPath(c)});a.focus()}function m(){n&&n.setHtml('\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');delete k.list}var p=a.ui.spaceId("path"),n,k=a._.elementsPath,q=k.idBase;e.html+='\x3cspan id\x3d"'+
+p+'_label" class\x3d"cke_voice_label"\x3e'+a.lang.elementspath.eleLabel+'\x3c/span\x3e\x3cspan id\x3d"'+p+'" class\x3d"cke_path" role\x3d"group" aria-labelledby\x3d"'+p+'_label"\x3e\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e\x3c/span\x3e';a.on("uiReady",function(){var c=a.ui.space("path");c&&a.focusManager.add(c,1)});k.onClick=l;var v=CKEDITOR.tools.addFunction(l),w=CKEDITOR.tools.addFunction(function(c,d){var g=k.idBase,b;d=new CKEDITOR.dom.event(d);b="rtl"==a.lang.dir;switch(d.getKeystroke()){case b?
+39:37:case 9:return(b=CKEDITOR.document.getById(g+(c+1)))||(b=CKEDITOR.document.getById(g+"0")),b.focus(),!1;case b?37:39:case CKEDITOR.SHIFT+9:return(b=CKEDITOR.document.getById(g+(c-1)))||(b=CKEDITOR.document.getById(g+(k.list.length-1))),b.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return l(c),!1}return!0});a.on("selectionChange",function(){for(var c=[],d=k.list=[],g=[],b=k.filters,e=!0,l=a.elementPath().elements,f,u=l.length;u--;){var h=l[u],r=0;f=h.data("cke-display-name")?h.data("cke-display-name"):
+h.data("cke-real-element-type")?h.data("cke-real-element-type"):h.getName();(e=h.hasAttribute("contenteditable")?"true"==h.getAttribute("contenteditable"):e)||h.hasAttribute("contenteditable")||(r=1);for(var t=0;t<b.length;t++){var m=b[t](h,f);if(!1===m){r=1;break}f=m||f}r||(d.unshift(h),g.unshift(f))}d=d.length;for(b=0;b<d;b++)f=g[b],e=a.lang.elementspath.eleTitle.replace(/%1/,f),f=x.output({id:q+b,label:e,text:f,jsTitle:"javascript:void('"+f+"')",index:b,keyDownFn:w,clickFn:v}),c.unshift(f);n||
+(n=CKEDITOR.document.getById(p));g=n;g.setHtml(c.join("")+'\x3cspan class\x3d"cke_path_empty"\x3e\x26nbsp;\x3c/span\x3e');a.fire("elementsPathUpdate",{space:g})});a.on("readOnly",m);a.on("contentDomUnload",m);a.addCommand("elementsPathFocus",y.toolbarFocus);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}var y={toolbarFocus:{editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}}},e="";CKEDITOR.env.gecko&&
+CKEDITOR.env.mac&&(e+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(e+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var x=CKEDITOR.addTemplate("pathItem",'\x3ca id\x3d"{id}" href\x3d"{jsTitle}" tabindex\x3d"-1" class\x3d"cke_path_item" title\x3d"{label}"'+e+' hidefocus\x3d"true"  onkeydown\x3d"return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick\x3d"CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role\x3d"button" aria-label\x3d"{label}"\x3e{text}\x3c/a\x3e');
+CKEDITOR.plugins.add("elementspath",{init:function(a){a._.elementsPath={idBase:"cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_",filters:[]};a.on("uiSpace",function(e){"bottom"==e.data.space&&q(a,e.data)})}})})();(function(){function q(b,d,a){a=b.config.forceEnterMode||a;if("wysiwyg"==b.mode){d||(d=b.activeEnterMode);var h=b.elementPath();h&&!h.isContextFor("p")&&(d=CKEDITOR.ENTER_BR,a=1);b.fire("saveSnapshot");d==CKEDITOR.ENTER_BR?t(b,d,null,a):u(b,d,null,a);b.fire("saveSnapshot")}}function v(b){b=b.getSelection().getRanges(!0);for(var d=b.length-1;0<d;d--)b[d].deleteContents();return b[0]}function y(b){var d=b.startContainer.getAscendant(function(a){return a.type==CKEDITOR.NODE_ELEMENT&&"true"==a.getAttribute("contenteditable")},
 !0);if(b.root.equals(d))return b;d=new CKEDITOR.dom.range(d);d.moveToRange(b);return d}CKEDITOR.plugins.add("enterkey",{init:function(b){b.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b)}});b.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(b){q(b,b.activeShiftEnterMode,1)}});b.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var z=CKEDITOR.dom.walker.whitespaces(),A=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(b,
 d,a,h){if(a=a||v(b)){a=y(a);var f=a.document,k=a.checkStartOfBlock(),m=a.checkEndOfBlock(),l=b.elementPath(a.startContainer),c=l.block,n=d==CKEDITOR.ENTER_DIV?"div":"p",e;if(k&&m){if(c&&(c.is("li")||c.getParent().is("li"))){c.is("li")||(c=c.getParent());a=c.getParent();e=a.getParent();h=!c.hasPrevious();var p=!c.hasNext(),n=b.getSelection(),g=n.createBookmarks(),k=c.getDirection(1),m=c.getAttribute("class"),r=c.getAttribute("style"),q=e.getDirection(1)!=k;b=b.enterMode!=CKEDITOR.ENTER_BR||q||r||m;
 if(e.is("li"))h||p?(h&&p&&a.remove(),c[p?"insertAfter":"insertBefore"](e)):c.breakParent(e);else{if(b)if(l.block.is("li")?(e=f.createElement(d==CKEDITOR.ENTER_P?"p":"div"),q&&e.setAttribute("dir",k),r&&e.setAttribute("style",r),m&&e.setAttribute("class",m),c.moveChildren(e)):e=l.block,h||p)e[h?"insertBefore":"insertAfter"](a);else c.breakParent(a),e.insertAfter(a);else if(c.appendBogus(!0),h||p)for(;f=c[h?"getFirst":"getLast"]();)f[h?"insertBefore":"insertAfter"](a);else for(c.breakParent(a);f=c.getLast();)f.insertAfter(a);
@@ -685,27 +745,20 @@ h=CKEDITOR.addTemplate("panel-list-group",'\x3ch1 id\x3d"{id}" class\x3d"cke_pan
 (this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;var e;e=CKEDITOR.tools.htmlEncodeAttr(a).replace(k,"\\'");a={id:d,val:e,onclick:CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:CKEDITOR.tools.htmlEncodeAttr(c||a),text:b||a};
 this._.pendingList.push(g.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(h.output({id:b,label:a}))},commit:function(){this._.close();this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display",
 "none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();a=this._.items[a];var b=this.element.getDocument().getById(a);
-b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&
-this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus();c&&setTimeout(function(){c.focus()},0)}}})}});(function(){var c='\x3ca id\x3d"{id}" class\x3d"cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' title\x3d"{title}" tabindex\x3d"-1" hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"{hasArrow}" aria-disabled\x3d"{ariaDisabled}"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');
-var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan class\x3d"cke_button_icon cke_button__{iconName}_icon" style\x3d"{style}"'),c=c+'\x3e\x26nbsp;\x3c/span\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_button_label cke_button__{name}_label" aria-hidden\x3d"false"\x3e{label}\x3c/span\x3e{arrowHtml}\x3c/a\x3e',
-r=CKEDITOR.addTemplate("buttonArrow",'\x3cspan class\x3d"cke_button_arrow"\x3e'+(CKEDITOR.env.hc?"\x26#9660;":"")+"\x3c/span\x3e"),t=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
-CKEDITOR.ui.button.prototype={render:function(a,b){function c(){var e=a.mode;e&&(e=this.modes[e]?void 0!==k[e]?k[e]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,e=a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:e,this.setState(e),this.refresh&&this.refresh())}var l=CKEDITOR.env,m=this._.id=CKEDITOR.tools.getNextId(),f="",g=this.command,n;this._.editor=a;var d={id:m,button:this,editor:a,focus:function(){CKEDITOR.document.getById(m).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},
-u=CKEDITOR.tools.addFunction(function(a){if(d.onkey)return a=new CKEDITOR.dom.event(a),!1!==d.onkey(d,a.getKeystroke())}),v=CKEDITOR.tools.addFunction(function(a){var b;d.onfocus&&(b=!1!==d.onfocus(d,new CKEDITOR.dom.event(a)));return b}),p=0;d.clickFn=n=CKEDITOR.tools.addFunction(function(){p&&(a.unlockSelection(1),p=0);d.execute();l.iOS&&a.focus()});if(this.modes){var k={};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[a.mode]=this._.state)},this);a.on("activeFilterChange",
-c,this);a.on("mode",c,this);!this.readOnly&&a.on("readOnly",c,this)}else g&&(g=a.getCommand(g))&&(g.on("state",function(){this.setState(g.state)},this),f+=g.state==CKEDITOR.TRISTATE_ON?"on":g.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off");if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=c.getFirst();b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(h,
-"rtl"==b,this.icon,this.iconOffset))},this);g||(f+="off");var q=this.name||this.command,h=q;this.icon&&!/\./.test(this.icon)&&(h=this.icon,this.icon=null);f={id:m,name:q,iconName:h,label:this.label,cls:this.className||"",state:f,ariaDisabled:"disabled"==f?"true":"false",title:this.title,titleJs:l.gecko&&!l.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?"true":"false",keydownFn:u,focusFn:v,clickFn:n,style:CKEDITOR.skin.getIconStyle(h,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?
-r.output():""};t.output(f,b);if(this.onRender)this.onRender();return d},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),this.hasArrow?(a=a==CKEDITOR.TRISTATE_ON?this._.editor.lang.button.selectedLabel.replace(/%1/g,this.label):this.label,CKEDITOR.document.getById(this._.id+"_label").setText(a)):a==CKEDITOR.TRISTATE_ON?
-b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},getState:function(){return this._.state},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;this.allowedContent||this.requiredContent||!this.command||(b=a.getCommand(this.command)||b);return this._.feature=b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
-(function(){var d='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"true"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(d+=' onkeypress\x3d"return false;"');
-CKEDITOR.env.gecko&&(d+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var d=d+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+
-(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),k=CKEDITOR.addTemplate("combo",d);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";
-a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function g(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var c=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(c=CKEDITOR.TRISTATE_DISABLED);this.setState(c);this.setValue("");c!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var d=
-CKEDITOR.env,h="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0);c.execute(b)},this),f=this,c={id:h,combo:this,focus:function(){CKEDITOR.document.getById(h).getChild(1).focus()},execute:function(c){var b=f._;if(b.state!=CKEDITOR.TRISTATE_DISABLED)if(f.createPanel(a),b.on)b.panel.hide();else{f.commit();var d=f.getValue();d?b.list.mark(d):b.list.unmarkAll();b.panel.showBlock(f.id,new CKEDITOR.dom.element(c),4)}},clickFn:e};a.on("activeFilterChange",g,this);a.on("mode",
-g,this);a.on("selectionChange",g,this);!this.readOnly&&a.on("readOnly",g,this);var m=CKEDITOR.tools.addFunction(function(b,d){b=new CKEDITOR.dom.event(b);var g=b.getKeystroke();if(40==g)a.once("panelShow",function(a){a.data._.panel._.currentBlock.onKeyDown(40)});switch(g){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,d);break;default:c.onkey(c,g)}b.preventDefault()}),n=CKEDITOR.tools.addFunction(function(){c.onfocus&&c.onfocus()}),l=0;c.keyDownFn=m;d={id:h,name:this.name||this.command,label:this.label,
-title:this.title,cls:this.className||"",titleJs:d.gecko&&!d.hc?"":(this.title||"").replace("'",""),keydownFn:m,focusFn:n,clickFn:e};k.output(d,b);if(this.onRender)this.onRender();return c},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,d=this._.panelDefinition.block,k=b.parent||CKEDITOR.document.getBody(),h="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,k,b),f=e.addListBlock(this.id,d),c=this;e.onShow=function(){this.element.addClass(h);c.setState(CKEDITOR.TRISTATE_ON);
-c._.on=1;c.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(c.onOpen)c.onOpen();a.once("panelShow",function(){f.focus(!f.multiSelect&&c.getValue())})};e.onHide=function(b){this.element.removeClass(h);c.setState(c.modes&&c.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);c._.on=0;if(!b&&c.onClose)c.onClose()};e.onEscape=function(){e.hide(1)};f.onClick=function(a,b){c.onClick&&c.onClick.call(c,a,b);e.hide()};this._.panel=e;this._.list=f;e.getBlock(this.id).onHide=function(){c._.on=
-0;c.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var d=this.document.getById("cke_"+this.id+"_text");d&&(a||b?d.removeClass("cke_combo_inlinelabel"):(b=this.label,d.addClass("cke_combo_inlinelabel")),d.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},
-showAll:function(){this._.list.showAll()},add:function(a,b,d){this._.items[a]=d||a;this._.list.add(a,b,d)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=
-a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var f=a.config,c=a.lang.format,l=f.format_tags.split(";"),d={},m=0,n=[],g=0;g<l.length;g++){var h=l[g],k=new CKEDITOR.style(f["format_"+h]);if(!a.filter.customConfig||a.filter.check(k))m++,d[h]=k,d[h]._.enterMode=a.config.enterMode,n.push(k)}0!==m&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(f.contentsCss),
+b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},markFirstDisplayed:function(){var a=this;this._.markFirstDisplayed(function(){a.multiSelect||a.unmarkAll()})},unmark:function(a){var b=this.element.getDocument();a=this._.items[a];var c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),
+c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=-1;var b=this.element.getElementsByTag("a"),c,d=-1;if(a)for(c=this.element.getDocument().getById(this._.items[a]).getFirst();a=b.getItem(++d);){if(a.equals(c)){this._.focusIndex=d;break}}else this.element.focus();
+c&&setTimeout(function(){c.focus()},0)}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
+(function(){var c='\x3cspan id\x3d"{id}" class\x3d"cke_combo cke_combo__{name} {cls}" role\x3d"presentation"\x3e\x3cspan id\x3d"{id}_label" class\x3d"cke_combo_label"\x3e{label}\x3c/span\x3e\x3ca class\x3d"cke_combo_button" title\x3d"{title}" tabindex\x3d"-1"'+(CKEDITOR.env.gecko&&!CKEDITOR.env.hc?"":" href\x3d\"javascript:void('{titleJs}')\"")+' hidefocus\x3d"true" role\x3d"button" aria-labelledby\x3d"{id}_label" aria-haspopup\x3d"true"';CKEDITOR.env.gecko&&CKEDITOR.env.mac&&(c+=' onkeypress\x3d"return false;"');
+CKEDITOR.env.gecko&&(c+=' onblur\x3d"this.style.cssText \x3d this.style.cssText;"');var c=c+(' onkeydown\x3d"return CKEDITOR.tools.callFunction({keydownFn},event,this);" onfocus\x3d"return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick\x3d"return false;" onmouseup':"onclick")+'\x3d"CKEDITOR.tools.callFunction({clickFn},this);return false;"\x3e\x3cspan id\x3d"{id}_text" class\x3d"cke_combo_text cke_combo_inlinelabel"\x3e{label}\x3c/span\x3e\x3cspan class\x3d"cke_combo_open"\x3e\x3cspan class\x3d"cke_combo_arrow"\x3e'+
+(CKEDITOR.env.hc?"\x26#9660;":CKEDITOR.env.air?"\x26nbsp;":"")+"\x3c/span\x3e\x3c/span\x3e\x3c/a\x3e\x3c/span\x3e"),k=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";
+a.block={multiSelect:a.multiSelect,attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function f(){if(this.getState()!=CKEDITOR.TRISTATE_ON){var b=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;a.readOnly&&!this.readOnly&&(b=CKEDITOR.TRISTATE_DISABLED);this.setState(b);this.setValue("");b!=CKEDITOR.TRISTATE_DISABLED&&this.refresh&&this.refresh()}}var c=
+CKEDITOR.env,h="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){l&&(a.unlockSelection(1),l=0);g.execute(b)},this),d=this,g={id:h,combo:this,focus:function(){CKEDITOR.document.getById(h).getChild(1).focus()},execute:function(b){var c=d._;if(c.state!=CKEDITOR.TRISTATE_DISABLED)if(d.createPanel(a),c.on)c.panel.hide();else{d.commit();var f=d.getValue();f?c.list.mark(f):c.list.unmarkAll();c.panel.showBlock(d.id,new CKEDITOR.dom.element(b),4)}},clickFn:e};a.on("activeFilterChange",f,this);a.on("mode",
+f,this);a.on("selectionChange",f,this);!this.readOnly&&a.on("readOnly",f,this);var m=CKEDITOR.tools.addFunction(function(a,b){a=new CKEDITOR.dom.event(a);var d=a.getKeystroke();switch(d){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,b);break;default:g.onkey(g,d)}a.preventDefault()}),n=CKEDITOR.tools.addFunction(function(){g.onfocus&&g.onfocus()}),l=0;g.keyDownFn=m;c={id:h,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&!c.hc?"":(this.title||
+"").replace("'",""),keydownFn:m,focusFn:n,clickFn:e};k.output(c,b);if(this.onRender)this.onRender();return g},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,k=b.parent||CKEDITOR.document.getBody(),h="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,k,b),b=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(h);d.setState(CKEDITOR.TRISTATE_ON);d._.on=1;d.editorFocus&&!a.focusManager.hasFocus&&a.focus();if(d.onOpen)d.onOpen()};
+e.onHide=function(b){this.element.removeClass(h);d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};b.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=b;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&
+(a||b?c.removeClass("cke_combo_inlinelabel"):(b=this.label,c.addClass("cke_combo_inlinelabel")),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},
+commit:function(){this._.committed||(this._.list.commit(),this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},getState:function(){return this._.state},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=
+CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var f=a.config,c=a.lang.format,l=f.format_tags.split(";"),d={},m=0,n=[],g=0;g<l.length;g++){var h=l[g],k=new CKEDITOR.style(f["format_"+h]);if(!a.filter.customConfig||a.filter.check(k))m++,d[h]=k,d[h]._.enterMode=a.config.enterMode,n.push(k)}0!==m&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(f.contentsCss),
 multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");b=d[b];var e=a.elementPath();a[b.checkActive(e,a)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue();b=b.data.path;this.refresh();for(var c in d)if(d[c].checkActive(b,a)){c!=
 e&&this.setValue(c,a.lang.format["tag_"+c]);return}this.setValue("")},this)},onOpen:function(){this.showAll();for(var b in d)a.activeFilter.check(d[b])||this.hideItem(b)},refresh:function(){var b=a.elementPath();if(b){if(b.isContextFor("p"))for(var c in d)if(a.activeFilter.check(d[c]))return;this.setState(CKEDITOR.TRISTATE_DISABLED)}}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"};
 CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}});
@@ -713,13 +766,30 @@ CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWr
 b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&a&&a.needsSpace&&this._.needsSpace&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("\x3c",b);this._.afterCloser=0},
 openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push("\x3e"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&amp;/g,"\x26")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'\x3d"',a,'"')},closeTag:function(b){var a=
 this._.rules[b];a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("\x3c/",b,"\x3e");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&
-this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=a}}});(function(){function g(a,b){var c=l.exec(a),d=l.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var k=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,l=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,m={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new k(a)).rules;a=b.attributes;var d=c.width,
+this.indentation();this._.output.push("\x3c!--",b,"--\x3e")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0;this._.needsSpace=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=
+a}}});(function(){function g(a,b){var c=l.exec(a),d=l.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var k=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,l=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,m={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new k(a)).rules;a=b.attributes;var d=c.width,
 c=c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}};CKEDITOR.plugins.add("fakeobjects",{init:function(a){a.filter.allow("img[!data-cke-realelement,src,alt,title](*){*}","fakeobjects")},afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(m,{applyToAll:!0})}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown;b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type,
 alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new k,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter;
 a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.tools.transparentImageData);c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new k,c=d.width,d=d.height,void 0!==c&&(a.rules.width=h(c)),void 0!==d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement=
 function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width");a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,
 classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});
-a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){if(!b.plugins.image2){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
+a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function m(a){function f(a){var b=!1;g.attachListener(g,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=c.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).hasAttribute("data-cke-temp")||d.getItem(0).remove(1),b=!1)})}var b=this.editor,c=a.document,d=c.body,e=c.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);
+(e=c.getElementById("cke_shimscrpt"))&&e.parentNode.removeChild(e);(e=c.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_P?
+f("p"):CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_DIV&&f("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});n(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(h){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var c=a.data.getKeystroke();if(33==c||34==c)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()},
+0);else if(b.window.$.innerHeight>this.$.offsetHeight){var d=b.createRange();d[33==c?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});d=b.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(b.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==
+this.status&&(this.status="ready");b.fire("contentDom");this._.isPendingFocus&&(b.focus(),this._.isPendingFocus=!1);setTimeout(function(){b.fire("dataReady")},0)},0,this)}function n(a){function f(){var c;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(c&&(c.detachEvent("onresizestart",b),c=null),d.$.attachEvent("onresizestart",b),c=d.$)})}function b(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var c=a.document.$;c.execCommand("enableObjectResizing",
+!1,!a.config.disableObjectResizing);c.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&f(a)}function p(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var f=[],b;for(b in CKEDITOR.dtd.$removeEmpty)f.push("html.CSS1Compat "+b+"[contenteditable\x3dfalse]");a.push(f.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&
+(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}var l;CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(f){function b(b){b&&b.removeListener();
+a.editable(new l(a,d.$.contentWindow.document.body));a.setData(a.getData(1),f)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+c+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");
+c=a.ui.space("contents");c.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",b);var g=a.title,h=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&h&&(g+=", "+h),d.setAttribute("title",g));if(h){var g=CKEDITOR.tools.getNextId(),k=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+h+"\x3c/span\x3e");c.append(k,1);d.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();k&&k.remove()});
+d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&b();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var f=this.config,b=f.contentsCss;CKEDITOR.tools.isArray(b)||(f.contentsCss=b?[b]:[]);f.contentsCss.push(a)};l=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(m,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},
+base:CKEDITOR.editable,proto:{setData:function(a,f){var b=this.editor;if(f)this.setHtml(a),this.fixInitialSelection(),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,d=c.fullPage,e=c.docType,g=CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(g+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'\x3cbase href\x3d"'+c.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){b.docType=
+e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));a=b.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),h&&(a=a.replace(/<head[^>]*?>/,"$\x26"+h)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a=
+e+a):a=c.docType+'\x3chtml dir\x3d"'+c.contentsLangDirection+'" lang\x3d"'+(c.contentsLanguage||b.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+h+g+"\x3c/head\x3e\x3cbody"+(c.bodyId?' id\x3d"'+c.bodyId+'"':"")+(c.bodyClass?' class\x3d"'+c.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));
+c='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
+h&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var k=this.getDocument();try{k.write(a)}catch(l){setTimeout(function(){k.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var f=a.config,b=f.fullPage,c=b&&a.docType,d=b&&a.xmlDeclaration,
+e=this.getDocument(),b=b?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&f.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));b=a.dataProcessor.toDataFormat(b);d&&(b=d+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:l.baseProto.focus.call(this)},detach:function(){var a=this.editor,f=a.document,b;try{b=a.window.getFrame()}catch(c){}l.baseProto.detach.call(this);this.clearCustomData();f.getDocumentElement().clearCustomData();
+CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);b&&b.getParent()?(b.clearCustomData(),(a=b.removeCustomData("onResize"))&&a.removeListener(),b.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){if(!b.plugins.image2){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
 CKEDITOR.dialog.isTabEnabled(b,"image","advanced")&&(a="img[alt,dir,id,lang,longdesc,!src,title]{*}(*)");b.addCommand("image",new CKEDITOR.dialogCommand("image",{allowedContent:a,requiredContent:"img[alt,src]",contentTransformations:[["img{width}: sizeToStyle","img[width]: sizeToAttribute"],["img{float}: alignmentToStyle","img[align]: alignmentToAttribute"]]}));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.on("doubleclick",function(b){var a=
 b.data.element;!a.is("img")||a.data("cke-realelement")||a.isReadOnly()||(b.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})}},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")):
 c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}b.plugins.image2||(a("left"),a("right"),a("center"),a("block"))}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;(function(){function m(a,b){var e,f;b.on("refresh",function(a){var b=[k],c;for(c in a.data.states)b.push(a.data.states[c]);this.setState(CKEDITOR.tools.search(b,p)?p:k)},b,null,100);b.on("exec",function(b){e=a.getSelection();f=e.createBookmarks(1);b.data||(b.data={});b.data.done=!1},b,null,0);b.on("exec",function(){a.forceNextSelectionCheck();e.selectBookmarks(f)},b,null,100)}var k=CKEDITOR.TRISTATE_DISABLED,p=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indent",{init:function(a){var b=CKEDITOR.plugins.indent.genericDefinition;
@@ -729,39 +799,43 @@ this.startDisabled=!this.isIndent},specificDefinition:function(a,b,e){this.name=
 !0),a.fire("unlockSnapshot"),CKEDITOR.dom.element.clearAllMarkers(b.database))},this,null,c),e.on("refresh",function(d){d.data.states||(d.data.states={});d.data.states[b.name+"@"+c]=b.refreshJob(a,c,d.data.path)},this,null,c);a.addFeature(b)})(this,b[a])})}};CKEDITOR.plugins.indent.genericDefinition.prototype={context:"p",exec:function(){}};CKEDITOR.plugins.indent.specificDefinition.prototype={execJob:function(a,b){var e=this.jobs[b];if(e.state!=k)return e.exec.call(this,a)},refreshJob:function(a,
 b,e){b=this.jobs[b];a.activeFilter.checkFeature(this)?b.state=b.refresh.call(this,a,e):b.state=k;return b.state},getContext:function(a){return a.contains(this.context)}}})();(function(){function f(b,c,a){if(!b.getCustomData("indent_processed")){var d=this.editor,l=this.isIndent;if(c){d=b.$.className.match(this.classNameRegex);a=0;d&&(d=d[1],a=CKEDITOR.tools.indexOf(c,d)+1);if(0>(a+=l?1:-1))return;a=Math.min(a,c.length);a=Math.max(a,0);b.$.className=CKEDITOR.tools.ltrim(b.$.className.replace(this.classNameRegex,""));0<a&&b.addClass(c[a-1])}else{c=m(b,a);a=parseInt(b.getStyle(c),10);var g=d.config.indentOffset||40;isNaN(a)&&(a=0);a+=(l?1:-1)*g;if(0>a)return;a=Math.max(a,
 0);a=Math.ceil(a/g)*g;b.setStyle(c,a?a+(d.config.indentUnit||"px"):"");""===b.getAttribute("style")&&b.removeAttribute("style")}CKEDITOR.dom.element.setMarker(this.database,b,"indent_processed",1)}}function m(b,c){return"ltr"==(c||b.getComputedStyle("direction"))?"margin-left":"margin-right"}var h=CKEDITOR.dtd.$listItem,p=CKEDITOR.dtd.$list,k=CKEDITOR.TRISTATE_DISABLED,n=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentblock",{requires:"indent",init:function(b){function c(){a.specificDefinition.apply(this,
-arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:d?null:"margin-left,margin-right",classes:d||null}};this.enterBr&&(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(!e.is(h))var c=e.getAscendant(h),e=c&&b.contains(c)||e;e.is(h)&&(e=e.getParent());if(this.enterBr||this.getContext(b)){if(d){var c=d,e=e.$.className.match(this.classNameRegex),
-f=this.isIndent,c=e?f?e[1]!=c.slice(-1):!0:f;return c?n:k}return this.isIndent?n:e?CKEDITOR[0>=(parseInt(e.getStyle(m(e)),10)||0)?"TRISTATE_DISABLED":"TRISTATE_OFF"]:k}return k},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(p))f.call(this,c,d);else for(b=b.createIterator(),a=a.config.enterMode,b.enforceRealBlocks=!0,b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||f.call(this,c,d);return!0}}}}var a=
-CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?new RegExp("(?:^|\\s+)("+d.join("|")+")(?\x3d$|\\s)"):null})}})})();(function(){function w(c){function f(b){for(var e=d.startContainer,a=d.endContainer;e&&!e.getParent().equals(b);)e=e.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!e||!a)return!1;for(var g=e,e=[],k=!1;!k;)g.equals(a)&&(k=!0),e.push(g),g=g.getNext();if(1>e.length)return!1;g=b.getParents(!0);for(a=0;a<g.length;a++)if(g[a].getName&&p[g[a].getName()]){b=g[a];break}for(var g=l.isIndent?1:-1,a=e[0],e=e[e.length-1],k=CKEDITOR.plugins.list.listToArray(b,q),n=k[e.getCustomData("listarray_index")].indent,
-a=a.getCustomData("listarray_index");a<=e.getCustomData("listarray_index");a++)if(k[a].indent+=g,0<g){var h=k[a].parent;k[a].parent=new CKEDITOR.dom.element(h.getName(),h.getDocument())}for(a=e.getCustomData("listarray_index")+1;a<k.length&&k[a].indent>n;a++)k[a].indent+=g;e=CKEDITOR.plugins.list.arrayToList(k,q,null,c.config.enterMode,b.getDirection());if(!l.isIndent){var f;if((f=b.getParent())&&f.is("li"))for(var g=e.listNode.getChildren(),r=[],m,a=g.count()-1;0<=a;a--)(m=g.getItem(a))&&m.is&&m.is("li")&&
-r.push(m)}e&&e.listNode.replace(b);if(r&&r.length)for(a=0;a<r.length;a++){for(m=b=r[a];(m=m.getNext())&&m.is&&m.getName()in p;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(x)&&b.append(d.document.createText(" ")),b.append(m);b.insertAfter(f)}e&&c.fire("contentDomInvalidated");return!0}for(var l=this,q=this.database,p=this.context,n=c.getSelection(),n=(n&&n.getRanges()).createIterator(),d;d=n.getNextRange();){for(var b=d.getCommonAncestor();b&&(b.type!=CKEDITOR.NODE_ELEMENT||!p[b.getName()]);){if(c.editable().equals(b)){b=
-!1;break}b=b.getParent()}b||(b=d.startPath().contains(p))&&d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var h=d.getEnclosedNode();h&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in p&&(d.setStartAt(h,CKEDITOR.POSITION_AFTER_START),d.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),b=h)}b&&d.startContainer.type==CKEDITOR.NODE_ELEMENT&&d.startContainer.getName()in p&&(h=new CKEDITOR.dom.walker(d),h.evaluator=t,d.startContainer=h.next());b&&d.endContainer.type==CKEDITOR.NODE_ELEMENT&&d.endContainer.getName()in
-p&&(h=new CKEDITOR.dom.walker(d),h.evaluator=t,d.endContainer=h.previous());if(b)return f(b)}return 0}function t(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")}function x(c){return y(c)&&z(c)}var y=CKEDITOR.dom.walker.whitespaces(!0),z=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.TRISTATE_DISABLED,v=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(c){function f(c){l.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];c.on("key",
-function(f){if("wysiwyg"==c.mode&&f.data.keyCode==this.indentKey){var n=this.getContext(c.elementPath());!n||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c.elementPath(),n)||(c.execCommand(this.relatedGlobal),f.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(c,f){var d=this.getContext(f),b=CKEDITOR.plugins.indentList.firstItemInPath(this.context,f,d);return d&&this.isIndent&&!b?v:u}:function(c,f){return!this.getContext(f)||this.isIndent?
-u:v},exec:CKEDITOR.tools.bind(w,this)}}var l=CKEDITOR.plugins.indent;l.registerCommands(c,{indentlist:new f(c,"indentlist",!0),outdentlist:new f(c,"outdentlist")});CKEDITOR.tools.extend(f.prototype,l.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(c,f,l){var q=f.contains(t);l||(l=f.contains(c));return l&&q&&q.equals(l.getFirst(t))}})();(function(){function n(a,c){c=void 0===c||c;var b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function g(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";c=a.config.justifyClasses;var h=a.config.enterMode==
-CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?\x3d$|\\s)");this.requiredContent=h+"("+this.cssClassName+")"}else this.requiredContent=h+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",
-classes:this.cssClassName||null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function l(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),
-d.addClass(e[0])));e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}g.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,g,f,k=a.config.useComputedState,k=void 0===k||k,m=d.length-1;0<=m;m--)for(g=d[m].createIterator(),g.enlargeBr=b!=CKEDITOR.ENTER_BR;f=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!f.isReadOnly()){f.removeAttribute("align");
-f.removeStyle("text-align");var l=e&&(f.$.className=CKEDITOR.tools.ltrim(f.$.className.replace(this.cssClassRegex,""))),p=this.state==CKEDITOR.TRISTATE_OFF&&(!k||n(f,!0)!=this.value);e?p?f.addClass(e):l||f.removeAttribute("class"):p&&f.setStyle("text-align",this.value)}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&n(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};
-CKEDITOR.plugins.add("justify",{init:function(a){if(!a.blockless){var c=new g(a,"justifyleft","left"),b=new g(a,"justifycenter","center"),h=new g(a,"justifyright","right"),d=new g(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,
-command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",l)}}})})();(function(){function p(c){return c.replace(/'/g,"\\$\x26")}function q(c){for(var b,a=c.length,f=[],e=0;e<a;e++)b=c.charCodeAt(e),f.push(b);return"String.fromCharCode("+f.join(",")+")"}function r(c,b){var a=c.plugins.link,f=a.compiledProtectionFunction.params,e,d;d=[a.compiledProtectionFunction.name,"("];for(var g=0;g<f.length;g++)a=f[g].toLowerCase(),e=b[a],0<g&&d.push(","),d.push("'",e?p(encodeURIComponent(b[a])):"","'");d.push(")");return d.join("")}function n(c){c=c.config.emailProtection||"";
-var b;c&&"encode"!=c&&(b={},c.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,e){b.name=c;b.params=[];e.replace(/[^,\s]+/g,function(a){b.params.push(a)})}));return b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function c(b){return a.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",
-a=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(c("ltr")+c("rtl"))},init:function(c){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(c,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)"));CKEDITOR.dialog.isTabEnabled(c,"link","target")&&(b=b.replace("]",
-",target,onclick]"));c.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"}));c.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));c.addCommand("unlink",new CKEDITOR.unlinkCommand);c.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);c.setKeystroke(CKEDITOR.CTRL+76,"link");c.ui.addButton&&(c.ui.addButton("Link",{label:c.lang.link.toolbar,command:"link",toolbar:"links,10"}),c.ui.addButton("Unlink",
-{label:c.lang.link.unlink,command:"unlink",toolbar:"links,20"}),c.ui.addButton("Anchor",{label:c.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");c.on("doubleclick",function(a){var b=CKEDITOR.plugins.link.getSelectedLink(c)||a.data.element;b.isReadOnly()||(b.is("a")?(a.data.dialog=!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount()?"link":"anchor",a.data.link=
-b):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b)&&(a.data.dialog="anchor"))},null,null,0);c.on("doubleclick",function(a){a.data.dialog in{link:1,anchor:1}&&a.data.link&&c.getSelection().selectElement(a.data.link)},null,null,20);c.addMenuItems&&c.addMenuItems({anchor:{label:c.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:c.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:c.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:c.lang.link.unlink,
-command:"unlink",group:"link",order:5}});c.contextMenu&&c.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(c)))return null;var b={};a.getAttribute("href")&&a.getChildCount()&&(b={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});a&&a.hasAttribute("name")&&(b.anchor=b.removeAnchor=CKEDITOR.TRISTATE_OFF);return b});this.compiledProtectionFunction=n(c)},afterInit:function(c){c.dataProcessor.dataFilter.addRules({elements:{a:function(a){return a.attributes.name?
-a.children.length?null:c.createFakeParserElement(a,"cke_anchor","anchor"):null}}});var b=c._.elementsPath&&c._.elementsPath.filters;b&&b.push(function(a,b){if("a"==b&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});var t=/^javascript:/,u=/^mailto:([^?]+)(?:\?(.+))?$/,v=/subject=([^;?:@&=$,\/]*)/i,w=/body=([^;?:@&=$,\/]*)/i,x=/^#(.*)$/,y=/^((?:http|https|ftp|news):\/\/)?(.*)$/,z=/^(_(?:self|top|parent|blank))$/,
-A=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,B=/^javascript:([^(]+)\(([^)]+)\)$/,C=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,D=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,m={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};
-CKEDITOR.plugins.link={getSelectedLink:function(c){var b=c.getSelection(),a=b.getSelectedElement();return a&&a.is("a")?a:(b=b.getRanges()[0])?(b.shrink(CKEDITOR.SHRINK_TEXT),c.elementPath(b.getCommonAncestor()).contains("a",1)):null},getEditorAnchors:function(c){for(var b=c.editable(),a=b.isInline()&&!c.plugins.divarea?c.document:b,b=a.getElementsByTag("a"),a=a.getElementsByTag("img"),f=[],e=0,d;d=b.getItem(e++);)(d.data("cke-saved-name")||d.hasAttribute("name"))&&f.push({name:d.data("cke-saved-name")||
-d.getAttribute("name"),id:d.getAttribute("id")});for(e=0;d=a.getItem(e++);)(d=this.tryRestoreFakeAnchor(c,d))&&f.push({name:d.getAttribute("name"),id:d.getAttribute("id")});return f},fakeAnchor:!0,tryRestoreFakeAnchor:function(c,b){if(b&&b.data("cke-real-element-type")&&"anchor"==b.data("cke-real-element-type")){var a=c.restoreRealElement(b);if(a.data("cke-saved-name"))return a}},parseLinkAttributes:function(c,b){var a=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",f=c.plugins.link.compiledProtectionFunction,
-e=c.config.emailProtection,d,g={};a.match(t)&&("encode"==e?a=a.replace(A,function(a,b,c){c=c||"";return"mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):e&&a.replace(B,function(a,b,c){if(b==f.name){g.type="email";a=g.email={};b=/(^')|('$)/g;c=c.match(/[^,\s]+/g);for(var d=c.length,e,h,k=0;k<d;k++)e=decodeURIComponent,h=c[k].replace(b,"").replace(/\\'/g,"'"),h=e(h),e=f.params[k].toLowerCase(),a[e]=h;a.address=[a.name,a.domain].join("@")}}));if(!g.type)if(e=a.match(x))g.type=
-"anchor",g.anchor={},g.anchor.name=g.anchor.id=e[1];else if(e=a.match(u)){d=a.match(v);a=a.match(w);g.type="email";var k=g.email={};k.address=e[1];d&&(k.subject=decodeURIComponent(d[1]));a&&(k.body=decodeURIComponent(a[1]))}else a&&(d=a.match(y))&&(g.type="url",g.url={},g.url.protocol=d[1],g.url.url=d[2]);if(b){if(a=b.getAttribute("target"))g.target={type:a.match(z)?a:"frame",name:a};else if(a=(a=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&a.match(C))for(g.target={type:"popup",name:a[1]};e=
-D.exec(a[2]);)"yes"!=e[2]&&"1"!=e[2]||e[1]in{height:1,width:1,top:1,left:1}?isFinite(e[2])&&(g.target[e[1]]=e[2]):g.target[e[1]]=!0;var a={},h;for(h in m)(e=b.getAttribute(h))&&(a[m[h]]=e);if(h=b.data("cke-saved-name")||a.advName)a.advName=h;CKEDITOR.tools.isEmpty(a)||(g.advanced=a)}return g},getLinkAttributes:function(c,b){var a=c.config.emailProtection||"",f={};switch(b.type){case "url":var a=b.url&&void 0!==b.url.protocol?b.url.protocol:"http://",e=b.url&&CKEDITOR.tools.trim(b.url.url)||"";f["data-cke-saved-href"]=
-0===e.indexOf("/")?e:a+e;break;case "anchor":a=b.anchor&&b.anchor.id;f["data-cke-saved-href"]="#"+(b.anchor&&b.anchor.name||a||"");break;case "email":var d=b.email,e=d.address;switch(a){case "":case "encode":var g=encodeURIComponent(d.subject||""),k=encodeURIComponent(d.body||""),d=[];g&&d.push("subject\x3d"+g);k&&d.push("body\x3d"+k);d=d.length?"?"+d.join("\x26"):"";"encode"==a?(a=["javascript:void(location.href\x3d'mailto:'+",q(e)],d&&a.push("+'",p(d),"'"),a.push(")")):a=["mailto:",e,d];break;default:a=
-e.split("@",2),d.name=a[0],d.domain=a[1],a=["javascript:",r(c,d)]}f["data-cke-saved-href"]=a.join("")}if(b.target)if("popup"==b.target.type){for(var a=["window.open(this.href, '",b.target.name||"","', '"],h="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),e=h.length,g=function(a){b.target[a]&&h.push(a+"\x3d"+b.target[a])},d=0;d<e;d++)h[d]+=b.target[h[d]]?"\x3dyes":"\x3dno";g("width");g("left");g("height");g("top");a.push(h.join(","),"'); return false;");f["data-cke-pa-onclick"]=
-a.join("")}else"notSet"!=b.target.type&&b.target.name&&(f.target=b.target.name);if(b.advanced){for(var l in m)(a=b.advanced[m[l]])&&(f[l]=a);f.name&&(f["data-cke-saved-name"]=f.name)}f["data-cke-saved-href"]&&(f.href=f["data-cke-saved-href"]);l={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1};b.advanced&&CKEDITOR.tools.extend(l,m);for(var n in f)delete l[n];return{set:f,removed:CKEDITOR.tools.objectKeys(l)}}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype=
-{exec:function(c){var b=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});c.removeStyle(b)},refresh:function(c,b){var a=b.lastElement&&b.lastElement.getAscendant("a",!0);a&&"a"==a.getName()&&a.getAttribute("href")&&a.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"};CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(c){var b=
-c.getSelection(),a=b.createBookmarks(),f;if(b&&(f=b.getSelectedElement())&&(f.getChildCount()?f.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,f)))f.remove(1);else if(f=CKEDITOR.plugins.link.getSelectedLink(c))f.hasAttribute("href")?(f.removeAttributes({name:1,"data-cke-saved-name":1}),f.removeClass("cke_anchor")):f.remove(1);b.selectBookmarks(a)},requiredContent:"a[name]"};CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})})();(function(){function I(b,m,e){function c(c){if(!(!(a=d[c?"getFirst":"getLast"]())||a.is&&a.isBlockBoundary()||!(p=m.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||p.is&&p.isBlockBoundary({br:1})))b.document.createElement("br")[c?"insertBefore":"insertAfter"](a)}for(var f=CKEDITOR.plugins.list.listToArray(m.root,e),g=[],k=0;k<m.contents.length;k++){var h=m.contents[k];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(e,
+arguments);this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:d?null:"margin-left,margin-right",classes:d||null}};this.contentTransformations=[["div: splitMarginShorthand"],["h1: splitMarginShorthand"],["h2: splitMarginShorthand"],["h3: splitMarginShorthand"],["h4: splitMarginShorthand"],["h5: splitMarginShorthand"],["h6: splitMarginShorthand"],["ol: splitMarginShorthand"],["p: splitMarginShorthand"],["pre: splitMarginShorthand"],["ul: splitMarginShorthand"]];this.enterBr&&
+(this.allowedContent.div=!0);this.requiredContent=(this.enterBr?"div":"p")+(d?"("+d.join(",")+")":"{margin-left}");this.jobs={20:{refresh:function(a,b){var e=b.block||b.blockLimit;if(!e.is(h))var c=e.getAscendant(h),e=c&&b.contains(c)||e;e.is(h)&&(e=e.getParent());if(this.enterBr||this.getContext(b)){if(d){var c=d,e=e.$.className.match(this.classNameRegex),f=this.isIndent,c=e?f?e[1]!=c.slice(-1):!0:f;return c?n:k}return this.isIndent?n:e?CKEDITOR[0>=(parseInt(e.getStyle(m(e)),10)||0)?"TRISTATE_DISABLED":
+"TRISTATE_OFF"]:k}return k},exec:function(a){var b=a.getSelection(),b=b&&b.getRanges()[0],c;if(c=a.elementPath().contains(p))f.call(this,c,d);else for(b=b.createIterator(),a=a.config.enterMode,b.enforceRealBlocks=!0,b.enlargeBr=a!=CKEDITOR.ENTER_BR;c=b.getNextParagraph(a==CKEDITOR.ENTER_P?"p":"div");)c.isReadOnly()||f.call(this,c,d);return!0}}}}var a=CKEDITOR.plugins.indent,d=b.config.indentClasses;a.registerCommands(b,{indentblock:new c(b,"indentblock",!0),outdentblock:new c(b,"outdentblock")});
+CKEDITOR.tools.extend(c.prototype,a.specificDefinition.prototype,{context:{div:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,p:1,pre:1,table:1},classNameRegex:d?new RegExp("(?:^|\\s+)("+d.join("|")+")(?\x3d$|\\s)"):null})}})})();(function(){function w(d){function f(b){for(var e=c.startContainer,a=c.endContainer;e&&!e.getParent().equals(b);)e=e.getParent();for(;a&&!a.getParent().equals(b);)a=a.getParent();if(!e||!a)return!1;for(var g=e,e=[],k=!1;!k;)g.equals(a)&&(k=!0),e.push(g),g=g.getNext();if(1>e.length)return!1;g=b.getParents(!0);for(a=0;a<g.length;a++)if(g[a].getName&&p[g[a].getName()]){b=g[a];break}for(var g=l.isIndent?1:-1,a=e[0],e=e[e.length-1],k=CKEDITOR.plugins.list.listToArray(b,q),h=k[e.getCustomData("listarray_index")].indent,
+a=a.getCustomData("listarray_index");a<=e.getCustomData("listarray_index");a++)if(k[a].indent+=g,0<g){var n=k[a].parent;k[a].parent=new CKEDITOR.dom.element(n.getName(),n.getDocument())}for(a=e.getCustomData("listarray_index")+1;a<k.length&&k[a].indent>h;a++)k[a].indent+=g;e=CKEDITOR.plugins.list.arrayToList(k,q,null,d.config.enterMode,b.getDirection());if(!l.isIndent){var f;if((f=b.getParent())&&f.is("li"))for(var g=e.listNode.getChildren(),r=[],m,a=g.count()-1;0<=a;a--)(m=g.getItem(a))&&m.is&&m.is("li")&&
+r.push(m)}e&&e.listNode.replace(b);if(r&&r.length)for(a=0;a<r.length;a++){for(m=b=r[a];(m=m.getNext())&&m.is&&m.getName()in p;)CKEDITOR.env.needsNbspFiller&&!b.getFirst(x)&&b.append(c.document.createText(" ")),b.append(m);b.insertAfter(f)}e&&d.fire("contentDomInvalidated");return!0}for(var l=this,q=this.database,p=this.context,c,n=d.getSelection(),n=(n&&n.getRanges()).createIterator();c=n.getNextRange();){for(var b=c.getCommonAncestor();b&&(b.type!=CKEDITOR.NODE_ELEMENT||!p[b.getName()]);){if(d.editable().equals(b)){b=
+!1;break}b=b.getParent()}b||(b=c.startPath().contains(p))&&c.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);if(!b){var h=c.getEnclosedNode();h&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()in p&&(c.setStartAt(h,CKEDITOR.POSITION_AFTER_START),c.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),b=h)}b&&c.startContainer.type==CKEDITOR.NODE_ELEMENT&&c.startContainer.getName()in p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.startContainer=h.next());b&&c.endContainer.type==CKEDITOR.NODE_ELEMENT&&c.endContainer.getName()in
+p&&(h=new CKEDITOR.dom.walker(c),h.evaluator=t,c.endContainer=h.previous());if(b)return f(b)}return 0}function t(d){return d.type==CKEDITOR.NODE_ELEMENT&&d.is("li")}function x(d){return y(d)&&z(d)}var y=CKEDITOR.dom.walker.whitespaces(!0),z=CKEDITOR.dom.walker.bookmark(!1,!0),u=CKEDITOR.TRISTATE_DISABLED,v=CKEDITOR.TRISTATE_OFF;CKEDITOR.plugins.add("indentlist",{requires:"indent",init:function(d){function f(d){l.specificDefinition.apply(this,arguments);this.requiredContent=["ul","ol"];d.on("key",
+function(f){var c=d.elementPath();if("wysiwyg"==d.mode&&f.data.keyCode==this.indentKey&&c){var n=this.getContext(c);!n||this.isIndent&&CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,n)||(d.execCommand(this.relatedGlobal),f.cancel())}},this);this.jobs[this.isIndent?10:30]={refresh:this.isIndent?function(d,c){var f=this.getContext(c),b=CKEDITOR.plugins.indentList.firstItemInPath(this.context,c,f);return f&&this.isIndent&&!b?v:u}:function(d,c){return!this.getContext(c)||this.isIndent?u:v},
+exec:CKEDITOR.tools.bind(w,this)}}var l=CKEDITOR.plugins.indent;l.registerCommands(d,{indentlist:new f(d,"indentlist",!0),outdentlist:new f(d,"outdentlist")});CKEDITOR.tools.extend(f.prototype,l.specificDefinition.prototype,{context:{ol:1,ul:1}})}});CKEDITOR.plugins.indentList={};CKEDITOR.plugins.indentList.firstItemInPath=function(d,f,l){var q=f.contains(t);l||(l=f.contains(d));return l&&q&&q.equals(l.getFirst(t))}})();(function(){function q(a,c){c=void 0===c||c;var b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function h(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";c=a.config.justifyClasses;var f=a.config.enterMode==
+CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=new RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?\x3d$|\\s)");this.requiredContent=f+"("+this.cssClassName+")"}else this.requiredContent=f+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",
+classes:this.cssClassName||null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function m(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var f=new CKEDITOR.dom.walker(b),d;d=f.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),f=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),
+d.addClass(e[0])));e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}h.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var f=c.createBookmarks(),d=c.getRanges(),e=this.cssClassName,h,g,k=a.config.useComputedState,k=void 0===k||k,n=d.length-1;0<=n;n--)for(h=d[n].createIterator(),h.enlargeBr=b!=CKEDITOR.ENTER_BR;g=h.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)if(!g.isReadOnly()){var l=g.getName(),
+p;p=a.activeFilter.check(l+"{text-align}");if((l=a.activeFilter.check(l+"("+e+")"))||p){g.removeAttribute("align");g.removeStyle("text-align");var m=e&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),r=this.state==CKEDITOR.TRISTATE_OFF&&(!k||q(g,!0)!=this.value);e&&l?r?g.addClass(e):m||g.removeAttribute("class"):r&&p&&g.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(f)}},refresh:function(a,c){var b=c.block||c.blockLimit,
+f=b.getName(),d=b.equals(a.editable()),f=this.cssClassName?a.activeFilter.check(f+"("+this.cssClassName+")"):a.activeFilter.check(f+"{text-align}");d&&1===c.elements.length?this.setState(CKEDITOR.TRISTATE_OFF):!d&&f?this.setState(q(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)}};CKEDITOR.plugins.add("justify",{init:function(a){if(!a.blockless){var c=new h(a,"justifyleft","left"),b=new h(a,"justifycenter","center"),
+f=new h(a,"justifyright","right"),d=new h(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",f);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),
+a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",m)}}})})();(function(){function p(c){return c.replace(/'/g,"\\$\x26")}function q(c){for(var b,a=c.length,d=[],f=0;f<a;f++)b=c.charCodeAt(f),d.push(b);return"String.fromCharCode("+d.join(",")+")"}function r(c,b){var a=c.plugins.link,d=a.compiledProtectionFunction.params,f,e;e=[a.compiledProtectionFunction.name,"("];for(var g=0;g<d.length;g++)a=d[g].toLowerCase(),f=b[a],0<g&&e.push(","),e.push("'",f?p(encodeURIComponent(b[a])):"","'");e.push(")");return e.join("")}function n(c){c=c.config.emailProtection||"";
+var b;c&&"encode"!=c&&(b={},c.replace(/^([^(]+)\(([^)]+)\)$/,function(a,c,f){b.name=c;b.params=[];f.replace(/[^,\s]+/g,function(a){b.params.push(a)})}));return b}CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function c(b){return a.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var b="background:url("+CKEDITOR.getUrl(this.path+"images"+(CKEDITOR.env.hidpi?"/hidpi":"")+"/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;background-size:16px;",
+a=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+b+"padding-%1:18px;cursor:auto;}.%2 img.cke_anchor{"+b+"width:16px;min-height:15px;height:1.15em;vertical-align:text-bottom;}";CKEDITOR.addCss(c("ltr")+c("rtl"))},init:function(c){var b="a[!href]";CKEDITOR.dialog.isTabEnabled(c,"link","advanced")&&(b=b.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)"));CKEDITOR.dialog.isTabEnabled(c,"link","target")&&
+(b=b.replace("]",",target,onclick]"));c.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:b,requiredContent:"a[href]"}));c.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));c.addCommand("unlink",new CKEDITOR.unlinkCommand);c.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);c.setKeystroke(CKEDITOR.CTRL+76,"link");c.ui.addButton&&(c.ui.addButton("Link",{label:c.lang.link.toolbar,command:"link",toolbar:"links,10"}),
+c.ui.addButton("Unlink",{label:c.lang.link.unlink,command:"unlink",toolbar:"links,20"}),c.ui.addButton("Anchor",{label:c.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");c.on("doubleclick",function(a){var b=a.data.element.getAscendant({a:1,img:1},!0);b&&!b.isReadOnly()&&(b.is("a")?(a.data.dialog=!b.getAttribute("name")||b.getAttribute("href")&&b.getChildCount()?"link":
+"anchor",a.data.link=b):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b)&&(a.data.dialog="anchor"))},null,null,0);c.on("doubleclick",function(a){a.data.dialog in{link:1,anchor:1}&&a.data.link&&c.getSelection().selectElement(a.data.link)},null,null,20);c.addMenuItems&&c.addMenuItems({anchor:{label:c.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:c.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:c.lang.link.menu,command:"link",group:"link",
+order:1},unlink:{label:c.lang.link.unlink,command:"unlink",group:"link",order:5}});c.contextMenu&&c.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(c)))return null;var b={};a.getAttribute("href")&&a.getChildCount()&&(b={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});a&&a.hasAttribute("name")&&(b.anchor=b.removeAnchor=CKEDITOR.TRISTATE_OFF);return b});this.compiledProtectionFunction=
+n(c)},afterInit:function(c){c.dataProcessor.dataFilter.addRules({elements:{a:function(a){return a.attributes.name?a.children.length?null:c.createFakeParserElement(a,"cke_anchor","anchor"):null}}});var b=c._.elementsPath&&c._.elementsPath.filters;b&&b.push(function(a,b){if("a"==b&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});var t=/^javascript:/,u=/^mailto:([^?]+)(?:\?(.+))?$/,v=/subject=([^;?:@&=$,\/]*)/i,
+w=/body=([^;?:@&=$,\/]*)/i,x=/^#(.*)$/,y=/^((?:http|https|ftp|news):\/\/)?(.*)$/,z=/^(_(?:self|top|parent|blank))$/,A=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,B=/^javascript:([^(]+)\(([^)]+)\)$/,C=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,D=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,m={id:"advId",dir:"advLangDir",accessKey:"advAccessKey",name:"advName",lang:"advLangCode",tabindex:"advTabIndex",
+title:"advTitle",type:"advContentType","class":"advCSSClasses",charset:"advCharset",style:"advStyles",rel:"advRel"};CKEDITOR.plugins.link={getSelectedLink:function(c,b){var a=c.getSelection(),d=a.getSelectedElement(),f=a.getRanges(),e=[],g;if(!b&&d&&d.is("a"))return d;for(d=0;d<f.length;d++)if(g=a.getRanges()[d],g.shrink(CKEDITOR.SHRINK_TEXT,!1,{skipBogus:!0}),(g=c.elementPath(g.getCommonAncestor()).contains("a",1))&&b)e.push(g);else if(g)return g;return b?e:null},getEditorAnchors:function(c){for(var b=
+c.editable(),a=b.isInline()&&!c.plugins.divarea?c.document:b,b=a.getElementsByTag("a"),a=a.getElementsByTag("img"),d=[],f=0,e;e=b.getItem(f++);)(e.data("cke-saved-name")||e.hasAttribute("name"))&&d.push({name:e.data("cke-saved-name")||e.getAttribute("name"),id:e.getAttribute("id")});for(f=0;e=a.getItem(f++);)(e=this.tryRestoreFakeAnchor(c,e))&&d.push({name:e.getAttribute("name"),id:e.getAttribute("id")});return d},fakeAnchor:!0,tryRestoreFakeAnchor:function(c,b){if(b&&b.data("cke-real-element-type")&&
+"anchor"==b.data("cke-real-element-type")){var a=c.restoreRealElement(b);if(a.data("cke-saved-name"))return a}},parseLinkAttributes:function(c,b){var a=b&&(b.data("cke-saved-href")||b.getAttribute("href"))||"",d=c.plugins.link.compiledProtectionFunction,f=c.config.emailProtection,e,g={};a.match(t)&&("encode"==f?a=a.replace(A,function(a,b,c){c=c||"";return"mailto:"+String.fromCharCode.apply(String,b.split(","))+c.replace(/\\'/g,"'")}):f&&a.replace(B,function(a,b,c){if(b==d.name){g.type="email";a=g.email=
+{};b=/(^')|('$)/g;c=c.match(/[^,\s]+/g);for(var e=c.length,f,h,k=0;k<e;k++)f=decodeURIComponent,h=c[k].replace(b,"").replace(/\\'/g,"'"),h=f(h),f=d.params[k].toLowerCase(),a[f]=h;a.address=[a.name,a.domain].join("@")}}));if(!g.type)if(f=a.match(x))g.type="anchor",g.anchor={},g.anchor.name=g.anchor.id=f[1];else if(f=a.match(u)){e=a.match(v);a=a.match(w);g.type="email";var k=g.email={};k.address=f[1];e&&(k.subject=decodeURIComponent(e[1]));a&&(k.body=decodeURIComponent(a[1]))}else a&&(e=a.match(y))&&
+(g.type="url",g.url={},g.url.protocol=e[1],g.url.url=e[2]);if(b){if(a=b.getAttribute("target"))g.target={type:a.match(z)?a:"frame",name:a};else if(a=(a=b.data("cke-pa-onclick")||b.getAttribute("onclick"))&&a.match(C))for(g.target={type:"popup",name:a[1]};f=D.exec(a[2]);)"yes"!=f[2]&&"1"!=f[2]||f[1]in{height:1,width:1,top:1,left:1}?isFinite(f[2])&&(g.target[f[1]]=f[2]):g.target[f[1]]=!0;null!==b.getAttribute("download")&&(g.download=!0);var a={},h;for(h in m)(f=b.getAttribute(h))&&(a[m[h]]=f);if(h=
+b.data("cke-saved-name")||a.advName)a.advName=h;CKEDITOR.tools.isEmpty(a)||(g.advanced=a)}return g},getLinkAttributes:function(c,b){var a=c.config.emailProtection||"",d={};switch(b.type){case "url":var a=b.url&&void 0!==b.url.protocol?b.url.protocol:"http://",f=b.url&&CKEDITOR.tools.trim(b.url.url)||"";d["data-cke-saved-href"]=0===f.indexOf("/")?f:a+f;break;case "anchor":a=b.anchor&&b.anchor.id;d["data-cke-saved-href"]="#"+(b.anchor&&b.anchor.name||a||"");break;case "email":var e=b.email,f=e.address;
+switch(a){case "":case "encode":var g=encodeURIComponent(e.subject||""),k=encodeURIComponent(e.body||""),e=[];g&&e.push("subject\x3d"+g);k&&e.push("body\x3d"+k);e=e.length?"?"+e.join("\x26"):"";"encode"==a?(a=["javascript:void(location.href\x3d'mailto:'+",q(f)],e&&a.push("+'",p(e),"'"),a.push(")")):a=["mailto:",f,e];break;default:a=f.split("@",2),e.name=a[0],e.domain=a[1],a=["javascript:",r(c,e)]}d["data-cke-saved-href"]=a.join("")}if(b.target)if("popup"==b.target.type){for(var a=["window.open(this.href, '",
+b.target.name||"","', '"],h="resizable status location toolbar menubar fullscreen scrollbars dependent".split(" "),f=h.length,g=function(a){b.target[a]&&h.push(a+"\x3d"+b.target[a])},e=0;e<f;e++)h[e]+=b.target[h[e]]?"\x3dyes":"\x3dno";g("width");g("left");g("height");g("top");a.push(h.join(","),"'); return false;");d["data-cke-pa-onclick"]=a.join("")}else"notSet"!=b.target.type&&b.target.name&&(d.target=b.target.name);b.download&&(d.download="");if(b.advanced){for(var l in m)(a=b.advanced[m[l]])&&
+(d[l]=a);d.name&&(d["data-cke-saved-name"]=d.name)}d["data-cke-saved-href"]&&(d.href=d["data-cke-saved-href"]);l={target:1,onclick:1,"data-cke-pa-onclick":1,"data-cke-saved-name":1,download:1};b.advanced&&CKEDITOR.tools.extend(l,m);for(var n in d)delete l[n];return{set:d,removed:CKEDITOR.tools.objectKeys(l)}},showDisplayTextForElement:function(c,b){var a={img:1,table:1,tbody:1,thead:1,tfoot:1,input:1,select:1,textarea:1},d=b.getSelection();return b.widgets&&b.widgets.focused||d&&1<d.getRanges().length?
+!1:!c||!c.getName||!c.is(a)}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(c){if(CKEDITOR.env.ie){var b=c.getSelection().getRanges()[0],a=b.getPreviousEditableNode()&&b.getPreviousEditableNode().getAscendant("a",!0)||b.getNextEditableNode()&&b.getNextEditableNode().getAscendant("a",!0),d;b.collapsed&&a&&(d=b.createBookmark(),b.selectNodeContents(a),b.select())}a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});c.removeStyle(a);
+d&&(b.moveToBookmark(d),b.select())},refresh:function(c,b){var a=b.lastElement&&b.lastElement.getAscendant("a",!0);a&&"a"==a.getName()&&a.getAttribute("href")&&a.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]",editorFocus:1};CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(c){var b=c.getSelection(),a=b.createBookmarks(),d;if(b&&(d=b.getSelectedElement())&&
+(d.getChildCount()?d.is("a"):CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,d)))d.remove(1);else if(d=CKEDITOR.plugins.link.getSelectedLink(c))d.hasAttribute("href")?(d.removeAttributes({name:1,"data-cke-saved-name":1}),d.removeClass("cke_anchor")):d.remove(1);b.selectBookmarks(a)},requiredContent:"a[name]"};CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0})})();(function(){function I(b,m,e){function c(c){if(!(!(a=d[c?"getFirst":"getLast"]())||a.is&&a.isBlockBoundary()||!(p=m.root[c?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))||p.is&&p.isBlockBoundary({br:1})))b.document.createElement("br")[c?"insertBefore":"insertAfter"](a)}for(var f=CKEDITOR.plugins.list.listToArray(m.root,e),g=[],k=0;k<m.contents.length;k++){var h=m.contents[k];(h=h.getAscendant("li",!0))&&!h.getCustomData("list_item_processed")&&(g.push(h),CKEDITOR.dom.element.setMarker(e,
 h,"list_item_processed",!0))}h=null;for(k=0;k<g.length;k++)h=g[k].getCustomData("listarray_index"),f[h].indent=-1;for(k=h+1;k<f.length;k++)if(f[k].indent>f[k-1].indent+1){g=f[k-1].indent+1-f[k].indent;for(h=f[k].indent;f[k]&&f[k].indent>=h;)f[k].indent+=g,k++;k--}var d=CKEDITOR.plugins.list.arrayToList(f,e,null,b.config.enterMode,m.root.getAttribute("dir")).listNode,a,p;c(!0);c();d.replace(m.root);b.fire("contentDomInvalidated")}function B(b,m){this.name=b;this.context=this.type=m;this.allowedContent=
 m+" li";this.requiredContent=m}function E(b,m,e,c){for(var f,g;f=b[c?"getLast":"getFirst"](J);)(g=f.getDirection(1))!==m.getDirection(1)&&f.setAttribute("dir",g),f.remove(),e?f[c?"insertBefore":"insertAfter"](e):m.append(f,c)}function F(b){function m(e){var c=b[e?"getPrevious":"getNext"](u);c&&c.type==CKEDITOR.NODE_ELEMENT&&c.is(b.getName())&&(E(b,c,null,!e),b.remove(),b=c)}m();m(1)}function G(b){return b.type==CKEDITOR.NODE_ELEMENT&&(b.getName()in CKEDITOR.dtd.$block||b.getName()in CKEDITOR.dtd.$listItem)&&
 CKEDITOR.dtd[b.getName()]["#"]}function C(b,m,e){b.fire("saveSnapshot");e.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var c=e.extractContents();m.trim(!1,!0);var f=m.createBookmark(),g=new CKEDITOR.dom.elementPath(m.startContainer),k=g.block,g=g.lastElement.getAscendant("li",1)||k,h=new CKEDITOR.dom.elementPath(e.startContainer),d=h.contains(CKEDITOR.dtd.$listItem),h=h.contains(CKEDITOR.dtd.$list);k?(k=k.getBogus())&&k.remove():h&&(k=h.getPrevious(u))&&z(k)&&k.remove();(k=c.getLast())&&k.type==CKEDITOR.NODE_ELEMENT&&
@@ -785,9 +859,9 @@ for(n=0;n<q.length;n++)F(q[n]);CKEDITOR.dom.element.clearAllMarkers(k);e.selectB
 !z(a)};d.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};e=f.clone();if(k){var a;(a=g.contains(v))&&f.checkBoundaryOfElement(a,CKEDITOR.START)&&(a=a.getParent())&&a.is("li")&&(a=A(a))?(c=a,a=a.getPrevious(u),e.moveToPosition(a&&z(a)?a:c,CKEDITOR.POSITION_BEFORE_START)):(d.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START),d.range.setEnd(f.startContainer,f.startOffset),(a=d.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in v||a.is("li"))&&(a.is("li")||(d.range.selectNodeContents(a),
 d.reset(),d.evaluator=G,a=d.previous()),c=a,e.moveToElementEditEnd(c),e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END)));if(c)C(b,e,f),m.cancel();else{var p=g.contains(v);p&&f.checkBoundaryOfElement(p,CKEDITOR.START)&&(c=p.getFirst(u),f.checkBoundaryOfElement(c,CKEDITOR.START)&&(a=p.getPrevious(u),A(c)?a&&(f.moveToElementEditEnd(a),f.select()):b.execCommand("outdent"),m.cancel()))}}else if(c=g.contains("li")){if(d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),k=(h=c.getLast(u))&&
 G(h)?h:c,g=0,(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in v&&a.equals(h)?(g=1,a=d.next()):f.checkBoundaryOfElement(k,CKEDITOR.END)&&(g=2),g&&a){f=f.clone();f.moveToElementEditStart(a);if(1==g&&(e.optimize(),!e.startContainer.equals(c))){for(c=e.startContainer;c.is(CKEDITOR.dtd.$inline);)p=c,c=c.getParent();p&&e.moveToPosition(p,CKEDITOR.POSITION_AFTER_END)}2==g&&(e.moveToPosition(e.endPath().block,CKEDITOR.POSITION_BEFORE_END),f.endPath().block&&f.moveToPosition(f.endPath().block,CKEDITOR.POSITION_AFTER_START));
-C(b,e,f);m.cancel()}}else d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(v)&&(a=a.getFirst(u),g.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(g.block.remove(),f.moveToElementEditStart(a),f.select()):A(a)?(f.moveToElementEditStart(a),f.select()):(f=f.clone(),f.moveToElementEditStart(a),C(b,e,f)),m.cancel());setTimeout(function(){b.selectionChange(1)})}}}))}})})();(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);
-a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};
-a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function V(a,c,d){return n(c)&&n(d)&&d.equals(c.getNext(function(a){return!(E(a)||F(a)||u(a))}))}function z(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function O(a){var c=a.element;if(c&&n(c)&&(c=c.getAscendant(a.triggers,!0))&&a.editable.contains(c)){var d=P(c);if("true"==d.getAttribute("contenteditable"))return c;if(d.is(a.triggers))return d}return null}function ka(a,c,d){r(a,c);r(a,d);a=c.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function w(a,c,d){return c=
+C(b,e,f);m.cancel()}}else d.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END),(a=d.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(v)&&(a=a.getFirst(u),g.block&&f.checkStartOfBlock()&&f.checkEndOfBlock()?(g.block.remove(),f.moveToElementEditStart(a),f.select()):A(a)?(f.moveToElementEditStart(a),f.select()):(f=f.clone(),f.moveToElementEditStart(a),C(b,e,f)),m.cancel());setTimeout(function(){b.selectionChange(1)})}}}))}})})();(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]; li{list-style-type}[value]",contentTransformations:[["ol: listTypeToStyle"]]});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",
+allowedContent:"ul{list-style-type}",contentTransformations:[["ul: listTypeToStyle"]]});b=a.addCommand("bulletedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;
+for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function V(a,c,d){return n(c)&&n(d)&&d.equals(c.getNext(function(a){return!(E(a)||F(a)||u(a))}))}function z(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function O(a){var c=a.element;if(c&&n(c)&&(c=c.getAscendant(a.triggers,!0))&&a.editable.contains(c)){var d=P(c);if("true"==d.getAttribute("contenteditable"))return c;if(d.is(a.triggers))return d}return null}function ka(a,c,d){r(a,c);r(a,d);a=c.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function w(a,c,d){return c=
 c[d?"getPrevious":"getNext"](function(b){return b&&b.type==CKEDITOR.NODE_TEXT&&!E(b)||n(b)&&!u(b)&&!A(a,b)})}function q(a,c,d){return a>c&&a<d}function P(a,c){if(a.data("cke-editable"))return null;for(c||(a=a.getParent());a&&!a.data("cke-editable");){if(a.hasAttribute("contenteditable"))return a;a=a.getParent()}return null}function la(a){var c=a.doc,d=G('\x3cspan contenteditable\x3d"false" style\x3d"'+Q+"position:absolute;border-top:1px dashed "+a.boxColor+'"\x3e\x3c/span\x3e',c),b=CKEDITOR.getUrl(this.path+
 "images/"+(t.hidpi?"hidpi/":"")+"icon"+(a.rtl?"-rtl":"")+".png");v(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[v(G('\x3cspan title\x3d"'+a.editor.lang.magicline.title+'" contenteditable\x3d"false"\x3e\x26#8629;\x3c/span\x3e',c),{base:Q+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+b+") center no-repeat "+a.boxColor+";cursor:pointer;"+(t.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":
 "")+(t.hidpi?"background-size: 9px 10px;":""),looks:["top:-8px; border-radius: 2px;","top:-17px; border-radius: 2px 2px 0px 0px;","top:-1px; border-radius: 0px 0px 2px 2px;"]}),v(G(W,c),{base:X+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),v(G(W,c),{base:X+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px",
@@ -828,11 +902,7 @@ CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:n)},null,null,100)}}})})()
 CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=new RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,m=a.getSelection().getRanges(),n=m.createIterator(),p=function(a){return a.type==CKEDITOR.NODE_ELEMENT},c;c=n.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT);
 var l=c.createBookmark(),b=l.startNode,d=l.endNode,k=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};k(b);if(d)for(k(d),b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(d);)if(b.isReadOnly()){if(b.getPosition(d)&CKEDITOR.POSITION_CONTAINS)break;b=b.getNext(p)}else k=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),"img"==b.getName()&&b.data("cke-realelement")||!f(a,b)||(h.test(b.getName())?
 b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=k;c.moveToBookmark(l)}a.forceNextSelectionCheck();a.getSelection().selectRanges(m)}}},filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,cite,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";
-CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";CKEDITOR.plugins.add("resize",{init:function(b){function f(d){var e=c.width,m=c.height,f=e+(d.data.$.screenX-n.x)*("rtl"==g?-1:1);d=m+(d.data.$.screenY-n.y);h&&(e=Math.max(a.resize_minWidth,Math.min(f,a.resize_maxWidth)));p&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(h?e:null,m)}function k(){CKEDITOR.document.removeListener("mousemove",f);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",f),b.document.removeListener("mouseup",
-k))}var a=b.config,r=b.ui.spaceId("resizer"),g=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0===a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0===a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0===a.resize_minWidth&&(a.resize_minWidth=750);void 0===a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var l=null,n,c,h=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,p=("both"==a.resize_dir||"vertical"==
-a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,q=CKEDITOR.tools.addFunction(function(d){l||(l=b.getResizable());c={width:l.$.offsetWidth||0,height:l.$.offsetHeight||0};n={x:d.screenX,y:d.screenY};a.resize_minWidth>c.width&&(a.resize_minWidth=c.width);a.resize_minHeight>c.height&&(a.resize_minHeight=c.height);CKEDITOR.document.on("mousemove",f);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",f),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",
-function(){CKEDITOR.tools.removeFunction(q)});b.on("uiSpace",function(a){if("bottom"==a.data.space){var e="";h&&!p&&(e=" cke_resizer_horizontal");!h&&p&&(e=" cke_resizer_vertical");var c='\x3cspan id\x3d"'+r+'" class\x3d"cke_resizer'+e+" cke_resizer_"+g+'" title\x3d"'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown\x3d"CKEDITOR.tools.callFunction('+q+', event)"\x3e'+("ltr"==g?"◢":"◣")+"\x3c/span\x3e";"ltr"==g&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",
-function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
+CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 \x3e tr \x3e td, .%1 table.%2 \x3e tr \x3e th,;.%1 table.%2 \x3e tbody \x3e tr \x3e td, .%1 table.%2 \x3e tbody \x3e tr \x3e th,;.%1 table.%2 \x3e thead \x3e tr \x3e td, .%1 table.%2 \x3e thead \x3e tr \x3e th,;.%1 table.%2 \x3e tfoot \x3e tr \x3e td, .%1 table.%2 \x3e tfoot \x3e tr \x3e th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
 "cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&d.is("table")&&(!d.hasAttribute("border")||
 0>=parseInt(d.getAttribute("border"),10))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor;a=b&&b.dataFilter;b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"],c=parseInt(a.border,10);c&&!(0>=c)||b&&-1!=b.indexOf("cke_show_border")||(a["class"]=(b||"")+" cke_show_border")}}});b&&b.addRules({elements:{table:function(a){a=a.attributes;var b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
 ""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
@@ -846,34 +916,165 @@ c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKE
 CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",k());c.addCommand("selectPreviousCell",k(!0))}})})();
 CKEDITOR.dom.element.prototype.focusNext=function(k,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(k,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,k){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&&
 (f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):d||0!==a||(d=b,e=a)}}d&&d.focus()};
-CKEDITOR.dom.element.prototype.focusPrevious=function(k,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,k){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}b<g&&(!d||b>e)&&(d=a,e=b)}}d&&d.focus()};(function(){function B(a){function d(){for(var b=g(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||q(a),f=0;f<e.length;f++){var l=e[f];if("/"!=l){"string"==typeof l&&(l=e[f]={name:l});var m,d=l.groups;if(d)for(var h=0;h<d.length;h++)m=d[h],(m=b[m])&&c(l,m);(m=b[l.name])&&c(l,m)}}return e}function g(){var b={},c,f,e;for(c in a.ui.items)f=a.ui.items[c],e=f.toolbar||"others",e=e.split(","),f=e[0],e=parseInt(e[1]||-1,10),b[f]||(b[f]=[]),b[f].push({name:c,order:e});for(f in b)b[f]=b[f].sort(function(b,
-a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var f;f=e.shift();)f="string"==typeof f?f:f.name,b&&-1!=CKEDITOR.tools.indexOf(b,f)||(f=a.ui.create(f))&&a.addFeature(f)&&c.items.push(f)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
-h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function q(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
-"indent","blocks","align","bidi"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var y=function(){this.toolbars=[];this.focusCommandExecuted=!1};y.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var g=0,c;c=d.items[g++];)if(c.focus){c.focus();return}};var C={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
-100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,g=function(c,h){var b,e="rtl"==a.lang.dir,k=a.config.toolbarGroupCycling,r=e?37:39,e=e?39:37,k=void 0===k||k;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||
-(b=0);c&&c.focus();return!1;case r:b=c;do b=b.next,!b&&k&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():g(c,9);return!1;case 40:return c.button&&c.button.hasArrow?(a.once("panelShow",function(b){b.data._.panel._.currentBlock.onKeyDown(40)}),c.execute()):g(c,40==h?r:e),!1;case e:case 38:b=c;do b=b.previous,!b&&k&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,g(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),
-!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();a.toolbox=new y;var d=CKEDITOR.tools.getNextId(),b=['\x3cspan id\x3d"',d,'" class\x3d"cke_voice_label"\x3e',a.lang.toolbar.toolbars,"\x3c/span\x3e",'\x3cspan id\x3d"'+a.ui.spaceId("toolbox")+'" class\x3d"cke_toolbox" role\x3d"group" aria-labelledby\x3d"',d,'" onmousedown\x3d"return false;"\x3e'],d=!1!==a.config.toolbarStartupExpanded,e,k;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&
-b.push('\x3cspan class\x3d"cke_toolbox_main"'+(d?"\x3e":' style\x3d"display:none"\x3e'));for(var r=a.toolbox.toolbars,f=B(a),l=0;l<f.length;l++){var m,n=0,v,p=f[l],w;if(p)if(e&&(b.push("\x3c/span\x3e"),k=e=0),"/"===p)b.push('\x3cspan class\x3d"cke_toolbar_break"\x3e\x3c/span\x3e');else{w=p.items||p;for(var x=0;x<w.length;x++){var t=w[x],q;if(t){var z=function(c){c=c.render(a,b);u=n.items.push(c)-1;0<u&&(c.previous=n.items[u-1],c.previous.next=c);c.toolbar=n;c.onkey=g;c.onfocus=function(){a.toolbox.focusCommandExecuted||
-a.focus()}};if(t.type==CKEDITOR.UI_SEPARATOR)k=e&&t;else{q=!1!==t.canGroup;if(!n){m=CKEDITOR.tools.getNextId();n={id:m,items:[]};v=p.name&&(a.lang.toolbar.toolbarGroups[p.name]||p.name);b.push('\x3cspan id\x3d"',m,'" class\x3d"cke_toolbar"',v?' aria-labelledby\x3d"'+m+'_label"':"",' role\x3d"toolbar"\x3e');v&&b.push('\x3cspan id\x3d"',m,'_label" class\x3d"cke_voice_label"\x3e',v,"\x3c/span\x3e");b.push('\x3cspan class\x3d"cke_toolbar_start"\x3e\x3c/span\x3e');var u=r.push(n)-1;0<u&&(n.previous=r[u-
-1],n.previous.next=n)}q?e||(b.push('\x3cspan class\x3d"cke_toolgroup" role\x3d"presentation"\x3e'),e=1):e&&(b.push("\x3c/span\x3e"),e=0);k&&(z(k),k=0);z(t)}}}e&&(b.push("\x3c/span\x3e"),k=e=0);n&&b.push('\x3cspan class\x3d"cke_toolbar_end"\x3e\x3c/span\x3e\x3c/span\x3e')}}a.config.toolbarCanCollapse&&b.push("\x3c/span\x3e");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var A=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(A)});
-a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),e=b.ui.space("contents"),d=c.getParent(),f=parseInt(e.$.style.height,10),h=d.$.offsetHeight,g=a.hasClass("cke_toolbox_collapser_min");g?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(g?"▲":"◀");e.setStyle("height",
-f-(d.$.offsetHeight-h)+"px");b.fire("resize",{outerHeight:b.container.$.offsetHeight,contentsHeight:e.$.offsetHeight,outerWidth:b.container.$.offsetWidth})},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('\x3ca title\x3d"'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id\x3d"'+a.ui.spaceId("toolbar_collapser")+'" tabIndex\x3d"-1" class\x3d"cke_toolbox_collapser');d||b.push(" cke_toolbox_collapser_min");
-b.push('" onclick\x3d"CKEDITOR.tools.callFunction('+A+')"\x3e','\x3cspan class\x3d"cke_arrow"\x3e\x26#9650;\x3c/span\x3e',"\x3c/a\x3e")}b.push("\x3c/span\x3e");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,g;for(a=this.toolbox.toolbars;d<a.length;d++)for(e=a[d].items,b=0;b<e.length;b++)g=e[b],g.clickFn&&CKEDITOR.tools.removeFunction(g.clickFn),g.keyDownFn&&CKEDITOR.tools.removeFunction(g.keyDownFn)}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c,
-1)});a.addCommand("toolbarFocus",C);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('\x3cspan class\x3d"cke_toolbar_separator" role\x3d"separator"\x3e\x3c/span\x3e');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,g){var c=q(this.editor),h=0===d,b={name:a};if(g){if(g=CKEDITOR.tools.search(c,function(a){return a.name==g})){!g.groups&&(g.groups=[]);if(d&&
-(d=CKEDITOR.tools.indexOf(g.groups,d),0<=d)){g.groups.splice(d+1,0,a);return}h?g.groups.splice(0,0,a):g.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){function m(a){function f(a){var b=!1;g.attachListener(g,"keydown",function(){var d=c.getBody().getElementsByTag(a);if(!b){for(var e=0;e<d.count();e++)d.getItem(e).setCustomData("retain",!0);b=!0}},null,null,1);g.attachListener(g,"keyup",function(){var d=c.getElementsByTag(a);b&&(1!=d.count()||d.getItem(0).getCustomData("retain")||d.getItem(0).remove(1),b=!1)})}var b=this.editor,c=a.document,d=c.body,e=c.getElementById("cke_actscrpt");e&&e.parentNode.removeChild(e);(e=c.getElementById("cke_shimscrpt"))&&
-e.parentNode.removeChild(e);(e=c.getElementById("cke_basetagscrpt"))&&e.parentNode.removeChild(e);d.contentEditable=!0;CKEDITOR.env.ie&&(d.hideFocus=!0,d.disabled=!0,d.removeAttribute("disabled"));delete this._.isLoadingData;this.$=d;c=new CKEDITOR.dom.document(c);this.setup();this.fixInitialSelection();var g=this;CKEDITOR.env.ie&&!CKEDITOR.env.edge&&c.getDocumentElement().addClass(c.$.compatMode);CKEDITOR.env.ie&&!CKEDITOR.env.edge&&b.enterMode!=CKEDITOR.ENTER_P?f("p"):CKEDITOR.env.edge&&b.enterMode!=
-CKEDITOR.ENTER_DIV&&f("div");if(CKEDITOR.env.webkit||CKEDITOR.env.ie&&10<CKEDITOR.env.version)c.getDocumentElement().on("mousedown",function(a){a.data.getTarget().is("html")&&setTimeout(function(){b.editable().focus()})});n(b);try{b.document.$.execCommand("2D-position",!1,!0)}catch(h){}(CKEDITOR.env.gecko||CKEDITOR.env.ie&&"CSS1Compat"==b.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var c=a.data.getKeystroke();if(33==c||34==c)if(CKEDITOR.env.ie)setTimeout(function(){b.getSelection().scrollIntoView()},
-0);else if(b.window.$.innerHeight>this.$.offsetHeight){var d=b.createRange();d[33==c?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(c,"blur",function(){try{c.$.selection.empty()}catch(a){}});CKEDITOR.env.iOS&&this.attachListener(c,"touchend",function(){a.focus()});d=b.document.getElementsByTag("title").getItem(0);d.data("cke-title",d.getText());CKEDITOR.env.ie&&(b.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){"unloaded"==
-this.status&&(this.status="ready");b.fire("contentDom");this._.isPendingFocus&&(b.focus(),this._.isPendingFocus=!1);setTimeout(function(){b.fire("dataReady")},0)},0,this)}function n(a){function f(){var c;a.editable().attachListener(a,"selectionChange",function(){var d=a.getSelection().getSelectedElement();d&&(c&&(c.detachEvent("onresizestart",b),c=null),d.$.attachEvent("onresizestart",b),c=d.$)})}function b(a){a.returnValue=!1}if(CKEDITOR.env.gecko)try{var c=a.document.$;c.execCommand("enableObjectResizing",
-!1,!a.config.disableObjectResizing);c.execCommand("enableInlineTableEditing",!1,!a.config.disableNativeTableHandles)}catch(d){}else CKEDITOR.env.ie&&11>CKEDITOR.env.version&&a.config.disableObjectResizing&&f(a)}function p(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable\x3dfalse]{min-height:0 !important}");var f=[],b;for(b in CKEDITOR.dtd.$removeEmpty)f.push("html.CSS1Compat "+b+"[contenteditable\x3dfalse]");a.push(f.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&
-(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(f){function b(b){b&&b.removeListener();a.editable(new l(a,
-d.$.contentWindow.document.body));a.setData(a.getData(1),f)}var c="document.open();"+(CKEDITOR.env.ie?"("+CKEDITOR.tools.fixDomain+")();":"")+"document.close();",c=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void(function(){"+encodeURIComponent(c)+"}())":"",d=CKEDITOR.dom.element.createFromHtml('\x3ciframe src\x3d"'+c+'" frameBorder\x3d"0"\x3e\x3c/iframe\x3e');d.setStyles({width:"100%",height:"100%"});d.addClass("cke_wysiwyg_frame").addClass("cke_reset");
-c=a.ui.space("contents");c.append(d);var e=CKEDITOR.env.ie&&!CKEDITOR.env.edge||CKEDITOR.env.gecko;if(e)d.on("load",b);var g=a.title,h=a.fire("ariaEditorHelpLabel",{}).label;g&&(CKEDITOR.env.ie&&h&&(g+=", "+h),d.setAttribute("title",g));if(h){var g=CKEDITOR.tools.getNextId(),k=CKEDITOR.dom.element.createFromHtml('\x3cspan id\x3d"'+g+'" class\x3d"cke_voice_label"\x3e'+h+"\x3c/span\x3e");c.append(k,1);d.setAttribute("aria-describedby",g)}a.on("beforeModeUnload",function(a){a.removeListener();k&&k.remove()});
-d.setAttributes({tabIndex:a.tabIndex,allowTransparency:"true"});!e&&b();a.fire("ariaWidget",d)})}});CKEDITOR.editor.prototype.addContentsCss=function(a){var f=this.config,b=f.contentsCss;CKEDITOR.tools.isArray(b)||(f.contentsCss=b?[b]:[]);f.contentsCss.push(a)};var l=CKEDITOR.tools.createClass({$:function(){this.base.apply(this,arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(m,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},
-base:CKEDITOR.editable,proto:{setData:function(a,f){var b=this.editor;if(f)this.setHtml(a),this.fixInitialSelection(),b.fire("dataReady");else{this._.isLoadingData=!0;b._.dataStore={id:1};var c=b.config,d=c.fullPage,e=c.docType,g=CKEDITOR.tools.buildStyleHtml(p()).replace(/<style>/,'\x3cstyle data-cke-temp\x3d"1"\x3e');d||(g+=CKEDITOR.tools.buildStyleHtml(b.config.contentsCss));var h=c.baseHref?'\x3cbase href\x3d"'+c.baseHref+'" data-cke-temp\x3d"1" /\x3e':"";d&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){b.docType=
-e=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){b.xmlDeclaration=a;return""}));a=b.dataProcessor.toHtml(a);d?(/<body[\s|>]/.test(a)||(a="\x3cbody\x3e"+a),/<html[\s|>]/.test(a)||(a="\x3chtml\x3e"+a+"\x3c/html\x3e"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$\x26\x3ctitle\x3e\x3c/title\x3e")):a=a.replace(/<html[^>]*>/,"$\x26\x3chead\x3e\x3ctitle\x3e\x3c/title\x3e\x3c/head\x3e"),h&&(a=a.replace(/<head[^>]*?>/,"$\x26"+h)),a=a.replace(/<\/head\s*>/,g+"$\x26"),a=
-e+a):a=c.docType+'\x3chtml dir\x3d"'+c.contentsLangDirection+'" lang\x3d"'+(c.contentsLanguage||b.langCode)+'"\x3e\x3chead\x3e\x3ctitle\x3e'+this._.docTitle+"\x3c/title\x3e"+h+g+"\x3c/head\x3e\x3cbody"+(c.bodyId?' id\x3d"'+c.bodyId+'"':"")+(c.bodyClass?' class\x3d"'+c.bodyClass+'"':"")+"\x3e"+a+"\x3c/body\x3e\x3c/html\x3e";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'\x3cbody contenteditable\x3d"true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$\x26\x3c!-- cke-content-start --\x3e")));
-c='\x3cscript id\x3d"cke_actscrpt" type\x3d"text/javascript"'+(CKEDITOR.env.ie?' defer\x3d"defer" ':"")+"\x3evar wasLoaded\x3d0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded\x3d1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"\x3c/script\x3e";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_shimscrpt"\x3ewindow.parent.CKEDITOR.tools.enableHtml5Elements(document)\x3c/script\x3e');
-h&&CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(c+='\x3cscript id\x3d"cke_basetagscrpt"\x3evar baseTag \x3d document.querySelector( "base" );baseTag.href \x3d baseTag.href;\x3c/script\x3e');a=a.replace(/(?=\s*<\/(:?head)>)/,c);this.clearCustomData();this.clearListeners();b.fire("contentDomUnload");var k=this.getDocument();try{k.write(a)}catch(l){setTimeout(function(){k.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();a=this.editor;var f=a.config,b=f.fullPage,c=b&&a.docType,d=b&&a.xmlDeclaration,
-e=this.getDocument(),b=b?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&f.enterMode!=CKEDITOR.ENTER_BR&&(b=b.replace(/<br>(?=\s*(:?$|<\/body>))/,""));b=a.dataProcessor.toDataFormat(b);d&&(b=d+"\n"+b);c&&(b=c+"\n"+b);return b},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:l.baseProto.focus.call(this)},detach:function(){var a=this.editor,f=a.document,b;try{b=a.window.getFrame()}catch(c){}l.baseProto.detach.call(this);this.clearCustomData();f.getDocumentElement().clearCustomData();
-CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);b&&b.getParent()?(b.clearCustomData(),(a=b.removeCustomData("onResize"))&&a.removeListener(),b.remove()):CKEDITOR.warn("editor-destroy-iframe")}}})})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.plugins='dialogui,dialog,a11yhelp,basicstyles,panel,floatpanel,menu,contextmenu,dialogadvtab,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,button,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,resize,showborders,sourcearea,tab,toolbar,wysiwygarea';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,horizontalrule,144,,iframe,168,,image,192,,indent-rtl,216,,indent,240,,outdent-rtl,264,,outdent,288,,justifyblock,312,,justifycenter,336,,justifyleft,360,,justifyright,384,,anchor-rtl,408,,anchor,432,,link,456,,unlink,480,,bulletedlist-rtl,504,,bulletedlist,528,,numberedlist-rtl,552,,numberedlist,576,,maximize,600,,removeformat,624,,source-rtl,648,,source,672,','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,horizontalrule,144,auto,iframe,168,auto,image,192,auto,indent-rtl,216,auto,indent,240,auto,outdent-rtl,264,auto,outdent,288,auto,justifyblock,312,auto,justifycenter,336,auto,justifyleft,360,auto,justifyright,384,auto,anchor-rtl,408,auto,anchor,432,auto,link,456,auto,unlink,480,auto,bulletedlist-rtl,504,auto,bulletedlist,528,auto,numberedlist-rtl,552,auto,numberedlist,576,auto,maximize,600,auto,removeformat,624,auto,source-rtl,648,auto,source,672,auto','icons.png');})();CKEDITOR.lang.languages={"en":1,"fr":1};}());
\ No newline at end of file
+CKEDITOR.dom.element.prototype.focusPrevious=function(k,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,k){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}b<g&&(!d||b>e)&&(d=a,e=b)}}d&&d.focus()};(function(){function m(a,d){CKEDITOR.tools.extend(this,{editor:a,editable:a.editable(),doc:a.document,win:a.window},d,!0);this.inline=this.editable.isInline();this.inline||(this.frame=this.win.getFrame());this.target=this[this.inline?"editable":"doc"]}function n(a,d){CKEDITOR.tools.extend(this,d,{editor:a},!0)}function p(a,d){var b=a.editable();CKEDITOR.tools.extend(this,{editor:a,editable:b,inline:b.isInline(),doc:a.document,win:a.window,container:CKEDITOR.document.getBody(),winTop:CKEDITOR.document.getWindow()},
+d,!0);this.hidden={};this.visible={};this.inline||(this.frame=this.win.getFrame());this.queryViewport();var c=CKEDITOR.tools.bind(this.queryViewport,this),e=CKEDITOR.tools.bind(this.hideVisible,this),g=CKEDITOR.tools.bind(this.removeAll,this);b.attachListener(this.winTop,"resize",c);b.attachListener(this.winTop,"scroll",c);b.attachListener(this.winTop,"resize",e);b.attachListener(this.win,"scroll",e);b.attachListener(this.inline?b:this.frame,"mouseout",function(a){var b=a.data.$.clientX;a=a.data.$.clientY;
+this.queryViewport();(b<=this.rect.left||b>=this.rect.right||a<=this.rect.top||a>=this.rect.bottom)&&this.hideVisible();(0>=b||b>=this.winTopPane.width||0>=a||a>=this.winTopPane.height)&&this.hideVisible()},this);b.attachListener(a,"resize",c);b.attachListener(a,"mode",g);a.on("destroy",g);this.lineTpl=(new CKEDITOR.template('\x3cdiv data-cke-lineutils-line\x3d"1" class\x3d"cke_reset_all" style\x3d"{lineStyle}"\x3e\x3cspan style\x3d"{tipLeftStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3cspan style\x3d"{tipRightStyle}"\x3e\x26nbsp;\x3c/span\x3e\x3c/div\x3e')).output({lineStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},
+t,this.lineStyle,!0)),tipLeftStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,{left:"0px","border-left-color":"red","border-width":"6px 0 6px 6px"},this.tipCss,this.tipLeftStyle,!0)),tipRightStyle:CKEDITOR.tools.writeCssText(CKEDITOR.tools.extend({},q,{right:"0px","border-right-color":"red","border-width":"6px 6px 6px 0"},this.tipCss,this.tipRightStyle,!0))})}function l(a){var d;if(d=a&&a.type==CKEDITOR.NODE_ELEMENT)d=!(r[a.getComputedStyle("float")]||r[a.getAttribute("align")]);return d&&
+!u[a.getComputedStyle("position")]}CKEDITOR.plugins.add("lineutils");CKEDITOR.LINEUTILS_BEFORE=1;CKEDITOR.LINEUTILS_AFTER=2;CKEDITOR.LINEUTILS_INSIDE=4;m.prototype={start:function(a){var d=this,b=this.editor,c=this.doc,e,g,f,h,k=CKEDITOR.tools.eventsBuffer(50,function(){b.readOnly||"wysiwyg"!=b.mode||(d.relations={},(g=c.$.elementFromPoint(f,h))&&g.nodeType&&(e=new CKEDITOR.dom.element(g),d.traverseSearch(e),isNaN(f+h)||d.pixelSearch(e,f,h),a&&a(d.relations,f,h)))});this.listener=this.editable.attachListener(this.target,
+"mousemove",function(a){f=a.data.$.clientX;h=a.data.$.clientY;k.input()});this.editable.attachListener(this.inline?this.editable:this.frame,"mouseout",function(){k.reset()})},stop:function(){this.listener&&this.listener.removeListener()},getRange:function(){var a={};a[CKEDITOR.LINEUTILS_BEFORE]=CKEDITOR.POSITION_BEFORE_START;a[CKEDITOR.LINEUTILS_AFTER]=CKEDITOR.POSITION_AFTER_END;a[CKEDITOR.LINEUTILS_INSIDE]=CKEDITOR.POSITION_AFTER_START;return function(d){var b=this.editor.createRange();b.moveToPosition(this.relations[d.uid].element,
+a[d.type]);return b}}(),store:function(){function a(a,b,c){var e=a.getUniqueId();e in c?c[e].type|=b:c[e]={element:a,type:b}}return function(d,b){var c;b&CKEDITOR.LINEUTILS_AFTER&&l(c=d.getNext())&&c.isVisible()&&(a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_AFTER);b&CKEDITOR.LINEUTILS_INSIDE&&l(c=d.getFirst())&&c.isVisible()&&(a(c,CKEDITOR.LINEUTILS_BEFORE,this.relations),b^=CKEDITOR.LINEUTILS_INSIDE);a(d,b,this.relations)}}(),traverseSearch:function(a){var d,b,c;do if(c=a.$["data-cke-expando"],
+!(c&&c in this.relations)){if(a.equals(this.editable))break;if(l(a))for(d in this.lookups)(b=this.lookups[d](a))&&this.store(a,b)}while((!a||a.type!=CKEDITOR.NODE_ELEMENT||"true"!=a.getAttribute("contenteditable"))&&(a=a.getParent()))},pixelSearch:function(){function a(a,c,e,g,f){for(var h=0,k;f(e);){e+=g;if(25==++h)break;if(k=this.doc.$.elementFromPoint(c,e))if(k==a)h=0;else if(d(a,k)&&(h=0,l(k=new CKEDITOR.dom.element(k))))return k}}var d=CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a,c){return a.contains(c)}:
+function(a,c){return!!(a.compareDocumentPosition(c)&16)};return function(b,c,d){var g=this.win.getViewPaneSize().height,f=a.call(this,b.$,c,d,-1,function(a){return 0<a});c=a.call(this,b.$,c,d,1,function(a){return a<g});if(f)for(this.traverseSearch(f);!f.getParent().equals(b);)f=f.getParent();if(c)for(this.traverseSearch(c);!c.getParent().equals(b);)c=c.getParent();for(;f||c;){f&&(f=f.getNext(l));if(!f||f.equals(c))break;this.traverseSearch(f);c&&(c=c.getPrevious(l));if(!c||c.equals(f))break;this.traverseSearch(c)}}}(),
+greedySearch:function(){this.relations={};for(var a=this.editable.getElementsByTag("*"),d=0,b,c,e;b=a.getItem(d++);)if(!b.equals(this.editable)&&b.type==CKEDITOR.NODE_ELEMENT&&(b.hasAttribute("contenteditable")||!b.isReadOnly())&&l(b)&&b.isVisible())for(e in this.lookups)(c=this.lookups[e](b))&&this.store(b,c);return this.relations}};n.prototype={locate:function(){function a(a,b){var c=a.element[b===CKEDITOR.LINEUTILS_BEFORE?"getPrevious":"getNext"]();return c&&l(c)?(a.siblingRect=c.getClientRect(),
+b==CKEDITOR.LINEUTILS_BEFORE?(a.siblingRect.bottom+a.elementRect.top)/2:(a.elementRect.bottom+a.siblingRect.top)/2):b==CKEDITOR.LINEUTILS_BEFORE?a.elementRect.top:a.elementRect.bottom}return function(d){var b;this.locations={};for(var c in d)b=d[c],b.elementRect=b.element.getClientRect(),b.type&CKEDITOR.LINEUTILS_BEFORE&&this.store(c,CKEDITOR.LINEUTILS_BEFORE,a(b,CKEDITOR.LINEUTILS_BEFORE)),b.type&CKEDITOR.LINEUTILS_AFTER&&this.store(c,CKEDITOR.LINEUTILS_AFTER,a(b,CKEDITOR.LINEUTILS_AFTER)),b.type&
+CKEDITOR.LINEUTILS_INSIDE&&this.store(c,CKEDITOR.LINEUTILS_INSIDE,(b.elementRect.top+b.elementRect.bottom)/2);return this.locations}}(),sort:function(){var a,d,b,c;return function(e,g){a=this.locations;d=[];for(var f in a)for(var h in a[f])if(b=Math.abs(e-a[f][h]),d.length){for(c=0;c<d.length;c++)if(b<d[c].dist){d.splice(c,0,{uid:+f,type:h,dist:b});break}c==d.length&&d.push({uid:+f,type:h,dist:b})}else d.push({uid:+f,type:h,dist:b});return"undefined"!=typeof g?d.slice(0,g):d}}(),store:function(a,
+d,b){this.locations[a]||(this.locations[a]={});this.locations[a][d]=b}};var q={display:"block",width:"0px",height:"0px","border-color":"transparent","border-style":"solid",position:"absolute",top:"-6px"},t={height:"0px","border-top":"1px dashed red",position:"absolute","z-index":9999};p.prototype={removeAll:function(){for(var a in this.hidden)this.hidden[a].remove(),delete this.hidden[a];for(a in this.visible)this.visible[a].remove(),delete this.visible[a]},hideLine:function(a){var d=a.getUniqueId();
+a.hide();this.hidden[d]=a;delete this.visible[d]},showLine:function(a){var d=a.getUniqueId();a.show();this.visible[d]=a;delete this.hidden[d]},hideVisible:function(){for(var a in this.visible)this.hideLine(this.visible[a])},placeLine:function(a,d){var b,c,e;if(b=this.getStyle(a.uid,a.type)){for(e in this.visible)if(this.visible[e].getCustomData("hash")!==this.hash){c=this.visible[e];break}if(!c)for(e in this.hidden)if(this.hidden[e].getCustomData("hash")!==this.hash){this.showLine(c=this.hidden[e]);
+break}c||this.showLine(c=this.addLine());c.setCustomData("hash",this.hash);this.visible[c.getUniqueId()]=c;c.setStyles(b);d&&d(c)}},getStyle:function(a,d){var b=this.relations[a],c=this.locations[a][d],e={};e.width=b.siblingRect?Math.max(b.siblingRect.width,b.elementRect.width):b.elementRect.width;e.top=this.inline?c+this.winTopScroll.y-this.rect.relativeY:this.rect.top+this.winTopScroll.y+c;if(e.top-this.winTopScroll.y<this.rect.top||e.top-this.winTopScroll.y>this.rect.bottom)return!1;this.inline?
+e.left=b.elementRect.left-this.rect.relativeX:(0<b.elementRect.left?e.left=this.rect.left+b.elementRect.left:(e.width+=b.elementRect.left,e.left=this.rect.left),0<(b=e.left+e.width-(this.rect.left+this.winPane.width))&&(e.width-=b));e.left+=this.winTopScroll.x;for(var g in e)e[g]=CKEDITOR.tools.cssLength(e[g]);return e},addLine:function(){var a=CKEDITOR.dom.element.createFromHtml(this.lineTpl);a.appendTo(this.container);return a},prepare:function(a,d){this.relations=a;this.locations=d;this.hash=Math.random()},
+cleanup:function(){var a,d;for(d in this.visible)a=this.visible[d],a.getCustomData("hash")!==this.hash&&this.hideLine(a)},queryViewport:function(){this.winPane=this.win.getViewPaneSize();this.winTopScroll=this.winTop.getScrollPosition();this.winTopPane=this.winTop.getViewPaneSize();this.rect=this.getClientRect(this.inline?this.editable:this.frame)},getClientRect:function(a){a=a.getClientRect();var d=this.container.getDocumentPosition(),b=this.container.getComputedStyle("position");a.relativeX=a.relativeY=
+0;"static"!=b&&(a.relativeY=d.y,a.relativeX=d.x,a.top-=a.relativeY,a.bottom-=a.relativeY,a.left-=a.relativeX,a.right-=a.relativeX);return a}};var r={left:1,right:1,center:1},u={absolute:1,fixed:1};CKEDITOR.plugins.lineutils={finder:m,locator:n,liner:p}})();CKEDITOR.plugins.add("notification",{init:function(b){function a(b){var a=new CKEDITOR.dom.element("div");a.setStyles({position:"fixed","margin-left":"-9999px"});a.setAttributes({"aria-live":"assertive","aria-atomic":"true"});a.setText(b);CKEDITOR.document.getBody().append(a);setTimeout(function(){a.remove()},100)}b._.notificationArea=new Area(b);b.showNotification=function(a,d,e){var f,l;"progress"==d?f=e:l=e;a=new CKEDITOR.plugins.notification(b,{message:a,type:d,progress:f,duration:l});a.show();
+return a};b.on("key",function(c){if(27==c.data.keyCode){var d=b._.notificationArea.notifications;d.length&&(a(b.lang.notification.closed),d[d.length-1].hide(),c.cancel())}})}});function Notification(b,a){CKEDITOR.tools.extend(this,a,{editor:b,id:"cke-"+CKEDITOR.tools.getUniqueId(),area:b._.notificationArea});a.type||(this.type="info");this.element=this._createElement();b.plugins.clipboard&&CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(this.element)}
+Notification.prototype={show:function(){!1!==this.editor.fire("notificationShow",{notification:this})&&(this.area.add(this),this._hideAfterTimeout())},update:function(b){var a=!0;!1===this.editor.fire("notificationUpdate",{notification:this,options:b})&&(a=!1);var c=this.element,d=c.findOne(".cke_notification_message"),e=c.findOne(".cke_notification_progress"),f=b.type;c.removeAttribute("role");b.progress&&"progress"!=this.type&&(f="progress");f&&(c.removeClass(this._getClass()),c.removeAttribute("aria-label"),
+this.type=f,c.addClass(this._getClass()),c.setAttribute("aria-label",this.type),"progress"!=this.type||e?"progress"!=this.type&&e&&e.remove():(e=this._createProgressElement(),e.insertBefore(d)));void 0!==b.message&&(this.message=b.message,d.setHtml(this.message));void 0!==b.progress&&(this.progress=b.progress,e&&e.setStyle("width",this._getPercentageProgress()));a&&b.important&&(c.setAttribute("role","alert"),this.isVisible()||this.area.add(this));this.duration=b.duration;this._hideAfterTimeout()},
+hide:function(){!1!==this.editor.fire("notificationHide",{notification:this})&&this.area.remove(this)},isVisible:function(){return 0<=CKEDITOR.tools.indexOf(this.area.notifications,this)},_createElement:function(){var b=this,a,c,d=this.editor.lang.common.close;a=new CKEDITOR.dom.element("div");a.addClass("cke_notification");a.addClass(this._getClass());a.setAttributes({id:this.id,role:"alert","aria-label":this.type});"progress"==this.type&&a.append(this._createProgressElement());c=new CKEDITOR.dom.element("p");
+c.addClass("cke_notification_message");c.setHtml(this.message);a.append(c);c=CKEDITOR.dom.element.createFromHtml('\x3ca class\x3d"cke_notification_close" href\x3d"javascript:void(0)" title\x3d"'+d+'" role\x3d"button" tabindex\x3d"-1"\x3e\x3cspan class\x3d"cke_label"\x3eX\x3c/span\x3e\x3c/a\x3e');a.append(c);c.on("click",function(){b.editor.focus();b.hide()});return a},_getClass:function(){return"progress"==this.type?"cke_notification_info":"cke_notification_"+this.type},_createProgressElement:function(){var b=
+new CKEDITOR.dom.element("span");b.addClass("cke_notification_progress");b.setStyle("width",this._getPercentageProgress());return b},_getPercentageProgress:function(){return Math.round(100*(this.progress||0))+"%"},_hideAfterTimeout:function(){var b=this,a;this._hideTimeoutId&&clearTimeout(this._hideTimeoutId);if("number"==typeof this.duration)a=this.duration;else if("info"==this.type||"success"==this.type)a="number"==typeof this.editor.config.notification_duration?this.editor.config.notification_duration:
+5E3;a&&(b._hideTimeoutId=setTimeout(function(){b.hide()},a))}};function Area(b){var a=this;this.editor=b;this.notifications=[];this.element=this._createElement();this._uiBuffer=CKEDITOR.tools.eventsBuffer(10,this._layout,this);this._changeBuffer=CKEDITOR.tools.eventsBuffer(500,this._layout,this);b.on("destroy",function(){a._removeListeners();a.element.remove()})}
+Area.prototype={add:function(b){this.notifications.push(b);this.element.append(b.element);1==this.element.getChildCount()&&(CKEDITOR.document.getBody().append(this.element),this._attachListeners());this._layout()},remove:function(b){var a=CKEDITOR.tools.indexOf(this.notifications,b);0>a||(this.notifications.splice(a,1),b.element.remove(),this.element.getChildCount()||(this._removeListeners(),this.element.remove()))},_createElement:function(){var b=this.editor,a=b.config,c=new CKEDITOR.dom.element("div");
+c.addClass("cke_notifications_area");c.setAttribute("id","cke_notifications_area_"+b.name);c.setStyle("z-index",a.baseFloatZIndex-2);return c},_attachListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor;b.on("scroll",this._uiBuffer.input);b.on("resize",this._uiBuffer.input);a.on("change",this._changeBuffer.input);a.on("floatingSpaceLayout",this._layout,this,null,20);a.on("blur",this._layout,this,null,20)},_removeListeners:function(){var b=CKEDITOR.document.getWindow(),a=this.editor;
+b.removeListener("scroll",this._uiBuffer.input);b.removeListener("resize",this._uiBuffer.input);a.removeListener("change",this._changeBuffer.input);a.removeListener("floatingSpaceLayout",this._layout);a.removeListener("blur",this._layout)},_layout:function(){function b(){a.setStyle("left",k(n+d.width-g-h))}var a=this.element,c=this.editor,d=c.ui.contentsElement.getClientRect(),e=c.ui.contentsElement.getDocumentPosition(),f,l,r=a.getClientRect(),m,g=this._notificationWidth,h=this._notificationMargin;
+m=CKEDITOR.document.getWindow();var p=m.getScrollPosition(),q=m.getViewPaneSize(),t=CKEDITOR.document.getBody(),u=t.getDocumentPosition(),k=CKEDITOR.tools.cssLength;g&&h||(m=this.element.getChild(0),g=this._notificationWidth=m.getClientRect().width,h=this._notificationMargin=parseInt(m.getComputedStyle("margin-left"),10)+parseInt(m.getComputedStyle("margin-right"),10));c.toolbar&&(f=c.ui.space("top"),l=f.getClientRect());f&&f.isVisible()&&l.bottom>d.top&&l.bottom<d.bottom-r.height?a.setStyles({position:"fixed",
+top:k(l.bottom)}):0<d.top?a.setStyles({position:"absolute",top:k(e.y)}):e.y+d.height-r.height>p.y?a.setStyles({position:"fixed",top:0}):a.setStyles({position:"absolute",top:k(e.y+d.height-r.height)});var n="fixed"==a.getStyle("position")?d.left:"static"!=t.getComputedStyle("position")?e.x-u.x:e.x;d.width<g+h?e.x+g+h>p.x+q.width?b():a.setStyle("left",k(n)):e.x+g+h>p.x+q.width?a.setStyle("left",k(n)):e.x+d.width/2+g/2+h>p.x+q.width?a.setStyle("left",k(n-e.x+p.x+q.width-g-h)):0>d.left+d.width-g-h?b():
+0>d.left+d.width/2-g/2?a.setStyle("left",k(n-e.x+p.x)):a.setStyle("left",k(n+d.width/2-g/2-h/2))}};CKEDITOR.plugins.notification=Notification;(function(){function q(b,a,c){a.type||(a.type="auto");if(c&&!1===b.fire("beforePaste",a)||!a.dataValue&&a.dataTransfer.isEmpty())return!1;a.dataValue||(a.dataValue="");if(CKEDITOR.env.gecko&&"drop"==a.method&&b.toolbox)b.once("afterPaste",function(){b.toolbox.focus()});return b.fire("paste",a)}function y(b){function a(){var a=b.editable();if(CKEDITOR.plugins.clipboard.isCustomCopyCutSupported){var c=function(a){b.readOnly&&"cut"==a.name||m.initPasteDataTransfer(a,b);a.data.preventDefault()};a.on("copy",
+c);a.on("cut",c);a.on("cut",function(){b.readOnly||b.extractSelectedHtml()},null,null,999)}a.on(m.mainPasteEvent,function(b){"beforepaste"==m.mainPasteEvent&&n||t(b)});"beforepaste"==m.mainPasteEvent&&(a.on("paste",function(b){u||(f(),b.data.preventDefault(),t(b),e("paste"))}),a.on("contextmenu",g,null,null,0),a.on("beforepaste",function(b){!b.data||b.data.$.ctrlKey||b.data.$.shiftKey||g()},null,null,0));a.on("beforecut",function(){!n&&h(b)});var d;a.attachListener(CKEDITOR.env.ie?a:b.document.getDocumentElement(),
+"mouseup",function(){d=setTimeout(function(){r()},0)});b.on("destroy",function(){clearTimeout(d)});a.on("keyup",r)}function c(a){return{type:a,canUndo:"cut"==a,startDisabled:!0,fakeKeystroke:"cut"==a?CKEDITOR.CTRL+88:CKEDITOR.CTRL+67,exec:function(){"cut"==this.type&&h();var a;var c=this.type;if(CKEDITOR.env.ie)a=e(c);else try{a=b.document.$.execCommand(c,!1,null)}catch(d){a=!1}a||b.showNotification(b.lang.clipboard[this.type+"Error"]);return a}}}function d(){return{canUndo:!1,async:!0,fakeKeystroke:CKEDITOR.CTRL+
+86,exec:function(b,a){function c(a,g){g="undefined"!==typeof g?g:!0;a?(a.method="paste",a.dataTransfer||(a.dataTransfer=m.initPasteDataTransfer()),q(b,a,g)):d&&b.showNotification(l,"info",b.config.clipboard_notificationDuration);b.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!a})}a="undefined"!==typeof a&&null!==a?a:{};var e=this,d="undefined"!==typeof a.notification?a.notification:!0,g=a.type,h=CKEDITOR.tools.keystrokeToString(b.lang.common.keyboard,b.getCommandKeystroke(this)),l=
+"string"===typeof d?d:b.lang.clipboard.pasteNotification.replace(/%1/,'\x3ckbd aria-label\x3d"'+h.aria+'"\x3e'+h.display+"\x3c/kbd\x3e"),h="string"===typeof a?a:a.dataValue;g?b._.nextPasteType=g:delete b._.nextPasteType;"string"===typeof h?c({dataValue:h}):b.getClipboardData(c)}}}function f(){u=1;setTimeout(function(){u=0},100)}function g(){n=1;setTimeout(function(){n=0},10)}function e(a){var c=b.document,d=c.getBody(),e=!1,g=function(){e=!0};d.on(a,g);7<CKEDITOR.env.version?c.$.execCommand(a):c.$.selection.createRange().execCommand(a);
+d.removeListener(a,g);return e}function h(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var a=b.getSelection(),c,d,e;a.getType()==CKEDITOR.SELECTION_ELEMENT&&(c=a.getSelectedElement())&&(d=a.getRanges()[0],e=b.document.createText(""),e.insertBefore(c),d.setStartBefore(e),d.setEndAfter(c),a.selectRanges([d]),setTimeout(function(){c.getParent()&&(e.remove(),a.selectElement(c))},0))}}function k(a,c){var d=b.document,e=b.editable(),g=function(b){b.cancel()},h;if(!d.getById("cke_pastebin")){var l=b.getSelection(),
+t=l.createBookmarks();CKEDITOR.env.ie&&l.root.fire("selectionchange");var f=new CKEDITOR.dom.element(!CKEDITOR.env.webkit&&!e.is("body")||CKEDITOR.env.ie?"div":"body",d);f.setAttributes({id:"cke_pastebin","data-cke-temp":"1"});var k=0,d=d.getWindow();CKEDITOR.env.webkit?(e.append(f),f.addClass("cke_editable"),e.is("body")||(k="static"!=e.getComputedStyle("position")?e:CKEDITOR.dom.element.get(e.$.offsetParent),k=k.getDocumentPosition().y)):e.getAscendant(CKEDITOR.env.ie?"body":"html",1).append(f);
+f.setStyles({position:"absolute",top:d.getScrollPosition().y-k+10+"px",width:"1px",height:Math.max(1,d.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0});CKEDITOR.env.safari&&f.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select","text"));(k=f.getParent().isReadOnly())?(f.setOpacity(0),f.setAttribute("contenteditable",!0)):f.setStyle("ltr"==b.config.contentsLangDirection?"left":"right","-10000px");b.on("selectionChange",g,null,null,0);if(CKEDITOR.env.webkit||CKEDITOR.env.gecko)h=
+e.once("blur",g,null,null,-100);k&&f.focus();k=new CKEDITOR.dom.range(f);k.selectNodeContents(f);var r=k.select();CKEDITOR.env.ie&&(h=e.once("blur",function(){b.lockSelection(r)}));var p=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){CKEDITOR.env.webkit&&(CKEDITOR.document.getBody().$.scrollTop=p);h&&h.removeListener();CKEDITOR.env.ie&&e.focus();l.selectBookmarks(t);f.remove();var a;CKEDITOR.env.webkit&&(a=f.getFirst())&&a.is&&a.hasClass("Apple-style-span")&&(f=a);b.removeListener("selectionChange",
+g);c(f.getHtml())},0)}}function v(){if("paste"==m.mainPasteEvent)return b.fire("beforePaste",{type:"auto",method:"paste"}),!1;b.focus();f();var a=b.focusManager;a.lock();if(b.editable().fire(m.mainPasteEvent)&&!e("paste"))return a.unlock(),!1;a.unlock();return!0}function l(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=b.editable();f();"paste"==m.mainPasteEvent&&a.fire("beforepaste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"),
+setTimeout(function(){b.fire("saveSnapshot")},50)}}function t(a){var c={type:"auto",method:"paste",dataTransfer:m.initPasteDataTransfer(a)};c.dataTransfer.cacheData();var e=!1!==b.fire("beforePaste",c);e&&m.canClipboardApiBeTrusted(c.dataTransfer,b)?(a.data.preventDefault(),setTimeout(function(){q(b,c)},0)):k(a,function(a){c.dataValue=a.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");e&&q(b,c)})}function r(){if("wysiwyg"==b.mode){var a=p("paste");b.getCommand("cut").setState(p("cut"));b.getCommand("copy").setState(p("copy"));
+b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function p(a){if(w&&a in{paste:1,cut:1})return CKEDITOR.TRISTATE_DISABLED;if("paste"==a)return CKEDITOR.TRISTATE_OFF;a=b.getSelection();var c=a.getRanges();return a.getType()==CKEDITOR.SELECTION_NONE||1==c.length&&c[0].collapsed?CKEDITOR.TRISTATE_DISABLED:CKEDITOR.TRISTATE_OFF}var m=CKEDITOR.plugins.clipboard,n=0,u=0,w=0;(function(){b.on("key",l);b.on("contentDom",a);b.on("selectionChange",function(b){w=b.data.selection.getRanges()[0].checkReadOnly();
+r()});b.contextMenu&&b.contextMenu.addListener(function(b,a){w=a.getRanges()[0].checkReadOnly();return{cut:p("cut"),copy:p("copy"),paste:p("paste")}})})();(function(){function a(c,e,d,g,h){var l=b.lang.clipboard[e];b.addCommand(e,d);b.ui.addButton&&b.ui.addButton(c,{label:l,command:e,toolbar:"clipboard,"+g});b.addMenuItems&&b.addMenuItem(e,{label:l,command:e,group:"clipboard",order:h})}a("Cut","cut",c("cut"),10,1);a("Copy","copy",c("copy"),20,4);a("Paste","paste",d(),30,8)})();b.getClipboardData=
+function(a,c){function e(b){b.removeListener();b.cancel();c(b.data)}c||(c=a,a=null);b.on("paste",e,null,null,0);!1===v()&&(b.removeListener("paste",e),c(null))}}function z(b){if(CKEDITOR.env.webkit){if(!b.match(/^[^<]*$/g)&&!b.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!b.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";
+return"htmlifiedtext"}function A(b,a){function c(b){return CKEDITOR.tools.repeat("\x3c/p\x3e\x3cp\x3e",~~(b/2))+(1==b%2?"\x3cbr\x3e":"")}a=a.replace(/\s+/g," ").replace(/> +</g,"\x3e\x3c").replace(/<br ?\/>/gi,"\x3cbr\x3e");a=a.replace(/<\/?[A-Z]+>/g,function(b){return b.toLowerCase()});if(a.match(/^[^<]$/))return a;CKEDITOR.env.webkit&&-1<a.indexOf("\x3cdiv\x3e")&&(a=a.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"\x3cbr\x3e").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"\x3cdiv\x3e\x3c/div\x3e"),
+a.match(/<div>(<br>|)<\/div>/)&&(a="\x3cp\x3e"+a.replace(/(<div>(<br>|)<\/div>)+/g,function(b){return c(b.split("\x3c/div\x3e\x3cdiv\x3e").length+1)})+"\x3c/p\x3e"),a=a.replace(/<\/div><div>/g,"\x3cbr\x3e"),a=a.replace(/<\/?div>/g,""));CKEDITOR.env.gecko&&b.enterMode!=CKEDITOR.ENTER_BR&&(CKEDITOR.env.gecko&&(a=a.replace(/^<br><br>$/,"\x3cbr\x3e")),-1<a.indexOf("\x3cbr\x3e\x3cbr\x3e")&&(a="\x3cp\x3e"+a.replace(/(<br>){2,}/g,function(b){return c(b.length/4)})+"\x3c/p\x3e"));return B(b,a)}function C(){function b(){var b=
+{},a;for(a in CKEDITOR.dtd)"$"!=a.charAt(0)&&"div"!=a&&"span"!=a&&(b[a]=1);return b}var a={};return{get:function(c){return"plain-text"==c?a.plainText||(a.plainText=new CKEDITOR.filter("br")):"semantic-content"==c?((c=a.semanticContent)||(c=new CKEDITOR.filter,c.allow({$1:{elements:b(),attributes:!0,styles:!1,classes:!1}}),c=a.semanticContent=c),c):c?new CKEDITOR.filter(c):null}}}function x(b,a,c){a=CKEDITOR.htmlParser.fragment.fromHtml(a);var d=new CKEDITOR.htmlParser.basicWriter;c.applyTo(a,!0,!1,
+b.activeEnterMode);a.writeHtml(d);return d.getHtml()}function B(b,a){b.enterMode==CKEDITOR.ENTER_BR?a=a.replace(/(<\/p><p>)+/g,function(b){return CKEDITOR.tools.repeat("\x3cbr\x3e",b.length/7*2)}).replace(/<\/?p>/g,""):b.enterMode==CKEDITOR.ENTER_DIV&&(a=a.replace(/<(\/)?p>/g,"\x3c$1div\x3e"));return a}function D(b){b.data.preventDefault();b.data.$.dataTransfer.dropEffect="none"}function E(b){var a=CKEDITOR.plugins.clipboard;b.on("contentDom",function(){function c(a,c,e){c.select();q(b,{dataTransfer:e,
+method:"drop"},1);e.sourceEditor.fire("saveSnapshot");e.sourceEditor.editable().extractHtmlFromRange(a);e.sourceEditor.getSelection().selectRanges([a]);e.sourceEditor.fire("saveSnapshot")}function d(c,e){c.select();q(b,{dataTransfer:e,method:"drop"},1);a.resetDragDataTransfer()}function f(a,c,e){var g={$:a.data.$,target:a.data.getTarget()};c&&(g.dragRange=c);e&&(g.dropRange=e);!1===b.fire(a.name,g)&&a.data.preventDefault()}function g(b){b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());return b.getChildCount()}
+var e=b.editable(),h=CKEDITOR.plugins.clipboard.getDropTarget(b),k=b.ui.space("top"),v=b.ui.space("bottom");a.preventDefaultDropOnElement(k);a.preventDefaultDropOnElement(v);e.attachListener(h,"dragstart",f);e.attachListener(b,"dragstart",a.resetDragDataTransfer,a,null,1);e.attachListener(b,"dragstart",function(c){a.initDragDataTransfer(c,b)},null,null,2);e.attachListener(b,"dragstart",function(){var c=a.dragRange=b.getSelection().getRanges()[0];CKEDITOR.env.ie&&10>CKEDITOR.env.version&&(a.dragStartContainerChildCount=
+c?g(c.startContainer):null,a.dragEndContainerChildCount=c?g(c.endContainer):null)},null,null,100);e.attachListener(h,"dragend",f);e.attachListener(b,"dragend",a.initDragDataTransfer,a,null,1);e.attachListener(b,"dragend",a.resetDragDataTransfer,a,null,100);e.attachListener(h,"dragover",function(b){if(CKEDITOR.env.edge)b.data.preventDefault();else{var a=b.data.getTarget();a&&a.is&&a.is("html")?b.data.preventDefault():CKEDITOR.env.ie&&CKEDITOR.plugins.clipboard.isFileApiSupported&&b.data.$.dataTransfer.types.contains("Files")&&
+b.data.preventDefault()}});e.attachListener(h,"drop",function(c){if(!c.data.$.defaultPrevented){c.data.preventDefault();var e=c.data.getTarget();if(!e.isReadOnly()||e.type==CKEDITOR.NODE_ELEMENT&&e.is("html")){var e=a.getRangeAtDropPosition(c,b),g=a.dragRange;e&&f(c,g,e)}}},null,null,9999);e.attachListener(b,"drop",a.initDragDataTransfer,a,null,1);e.attachListener(b,"drop",function(e){if(e=e.data){var g=e.dropRange,h=e.dragRange,f=e.dataTransfer;f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_INTERNAL?
+setTimeout(function(){a.internalDrop(h,g,f,b)},0):f.getTransferType(b)==CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c(h,g,f):d(g,f)}},null,null,9999)})}CKEDITOR.plugins.add("clipboard",{requires:"notification,toolbar",init:function(b){var a,c=C();b.config.forcePasteAsPlainText?a="plain-text":b.config.pasteFilter?a=b.config.pasteFilter:!CKEDITOR.env.webkit||"pasteFilter"in b.config||(a="semantic-content");b.pasteFilter=c.get(a);y(b);E(b);if(CKEDITOR.env.gecko){var d=["image/png","image/jpeg","image/gif"],
+f;b.on("paste",function(a){var c=a.data,h=c.dataTransfer;if(!c.dataValue&&"paste"==c.method&&h&&1==h.getFilesCount()&&f!=h.id&&(h=h.getFile(0),-1!=CKEDITOR.tools.indexOf(d,h.type))){var k=new FileReader;k.addEventListener("load",function(){a.data.dataValue='\x3cimg src\x3d"'+k.result+'" /\x3e';b.fire("paste",a.data)},!1);k.addEventListener("abort",function(){b.fire("paste",a.data)},!1);k.addEventListener("error",function(){b.fire("paste",a.data)},!1);k.readAsDataURL(h);f=c.dataTransfer.id;a.stop()}},
+null,null,1)}b.on("paste",function(a){a.data.dataTransfer||(a.data.dataTransfer=new CKEDITOR.plugins.clipboard.dataTransfer);if(!a.data.dataValue){var c=a.data.dataTransfer,d=c.getData("text/html");if(d)a.data.dataValue=d,a.data.type="html";else if(d=c.getData("text/plain"))a.data.dataValue=b.editable().transformPlainTextToHtml(d),a.data.type="text"}},null,null,1);b.on("paste",function(b){var a=b.data.dataValue,c=CKEDITOR.dtd.$block;-1<a.indexOf("Apple-")&&(a=a.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi,
+" "),"html"!=b.data.type&&(a=a.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"\x26nbsp;\x26nbsp; \x26nbsp;")})),-1<a.indexOf('\x3cbr class\x3d"Apple-interchange-newline"\x3e')&&(b.data.startsWithEOL=1,b.data.preSniffing="html",a=a.replace(/<br class="Apple-interchange-newline">/,"")),a=a.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(a.match(/^<[^<]+cke_(editable|contents)/i)){var d,f,l=new CKEDITOR.dom.element("div");for(l.setHtml(a);1==l.getChildCount()&&
+(d=l.getFirst())&&d.type==CKEDITOR.NODE_ELEMENT&&(d.hasClass("cke_editable")||d.hasClass("cke_contents"));)l=f=d;f&&(a=f.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?a=a.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(a,e){return e.toLowerCase()in c?(b.data.preSniffing="html","\x3c"+e):a}):CKEDITOR.env.webkit?a=a.replace(/<\/(\w+)><div><br><\/div>$/,function(a,e){return e in c?(b.data.endsWithEOL=1,"\x3c/"+e+"\x3e"):a}):CKEDITOR.env.gecko&&(a=a.replace(/(\s)<br>$/,"$1"));b.data.dataValue=a},null,
+null,3);b.on("paste",function(a){a=a.data;var e=b._.nextPasteType||a.type,d=a.dataValue,f,n=b.config.clipboard_defaultContentType||"html",l=a.dataTransfer.getTransferType(b);f="html"==e||"html"==a.preSniffing?"html":z(d);delete b._.nextPasteType;"htmlifiedtext"==f&&(d=A(b.config,d));"text"==e&&"html"==f?d=x(b,d,c.get("plain-text")):l==CKEDITOR.DATA_TRANSFER_EXTERNAL&&b.pasteFilter&&!a.dontFilter&&(d=x(b,d,b.pasteFilter));a.startsWithEOL&&(d='\x3cbr data-cke-eol\x3d"1"\x3e'+d);a.endsWithEOL&&(d+='\x3cbr data-cke-eol\x3d"1"\x3e');
+"auto"==e&&(e="html"==f||"html"==n?"html":"text");a.type=e;a.dataValue=d;delete a.preSniffing;delete a.startsWithEOL;delete a.endsWithEOL},null,null,6);b.on("paste",function(a){a=a.data;a.dataValue&&(b.insertHtml(a.dataValue,a.type,a.range),setTimeout(function(){b.fire("afterPaste")},0))},null,null,1E3)}});CKEDITOR.plugins.clipboard={isCustomCopyCutSupported:!CKEDITOR.env.ie&&!CKEDITOR.env.iOS,isCustomDataTypesSupported:!CKEDITOR.env.ie,isFileApiSupported:!CKEDITOR.env.ie||9<CKEDITOR.env.version,
+mainPasteEvent:CKEDITOR.env.ie&&!CKEDITOR.env.edge?"beforepaste":"paste",canClipboardApiBeTrusted:function(b,a){return b.getTransferType(a)!=CKEDITOR.DATA_TRANSFER_EXTERNAL||CKEDITOR.env.chrome&&!b.isEmpty()||CKEDITOR.env.gecko&&(b.getData("text/html")||b.getFilesCount())||CKEDITOR.env.safari&&603<=CKEDITOR.env.version&&!CKEDITOR.env.iOS?!0:!1},getDropTarget:function(b){var a=b.editable();return CKEDITOR.env.ie&&9>CKEDITOR.env.version||a.isInline()?a:b.document},fixSplitNodesAfterDrop:function(b,
+a,c,d){function f(b,c,d){var f=b;f.type==CKEDITOR.NODE_TEXT&&(f=b.getParent());if(f.equals(c)&&d!=c.getChildCount())return b=a.startContainer.getChild(a.startOffset-1),c=a.startContainer.getChild(a.startOffset),b&&b.type==CKEDITOR.NODE_TEXT&&c&&c.type==CKEDITOR.NODE_TEXT&&(d=b.getLength(),b.setText(b.getText()+c.getText()),c.remove(),a.setStart(b,d),a.collapse(!0)),!0}var g=a.startContainer;"number"==typeof d&&"number"==typeof c&&g.type==CKEDITOR.NODE_ELEMENT&&(f(b.startContainer,g,c)||f(b.endContainer,
+g,d))},isDropRangeAffectedByDragRange:function(b,a){var c=a.startContainer,d=a.endOffset;return b.endContainer.equals(c)&&b.endOffset<=d||b.startContainer.getParent().equals(c)&&b.startContainer.getIndex()<d||b.endContainer.getParent().equals(c)&&b.endContainer.getIndex()<d?!0:!1},internalDrop:function(b,a,c,d){var f=CKEDITOR.plugins.clipboard,g=d.editable(),e,h;d.fire("saveSnapshot");d.fire("lockSnapshot",{dontUpdate:1});CKEDITOR.env.ie&&10>CKEDITOR.env.version&&this.fixSplitNodesAfterDrop(b,a,f.dragStartContainerChildCount,
+f.dragEndContainerChildCount);(h=this.isDropRangeAffectedByDragRange(b,a))||(e=b.createBookmark(!1));f=a.clone().createBookmark(!1);h&&(e=b.createBookmark(!1));b=e.startNode;a=e.endNode;h=f.startNode;a&&b.getPosition(h)&CKEDITOR.POSITION_PRECEDING&&a.getPosition(h)&CKEDITOR.POSITION_FOLLOWING&&h.insertBefore(b);b=d.createRange();b.moveToBookmark(e);g.extractHtmlFromRange(b,1);a=d.createRange();a.moveToBookmark(f);q(d,{dataTransfer:c,method:"drop",range:a},1);d.fire("unlockSnapshot")},getRangeAtDropPosition:function(b,
+a){var c=b.data.$,d=c.clientX,f=c.clientY,g=a.getSelection(!0).getRanges()[0],e=a.createRange();if(b.data.testRange)return b.data.testRange;if(document.caretRangeFromPoint&&a.document.$.caretRangeFromPoint(d,f))c=a.document.$.caretRangeFromPoint(d,f),e.setStart(CKEDITOR.dom.node(c.startContainer),c.startOffset),e.collapse(!0);else if(c.rangeParent)e.setStart(CKEDITOR.dom.node(c.rangeParent),c.rangeOffset),e.collapse(!0);else{if(CKEDITOR.env.ie&&8<CKEDITOR.env.version&&g&&a.editable().hasFocus)return g;
+if(document.body.createTextRange){a.focus();c=a.document.getBody().$.createTextRange();try{for(var h=!1,k=0;20>k&&!h;k++){if(!h)try{c.moveToPoint(d,f-k),h=!0}catch(n){}if(!h)try{c.moveToPoint(d,f+k),h=!0}catch(l){}}if(h){var t="cke-temp-"+(new Date).getTime();c.pasteHTML('\x3cspan id\x3d"'+t+'"\x3e​\x3c/span\x3e');var r=a.document.getById(t);e.moveToPosition(r,CKEDITOR.POSITION_BEFORE_START);r.remove()}else{var p=a.document.$.elementFromPoint(d,f),m=new CKEDITOR.dom.element(p),q;if(m.equals(a.editable())||
+"html"==m.getName())return g&&g.startContainer&&!g.startContainer.equals(a.editable())?g:null;q=m.getClientRect();d<q.left?e.setStartAt(m,CKEDITOR.POSITION_AFTER_START):e.setStartAt(m,CKEDITOR.POSITION_BEFORE_END);e.collapse(!0)}}catch(u){return null}}else return null}return e},initDragDataTransfer:function(b,a){var c=b.data.$?b.data.$.dataTransfer:null,d=new this.dataTransfer(c,a);c?this.dragData&&d.id==this.dragData.id?d=this.dragData:this.dragData=d:this.dragData?d=this.dragData:this.dragData=
+d;b.data.dataTransfer=d},resetDragDataTransfer:function(){this.dragData=null},initPasteDataTransfer:function(b,a){if(this.isCustomCopyCutSupported){if(b&&b.data&&b.data.$){var c=new this.dataTransfer(b.data.$.clipboardData,a);this.copyCutData&&c.id==this.copyCutData.id?(c=this.copyCutData,c.$=b.data.$.clipboardData):this.copyCutData=c;return c}return new this.dataTransfer(null,a)}return new this.dataTransfer(CKEDITOR.env.edge&&b&&b.data.$&&b.data.$.clipboardData||null,a)},preventDefaultDropOnElement:function(b){b&&
+b.on("dragover",D)}};var n=CKEDITOR.plugins.clipboard.isCustomDataTypesSupported?"cke/id":"Text";CKEDITOR.plugins.clipboard.dataTransfer=function(b,a){b&&(this.$=b);this._={metaRegExp:/^<meta.*?>/i,bodyRegExp:/<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,fragmentRegExp:/\x3c!--(?:Start|End)Fragment--\x3e/g,data:{},files:[],normalizeType:function(a){a=a.toLowerCase();return"text"==a||"text/plain"==a?"Text":"url"==a?"URL":a}};this.id=this.getData(n);this.id||(this.id="Text"==n?"":"cke-"+CKEDITOR.tools.getUniqueId());
+if("Text"!=n)try{this.$.setData(n,this.id)}catch(c){}a&&(this.sourceEditor=a,this.setData("text/html",a.getSelectedHtml(1)),"Text"==n||this.getData("text/plain")||this.setData("text/plain",a.getSelection().getSelectedText()))};CKEDITOR.DATA_TRANSFER_INTERNAL=1;CKEDITOR.DATA_TRANSFER_CROSS_EDITORS=2;CKEDITOR.DATA_TRANSFER_EXTERNAL=3;CKEDITOR.plugins.clipboard.dataTransfer.prototype={getData:function(b,a){b=this._.normalizeType(b);var c=this._.data[b],d;if(void 0===c||null===c||""===c)try{c=this.$.getData(b)}catch(f){}if(void 0===
+c||null===c||""===c)c="";"text/html"!=b||a?"Text"==b&&CKEDITOR.env.gecko&&this.getFilesCount()&&"file://"==c.substring(0,7)&&(c=""):(c=c.replace(this._.metaRegExp,""),(d=this._.bodyRegExp.exec(c))&&d.length&&(c=d[1],c=c.replace(this._.fragmentRegExp,"")));"string"===typeof c&&(d=c.indexOf("\x3c/html\x3e"),c=-1!==d?c.substring(0,d+7):c);return c},setData:function(b,a){b=this._.normalizeType(b);this._.data[b]=a;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported||"URL"==b||"Text"==b){"Text"==n&&
+"Text"==b&&(this.id=a);try{this.$.setData(b,a)}catch(c){}}},getTransferType:function(b){return this.sourceEditor?this.sourceEditor==b?CKEDITOR.DATA_TRANSFER_INTERNAL:CKEDITOR.DATA_TRANSFER_CROSS_EDITORS:CKEDITOR.DATA_TRANSFER_EXTERNAL},cacheData:function(){function b(b){b=a._.normalizeType(b);var c=a.getData(b,!0);c&&(a._.data[b]=c)}if(this.$){var a=this,c,d;if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(c=0;c<this.$.types.length;c++)b(this.$.types[c])}else b("Text"),
+b("URL");d=this._getImageFromClipboard();if(this.$&&this.$.files||d){this._.files=[];if(this.$.files&&this.$.files.length)for(c=0;c<this.$.files.length;c++)this._.files.push(this.$.files[c]);0===this._.files.length&&d&&this._.files.push(d)}}},getFilesCount:function(){return this._.files.length?this._.files.length:this.$&&this.$.files&&this.$.files.length?this.$.files.length:this._getImageFromClipboard()?1:0},getFile:function(b){return this._.files.length?this._.files[b]:this.$&&this.$.files&&this.$.files.length?
+this.$.files[b]:0===b?this._getImageFromClipboard():void 0},isEmpty:function(){var b={},a;if(this.getFilesCount())return!1;for(a in this._.data)b[a]=1;if(this.$)if(CKEDITOR.plugins.clipboard.isCustomDataTypesSupported){if(this.$.types)for(var c=0;c<this.$.types.length;c++)b[this.$.types[c]]=1}else b.Text=1,b.URL=1;"Text"!=n&&(b[n]=0);for(a in b)if(b[a]&&""!==this.getData(a))return!1;return!0},_getImageFromClipboard:function(){var b;if(this.$&&this.$.items&&this.$.items[0])try{if((b=this.$.items[0].getAsFile())&&
+b.type)return b}catch(a){}}}})();CKEDITOR.config.clipboard_notificationDuration=1E4;(function(){function f(a){return a.getName&&!a.hasAttribute("data-cke-temp")}CKEDITOR.plugins.add("widgetselection",{init:function(a){if(CKEDITOR.env.webkit){var b=CKEDITOR.plugins.widgetselection;a.on("contentDom",function(a){a=a.editor;var d=a.document,e=a.editable();e.attachListener(d,"keydown",function(a){var c=a.data.$;65==a.data.getKey()&&(CKEDITOR.env.mac&&c.metaKey||!CKEDITOR.env.mac&&c.ctrlKey)&&CKEDITOR.tools.setTimeout(function(){b.addFillers(e)||b.removeFillers(e)},0)},null,null,-1);a.on("selectionCheck",
+function(a){b.removeFillers(a.editor.editable())});a.on("paste",function(a){a.data.dataValue=b.cleanPasteData(a.data.dataValue)});"selectall"in a.plugins&&b.addSelectAllIntegration(a)})}}});CKEDITOR.plugins.widgetselection={startFiller:null,endFiller:null,fillerAttribute:"data-cke-filler-webkit",fillerContent:"\x26nbsp;",fillerTagName:"div",addFillers:function(a){var b=a.editor;if(!this.isWholeContentSelected(a)&&0<a.getChildCount()){var c=a.getFirst(f),d=a.getLast(f);c&&c.type==CKEDITOR.NODE_ELEMENT&&
+!c.isEditable()&&(this.startFiller=this.createFiller(),a.append(this.startFiller,1));d&&d.type==CKEDITOR.NODE_ELEMENT&&!d.isEditable()&&(this.endFiller=this.createFiller(!0),a.append(this.endFiller,0));if(this.hasFiller(a))return b=b.createRange(),b.selectNodeContents(a),b.select(),!0}return!1},removeFillers:function(a){if(this.hasFiller(a)&&!this.isWholeContentSelected(a)){var b=a.findOne(this.fillerTagName+"["+this.fillerAttribute+"\x3dstart]"),c=a.findOne(this.fillerTagName+"["+this.fillerAttribute+
+"\x3dend]");this.startFiller&&b&&this.startFiller.equals(b)?this.removeFiller(this.startFiller,a):this.startFiller=b;this.endFiller&&c&&this.endFiller.equals(c)?this.removeFiller(this.endFiller,a):this.endFiller=c}},cleanPasteData:function(a){a&&a.length&&(a=a.replace(this.createFillerRegex(),"").replace(this.createFillerRegex(!0),""));return a},isWholeContentSelected:function(a){var b=a.editor.getSelection().getRanges()[0];return!b||b&&b.collapsed?!1:(b=b.clone(),b.enlarge(CKEDITOR.ENLARGE_ELEMENT),
+!!(b&&a&&b.startContainer&&b.endContainer&&0===b.startOffset&&b.endOffset===a.getChildCount()&&b.startContainer.equals(a)&&b.endContainer.equals(a)))},hasFiller:function(a){return 0<a.find(this.fillerTagName+"["+this.fillerAttribute+"]").count()},createFiller:function(a){var b=new CKEDITOR.dom.element(this.fillerTagName);b.setHtml(this.fillerContent);b.setAttribute(this.fillerAttribute,a?"end":"start");b.setAttribute("data-cke-temp",1);b.setStyles({display:"block",width:0,height:0,padding:0,border:0,
+margin:0,position:"absolute",top:0,left:"-9999px",opacity:0,overflow:"hidden"});return b},removeFiller:function(a,b){if(a){var c=b.editor,d=b.editor.getSelection().getRanges()[0].startPath(),e=c.createRange(),g,f;d.contains(a)&&(g=a.getHtml(),f=!0);d="start"==a.getAttribute(this.fillerAttribute);a.remove();g&&0<g.length&&g!=this.fillerContent?(b.insertHtmlIntoRange(g,c.getSelection().getRanges()[0]),e.setStartAt(b.getChild(b.getChildCount()-1),CKEDITOR.POSITION_BEFORE_END),c.getSelection().selectRanges([e])):
+f&&(d?e.setStartAt(b.getFirst().getNext(),CKEDITOR.POSITION_AFTER_START):e.setEndAt(b.getLast().getPrevious(),CKEDITOR.POSITION_BEFORE_END),b.editor.getSelection().selectRanges([e]))}},createFillerRegex:function(a){var b=this.createFiller(a).getOuterHtml().replace(/style="[^"]*"/gi,'style\x3d"[^"]*"').replace(/>[^<]*</gi,"\x3e[^\x3c]*\x3c");return new RegExp((a?"":"^")+b+(a?"$":""))},addSelectAllIntegration:function(a){var b=this;a.editable().attachListener(a,"beforeCommandExec",function(c){var d=
+a.editable();"selectAll"==c.data.name&&d&&b.addFillers(d)},null,null,9999)}}})();(function(){function p(a){this.editor=a;this.registered={};this.instances={};this.selected=[];this.widgetHoldingFocusedEditable=this.focused=null;this._={nextId:0,upcasts:[],upcastCallbacks:[],filters:{}};F(this);G(this);this.on("checkWidgets",H);this.editor.on("contentDomInvalidated",this.checkWidgets,this);I(this);J(this);K(this);L(this);M(this)}function g(a,b,c,d,e){var f=a.editor;CKEDITOR.tools.extend(this,d,{editor:f,id:b,inline:"span"==c.getParent().getName(),element:c,data:CKEDITOR.tools.extend({},
+"function"==typeof d.defaults?d.defaults():d.defaults),dataReady:!1,inited:!1,ready:!1,edit:g.prototype.edit,focusedEditable:null,definition:d,repository:a,draggable:!1!==d.draggable,_:{downcastFn:d.downcast&&"string"==typeof d.downcast?d.downcasts[d.downcast]:d.downcast}},!0);a.fire("instanceCreated",this);N(this,d);this.init&&this.init();this.inited=!0;(a=this.element.data("cke-widget-data"))&&this.setData(JSON.parse(decodeURIComponent(a)));e&&this.setData(e);this.data.classes||this.setData("classes",
+this.getClasses());this.dataReady=!0;r(this);this.fire("data",this.data);this.isInited()&&f.editable().contains(this.wrapper)&&(this.ready=!0,this.fire("ready"))}function q(a,b,c){CKEDITOR.dom.element.call(this,b.$);this.editor=a;this._={};b=this.filter=c.filter;CKEDITOR.dtd[this.getName()].p?(this.enterMode=b?b.getAllowedEnterMode(a.enterMode):a.enterMode,this.shiftEnterMode=b?b.getAllowedEnterMode(a.shiftEnterMode,!0):a.shiftEnterMode):this.enterMode=this.shiftEnterMode=CKEDITOR.ENTER_BR}function O(a,
+b){a.addCommand(b.name,{exec:function(a,d){function e(){a.widgets.finalizeCreation(k)}var f=a.widgets.focused;if(f&&f.name==b.name)f.edit();else if(b.insert)b.insert();else if(b.template){var f="function"==typeof b.defaults?b.defaults():b.defaults,f=CKEDITOR.dom.element.createFromHtml(b.template.output(f)),h,l=a.widgets.wrapElement(f,b.name),k=new CKEDITOR.dom.documentFragment(l.getDocument());k.append(l);(h=a.widgets.initOn(f,b,d&&d.startupData))?(f=h.once("edit",function(b){if(b.data.dialog)h.once("dialog",
+function(b){b=b.data;var d,f;d=b.once("ok",e,null,null,20);f=b.once("cancel",function(b){b.data&&!1===b.data.hide||a.widgets.destroy(h,!0)});b.once("hide",function(){d.removeListener();f.removeListener()})});else e()},null,null,999),h.edit(),f.removeListener()):e()}},allowedContent:b.allowedContent,requiredContent:b.requiredContent,contentForms:b.contentForms,contentTransformations:b.contentTransformations})}function P(a,b){function c(b,d,c){var e=CKEDITOR.tools.getIndex(a._.upcasts,function(a){return a[2]>
+c});0>e&&(e=a._.upcasts.length);a._.upcasts.splice(e,0,[b,d,c])}var d=b.upcast,e=b.upcastPriority||10;if(d)if("string"==typeof d)for(d=d.split(",");d.length;)c(b.upcasts[d.pop()],b.name,e);else c(d,b.name,e)}function t(a,b){a.focused=null;if(b.isInited()){var c=b.editor.checkDirty();a.fire("widgetBlurred",{widget:b});b.setFocused(!1);!c&&b.editor.resetDirty()}}function H(a){a=a.data;if("wysiwyg"==this.editor.mode){var b=this.editor.editable(),c=this.instances,d,e,f,h;if(b){for(d in c)c[d].isReady()&&
+!b.contains(c[d].wrapper)&&this.destroy(c[d],!0);if(a&&a.initOnlyNew)c=this.initOnAll();else{var l=b.find(".cke_widget_wrapper"),c=[];d=0;for(e=l.count();d<e;d++){f=l.getItem(d);if(h=!this.getByElement(f,!0)){a:{h=Q;for(var k=f;k=k.getParent();)if(h(k)){h=!0;break a}h=!1}h=!h}h&&b.contains(f)&&(f.addClass("cke_widget_new"),c.push(this.initOn(f.getFirst(g.isDomWidgetElement))))}}a&&a.focusInited&&1==c.length&&c[0].focus()}}}function u(a,b,c){if(!c.allowedContent&&!c.disallowedContent)return null;var d=
+this._.filters[a];d||(this._.filters[a]=d={});a=d[b];a||(a=c.allowedContent?new CKEDITOR.filter(c.allowedContent):this.editor.filter.clone(),d[b]=a,c.disallowedContent&&a.disallow(c.disallowedContent));return a}function R(a){var b=[],c=a._.upcasts,d=a._.upcastCallbacks;return{toBeWrapped:b,iterator:function(a){var f,h,l,k,m;if("data-cke-widget-wrapper"in a.attributes)return(a=a.getFirst(g.isParserWidgetElement))&&b.push([a]),!1;if("data-widget"in a.attributes)return b.push([a]),!1;if(m=c.length){if(a.attributes["data-cke-widget-upcasted"])return!1;
+k=0;for(f=d.length;k<f;++k)if(!1===d[k](a))return;for(k=0;k<m;++k)if(f=c[k],l={},h=f[0](a,l))return h instanceof CKEDITOR.htmlParser.element&&(a=h),a.attributes["data-cke-widget-data"]=encodeURIComponent(JSON.stringify(l)),a.attributes["data-cke-widget-upcasted"]=1,b.push([a,f[1]]),!1}}}}function v(a,b){return{tabindex:-1,contenteditable:"false","data-cke-widget-wrapper":1,"data-cke-filter":"off","class":"cke_widget_wrapper cke_widget_new cke_widget_"+(a?"inline":"block")+(b?" cke_widget_"+b:"")}}
+function w(a,b,c){if(a.type==CKEDITOR.NODE_ELEMENT){var d=CKEDITOR.dtd[a.name];if(d&&!d[c.name]){var d=a.split(b),e=a.parent;b=d.getIndex();a.children.length||(--b,a.remove());d.children.length||d.remove();return w(e,b,c)}}a.add(c,b)}function x(a,b){return"boolean"==typeof a.inline?a.inline:!!CKEDITOR.dtd.$inline[b]}function Q(a){return a.hasAttribute("data-cke-temp")}function n(a,b,c,d){var e=a.editor;e.fire("lockSnapshot");c?(d=c.data("cke-widget-editable"),d=b.editables[d],a.widgetHoldingFocusedEditable=
+b,b.focusedEditable=d,c.addClass("cke_widget_editable_focused"),d.filter&&e.setActiveFilter(d.filter),e.setActiveEnterMode(d.enterMode,d.shiftEnterMode)):(d||b.focusedEditable.removeClass("cke_widget_editable_focused"),b.focusedEditable=null,a.widgetHoldingFocusedEditable=null,e.setActiveFilter(null),e.setActiveEnterMode(null,null));e.fire("unlockSnapshot")}function S(a){a.contextMenu&&a.contextMenu.addListener(function(b){if(b=a.widgets.getByElement(b,!0))return b.fire("contextMenu",{})})}function T(a,
+b){return CKEDITOR.tools.trim(b)}function L(a){var b=a.editor,c=CKEDITOR.plugins.lineutils;b.on("dragstart",function(d){var c=d.data.target;g.isDomDragHandler(c)&&(c=a.getByElement(c),d.data.dataTransfer.setData("cke/widget-id",c.id),b.focus(),c.focus())});b.on("drop",function(c){var e=c.data.dataTransfer,f=e.getData("cke/widget-id"),h=e.getTransferType(b),e=b.createRange();""!==f&&h===CKEDITOR.DATA_TRANSFER_CROSS_EDITORS?c.cancel():""!==f&&h==CKEDITOR.DATA_TRANSFER_INTERNAL&&(f=a.instances[f])&&
+(e.setStartBefore(f.wrapper),e.setEndAfter(f.wrapper),c.data.dragRange=e,delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount,delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount,c.data.dataTransfer.setData("text/html",b.editable().getHtmlFromRange(e).getHtml()),b.widgets.destroy(f,!0))});b.on("contentDom",function(){var d=b.editable();CKEDITOR.tools.extend(a,{finder:new c.finder(b,{lookups:{"default":function(b){if(!b.is(CKEDITOR.dtd.$listItem)&&b.is(CKEDITOR.dtd.$block)&&!g.isDomNestedEditable(b)&&
+!a._.draggedWidget.wrapper.contains(b)){var c=g.getNestedEditable(d,b);if(c){b=a._.draggedWidget;if(a.getByElement(c)==b)return;c=CKEDITOR.filter.instances[c.data("cke-filter")];b=b.requiredContent;if(c&&b&&!c.check(b))return}return CKEDITOR.LINEUTILS_BEFORE|CKEDITOR.LINEUTILS_AFTER}}}}),locator:new c.locator(b),liner:new c.liner(b,{lineStyle:{cursor:"move !important","border-top-color":"#666"},tipLeftStyle:{"border-left-color":"#666"},tipRightStyle:{"border-right-color":"#666"}})},!0)})}function J(a){var b=
+a.editor;b.on("contentDom",function(){var c=b.editable(),d=c.isInline()?c:b.document,e,f;c.attachListener(d,"mousedown",function(c){var d=c.data.getTarget();e=d instanceof CKEDITOR.dom.element?a.getByElement(d):null;f=0;e&&(e.inline&&d.type==CKEDITOR.NODE_ELEMENT&&d.hasAttribute("data-cke-widget-drag-handler")?(f=1,a.focused!=e&&b.getSelection().removeAllRanges()):g.getNestedEditable(e.wrapper,d)?e=null:(c.data.preventDefault(),CKEDITOR.env.ie||e.focus()))});c.attachListener(d,"mouseup",function(){f&&
+e&&e.wrapper&&(f=0,e.focus())});CKEDITOR.env.ie&&c.attachListener(d,"mouseup",function(){setTimeout(function(){e&&e.wrapper&&c.contains(e.wrapper)&&(e.focus(),e=null)})})});b.on("doubleclick",function(b){var d=a.getByElement(b.data.element);if(d&&!g.getNestedEditable(d.wrapper,b.data.element))return d.fire("doubleclick",{element:b.data.element})},null,null,1)}function K(a){a.editor.on("key",function(b){var c=a.focused,d=a.widgetHoldingFocusedEditable,e;c?e=c.fire("key",{keyCode:b.data.keyCode}):d&&
+(c=b.data.keyCode,b=d.focusedEditable,c==CKEDITOR.CTRL+65?(c=b.getBogus(),d=d.editor.createRange(),d.selectNodeContents(b),c&&d.setEndAt(c,CKEDITOR.POSITION_BEFORE_START),d.select(),e=!1):8==c||46==c?(e=d.editor.getSelection().getRanges(),d=e[0],e=!(1==e.length&&d.collapsed&&d.checkBoundaryOfElement(b,CKEDITOR[8==c?"START":"END"]))):e=void 0);return e},null,null,1)}function M(a){function b(b){a.focused&&y(a.focused,"cut"==b.name)}var c=a.editor;c.on("contentDom",function(){var a=c.editable();a.attachListener(a,
+"copy",b);a.attachListener(a,"cut",b)})}function I(a){var b=a.editor;b.on("selectionCheck",function(){a.fire("checkSelection")});a.on("checkSelection",a.checkSelection,a);b.on("selectionChange",function(c){var d=(c=g.getNestedEditable(b.editable(),c.data.selection.getStartElement()))&&a.getByElement(c),e=a.widgetHoldingFocusedEditable;e?e===d&&e.focusedEditable.equals(c)||(n(a,e,null),d&&c&&n(a,d,c)):d&&c&&n(a,d,c)});b.on("dataReady",function(){z(a).commit()});b.on("blur",function(){var b;(b=a.focused)&&
+t(a,b);(b=a.widgetHoldingFocusedEditable)&&n(a,b,null)})}function G(a){var b=a.editor,c={};b.on("toDataFormat",function(b){var e=CKEDITOR.tools.getNextNumber(),f=[];b.data.downcastingSessionId=e;c[e]=f;b.data.dataValue.forEach(function(b){var c=b.attributes,d;if("data-cke-widget-id"in c){if(c=a.instances[c["data-cke-widget-id"]])d=b.getFirst(g.isParserWidgetElement),f.push({wrapper:b,element:d,widget:c,editables:{}}),"1"!=d.attributes["data-cke-widget-keep-attr"]&&delete d.attributes["data-widget"]}else if("data-cke-widget-editable"in
+c)return f[f.length-1].editables[c["data-cke-widget-editable"]]=b,!1},CKEDITOR.NODE_ELEMENT,!0)},null,null,8);b.on("toDataFormat",function(a){if(a.data.downcastingSessionId){a=c[a.data.downcastingSessionId];for(var b,f,h,l,g,m;b=a.shift();){f=b.widget;h=b.element;l=f._.downcastFn&&f._.downcastFn.call(f,h);for(m in b.editables)g=b.editables[m],delete g.attributes.contenteditable,g.setHtml(f.editables[m].getData());l||(l=h);b.wrapper.replaceWith(l)}}},null,null,13);b.on("contentDomUnload",function(){a.destroyAll(!0)})}
+function F(a){var b=a.editor,c,d;b.on("toHtml",function(b){var d=R(a),h;for(b.data.dataValue.forEach(d.iterator,CKEDITOR.NODE_ELEMENT,!0);h=d.toBeWrapped.pop();){var l=h[0],k=l.parent;k.type==CKEDITOR.NODE_ELEMENT&&k.attributes["data-cke-widget-wrapper"]&&k.replaceWith(l);a.wrapElement(h[0],h[1])}c=b.data.protectedWhitespaces?3==b.data.dataValue.children.length&&g.isParserWidgetWrapper(b.data.dataValue.children[1]):1==b.data.dataValue.children.length&&g.isParserWidgetWrapper(b.data.dataValue.children[0])},
+null,null,8);b.on("dataReady",function(){if(d)for(var c=b.editable().find(".cke_widget_wrapper"),f,h,l=0,k=c.count();l<k;++l)f=c.getItem(l),h=f.getFirst(g.isDomWidgetElement),h.type==CKEDITOR.NODE_ELEMENT&&h.data("widget")?(h.replace(f),a.wrapElement(h)):f.remove();d=0;a.destroyAll(!0);a.initOnAll()});b.on("loadSnapshot",function(b){/data-cke-widget/.test(b.data)&&(d=1);a.destroyAll(!0)},null,null,9);b.on("paste",function(a){a=a.data;a.dataValue=a.dataValue.replace(U,T);a.range&&(a=g.getNestedEditable(b.editable(),
+a.range.startContainer))&&(a=CKEDITOR.filter.instances[a.data("cke-filter")])&&b.setActiveFilter(a)});b.on("afterInsertHtml",function(d){d.data.intoRange?a.checkWidgets({initOnlyNew:!0}):(b.fire("lockSnapshot"),a.checkWidgets({initOnlyNew:!0,focusInited:c}),b.fire("unlockSnapshot"))})}function z(a){var b=a.selected,c=[],d=b.slice(0),e=null;return{select:function(a){0>CKEDITOR.tools.indexOf(b,a)&&c.push(a);a=CKEDITOR.tools.indexOf(d,a);0<=a&&d.splice(a,1);return this},focus:function(a){e=a;return this},
+commit:function(){var f=a.focused!==e,h,g;a.editor.fire("lockSnapshot");for(f&&(h=a.focused)&&t(a,h);h=d.pop();)b.splice(CKEDITOR.tools.indexOf(b,h),1),h.isInited()&&(g=h.editor.checkDirty(),h.setSelected(!1),!g&&h.editor.resetDirty());f&&e&&(g=a.editor.checkDirty(),a.focused=e,a.fire("widgetFocused",{widget:e}),e.setFocused(!0),!g&&a.editor.resetDirty());for(;h=c.pop();)b.push(h),h.setSelected(!0);a.editor.fire("unlockSnapshot")}}}function A(a,b,c){var d=0;b=B(b);var e=a.data.classes||{},f;if(b){for(e=
+CKEDITOR.tools.clone(e);f=b.pop();)c?e[f]||(d=e[f]=1):e[f]&&(delete e[f],d=1);d&&a.setData("classes",e)}}function C(a){a.cancel()}function y(a,b){var c=a.editor,d=c.document;if(!d.getById("cke_copybin")){var e=c.blockless||CKEDITOR.env.ie?"span":"div",f=d.createElement(e),h=d.createElement(e),e=CKEDITOR.env.ie&&9>CKEDITOR.env.version;h.setAttributes({id:"cke_copybin","data-cke-temp":"1"});f.setStyles({position:"absolute",width:"1px",height:"1px",overflow:"hidden"});f.setStyle("ltr"==c.config.contentsLangDirection?
+"left":"right","-5000px");var g=c.createRange();g.setStartBefore(a.wrapper);g.setEndAfter(a.wrapper);f.setHtml('\x3cspan data-cke-copybin-start\x3d"1"\x3e​\x3c/span\x3e'+c.editable().getHtmlFromRange(g).getHtml()+'\x3cspan data-cke-copybin-end\x3d"1"\x3e​\x3c/span\x3e');c.fire("saveSnapshot");c.fire("lockSnapshot");h.append(f);c.editable().append(h);var k=c.on("selectionChange",C,null,null,0),m=a.repository.on("checkSelection",C,null,null,0);if(e)var n=d.getDocumentElement().$,p=n.scrollTop;g=c.createRange();
+g.selectNodeContents(f);g.select();e&&(n.scrollTop=p);setTimeout(function(){b||a.focus();h.remove();k.removeListener();m.removeListener();c.fire("unlockSnapshot");b&&(a.repository.del(a),c.fire("saveSnapshot"))},100)}}function B(a){return(a=(a=a.getDefinition().attributes)&&a["class"])?a.split(/\s+/):null}function D(){var a=CKEDITOR.document.getActive(),b=this.editor,c=b.editable();(c.isInline()?c:b.document.getWindow().getFrame()).equals(a)&&b.focusManager.focus(c)}function E(){CKEDITOR.env.gecko&&
+this.editor.unlockSelection();CKEDITOR.env.webkit||(this.editor.forceNextSelectionCheck(),this.editor.selectionChange(1))}function V(a){var b=null;a.on("data",function(){var a=this.data.classes,d;if(b!=a){for(d in b)a&&a[d]||this.removeClass(d);for(d in a)this.addClass(d);b=a}})}function W(a){a.on("data",function(){if(a.wrapper){var b=this.getLabel?this.getLabel():this.editor.lang.widget.label.replace(/%1/,this.pathName||this.element.getName());a.wrapper.setAttribute("role","region");a.wrapper.setAttribute("aria-label",
+b)}},null,null,9999)}function X(a){if(a.draggable){var b=a.editor,c=a.wrapper.getLast(g.isDomDragHandlerContainer),d;c?d=c.findOne("img"):(c=new CKEDITOR.dom.element("span",b.document),c.setAttributes({"class":"cke_reset cke_widget_drag_handler_container",style:"background:rgba(220,220,220,0.5);background-image:url("+b.plugins.widget.path+"images/handle.png)"}),d=new CKEDITOR.dom.element("img",b.document),d.setAttributes({"class":"cke_reset cke_widget_drag_handler","data-cke-widget-drag-handler":"1",
+src:CKEDITOR.tools.transparentImageData,width:15,title:b.lang.widget.move,height:15,role:"presentation"}),a.inline&&d.setAttribute("draggable","true"),c.append(d),a.wrapper.append(c));a.wrapper.on("dragover",function(a){a.data.preventDefault()});a.wrapper.on("mouseenter",a.updateDragHandlerPosition,a);setTimeout(function(){a.on("data",a.updateDragHandlerPosition,a)},50);if(!a.inline&&(d.on("mousedown",Y,a),CKEDITOR.env.ie&&9>CKEDITOR.env.version))d.on("dragstart",function(a){a.data.preventDefault(!0)});
+a.dragHandlerContainer=c}}function Y(a){function b(){var b;for(q.reset();b=g.pop();)b.removeListener();var c=k;b=a.sender;var d=this.repository.finder,e=this.repository.liner,f=this.editor,h=this.editor.editable();CKEDITOR.tools.isEmpty(e.visible)||(c=d.getRange(c[0]),this.focus(),f.fire("drop",{dropRange:c,target:c.startContainer}));h.removeClass("cke_widget_dragging");e.hideVisible();f.fire("dragend",{target:b})}var c=this.repository.finder,d=this.repository.locator,e=this.repository.liner,f=this.editor,
+h=f.editable(),g=[],k=[],m,n;this.repository._.draggedWidget=this;var p=c.greedySearch(),q=CKEDITOR.tools.eventsBuffer(50,function(){m=d.locate(p);k=d.sort(n,1);k.length&&(e.prepare(p,m),e.placeLine(k[0]),e.cleanup())});h.addClass("cke_widget_dragging");g.push(h.on("mousemove",function(a){n=a.data.$.clientY;q.input()}));f.fire("dragstart",{target:a.sender});g.push(f.document.once("mouseup",b,this));h.isInline()||g.push(CKEDITOR.document.once("mouseup",b,this))}function Z(a){var b,c,d=a.editables;
+a.editables={};if(a.editables)for(b in d)c=d[b],a.initEditable(b,"string"==typeof c?{selector:c}:c)}function aa(a){if(a.mask){var b=a.wrapper.findOne(".cke_widget_mask");b||(b=new CKEDITOR.dom.element("img",a.editor.document),b.setAttributes({src:CKEDITOR.tools.transparentImageData,"class":"cke_reset cke_widget_mask"}),a.wrapper.append(b));a.mask=b}}function ba(a){if(a.parts){var b={},c,d;for(d in a.parts)c=a.wrapper.findOne(a.parts[d]),b[d]=c;a.parts=b}}function N(a,b){ca(a);ba(a);Z(a);aa(a);X(a);
+V(a);W(a);if(CKEDITOR.env.ie&&9>CKEDITOR.env.version)a.wrapper.on("dragstart",function(b){var d=b.data.getTarget();g.getNestedEditable(a,d)||a.inline&&g.isDomDragHandler(d)||b.data.preventDefault()});a.wrapper.removeClass("cke_widget_new");a.element.addClass("cke_widget_element");a.on("key",function(b){b=b.data.keyCode;if(13==b)a.edit();else{if(b==CKEDITOR.CTRL+67||b==CKEDITOR.CTRL+88){y(a,b==CKEDITOR.CTRL+88);return}if(b in da||CKEDITOR.CTRL&b||CKEDITOR.ALT&b)return}return!1},null,null,999);a.on("doubleclick",
+function(b){a.edit()&&b.cancel()});if(b.data)a.on("data",b.data);if(b.edit)a.on("edit",b.edit)}function ca(a){(a.wrapper=a.element.getParent()).setAttribute("data-cke-widget-id",a.id)}function r(a){a.element.data("cke-widget-data",encodeURIComponent(JSON.stringify(a.data)))}CKEDITOR.plugins.add("widget",{requires:"lineutils,clipboard,widgetselection",onLoad:function(){CKEDITOR.addCss(".cke_widget_wrapper{position:relative;outline:none}.cke_widget_inline{display:inline-block}.cke_widget_wrapper:hover\x3e.cke_widget_element{outline:2px solid yellow;cursor:default}.cke_widget_wrapper:hover .cke_widget_editable{outline:2px solid yellow}.cke_widget_wrapper.cke_widget_focused\x3e.cke_widget_element,.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{outline:2px solid #ace}.cke_widget_editable{cursor:text}.cke_widget_drag_handler_container{position:absolute;width:15px;height:0;display:none;opacity:0.75;transition:height 0s 0.2s;line-height:0}.cke_widget_wrapper:hover\x3e.cke_widget_drag_handler_container{height:15px;transition:none}.cke_widget_drag_handler_container:hover{opacity:1}img.cke_widget_drag_handler{cursor:move;width:15px;height:15px;display:inline-block}.cke_widget_mask{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{cursor:move !important}")},
+beforeInit:function(a){a.widgets=new p(a)},afterInit:function(a){var b=a.widgets.registered,c,d,e;for(d in b)c=b[d],(e=c.button)&&a.ui.addButton&&a.ui.addButton(CKEDITOR.tools.capitalize(c.name,!0),{label:e,command:c.name,toolbar:"insert,10"});S(a)}});p.prototype={MIN_SELECTION_CHECK_INTERVAL:500,add:function(a,b){b=CKEDITOR.tools.prototypedCopy(b);b.name=a;b._=b._||{};this.editor.fire("widgetDefinition",b);b.template&&(b.template=new CKEDITOR.template(b.template));O(this.editor,b);P(this,b);return this.registered[a]=
+b},addUpcastCallback:function(a){this._.upcastCallbacks.push(a)},checkSelection:function(){var a=this.editor.getSelection(),b=a.getSelectedElement(),c=z(this),d;if(b&&(d=this.getByElement(b,!0)))return c.focus(d).select(d).commit();a=a.getRanges()[0];if(!a||a.collapsed)return c.commit();a=new CKEDITOR.dom.walker(a);for(a.evaluator=g.isDomWidgetWrapper;b=a.next();)c.select(this.getByElement(b));c.commit()},checkWidgets:function(a){this.fire("checkWidgets",CKEDITOR.tools.copy(a||{}))},del:function(a){if(this.focused===
+a){var b=a.editor,c=b.createRange(),d;(d=c.moveToClosestEditablePosition(a.wrapper,!0))||(d=c.moveToClosestEditablePosition(a.wrapper,!1));d&&b.getSelection().selectRanges([c])}a.wrapper.remove();this.destroy(a,!0)},destroy:function(a,b){this.widgetHoldingFocusedEditable===a&&n(this,a,null,b);a.destroy(b);delete this.instances[a.id];this.fire("instanceDestroyed",a)},destroyAll:function(a,b){var c,d,e=this.instances;if(b&&!a){d=b.find(".cke_widget_wrapper");for(var e=d.count(),f=0;f<e;++f)(c=this.getByElement(d.getItem(f),
+!0))&&this.destroy(c)}else for(d in e)c=e[d],this.destroy(c,a)},finalizeCreation:function(a){(a=a.getFirst())&&g.isDomWidgetWrapper(a)&&(this.editor.insertElement(a),a=this.getByElement(a),a.ready=!0,a.fire("ready"),a.focus())},getByElement:function(){function a(a){return a.is(b)&&a.data("cke-widget-id")}var b={div:1,span:1};return function(b,d){if(!b)return null;var e=a(b);if(!d&&!e){var f=this.editor.editable();do b=b.getParent();while(b&&!b.equals(f)&&!(e=a(b)))}return this.instances[e]||null}}(),
+initOn:function(a,b,c){b?"string"==typeof b&&(b=this.registered[b]):b=this.registered[a.data("widget")];if(!b)return null;var d=this.wrapElement(a,b.name);return d?d.hasClass("cke_widget_new")?(a=new g(this,this._.nextId++,a,b,c),a.isInited()?this.instances[a.id]=a:null):this.getByElement(a):null},initOnAll:function(a){a=(a||this.editor.editable()).find(".cke_widget_new");for(var b=[],c,d=a.count();d--;)(c=this.initOn(a.getItem(d).getFirst(g.isDomWidgetElement)))&&b.push(c);return b},onWidget:function(a){var b=
+Array.prototype.slice.call(arguments);b.shift();for(var c in this.instances){var d=this.instances[c];d.name==a&&d.on.apply(d,b)}this.on("instanceCreated",function(d){d=d.data;d.name==a&&d.on.apply(d,b)})},parseElementClasses:function(a){if(!a)return null;a=CKEDITOR.tools.trim(a).split(/\s+/);for(var b,c={},d=0;b=a.pop();)-1==b.indexOf("cke_")&&(c[b]=d=1);return d?c:null},wrapElement:function(a,b){var c=null,d,e;if(a instanceof CKEDITOR.dom.element){b=b||a.data("widget");d=this.registered[b];if(!d)return null;
+if((c=a.getParent())&&c.type==CKEDITOR.NODE_ELEMENT&&c.data("cke-widget-wrapper"))return c;a.hasAttribute("data-cke-widget-keep-attr")||a.data("cke-widget-keep-attr",a.data("widget")?1:0);a.data("widget",b);e=x(d,a.getName());c=new CKEDITOR.dom.element(e?"span":"div");c.setAttributes(v(e,b));c.data("cke-display-name",d.pathName?d.pathName:a.getName());a.getParent(!0)&&c.replace(a);a.appendTo(c)}else if(a instanceof CKEDITOR.htmlParser.element){b=b||a.attributes["data-widget"];d=this.registered[b];
+if(!d)return null;if((c=a.parent)&&c.type==CKEDITOR.NODE_ELEMENT&&c.attributes["data-cke-widget-wrapper"])return c;"data-cke-widget-keep-attr"in a.attributes||(a.attributes["data-cke-widget-keep-attr"]=a.attributes["data-widget"]?1:0);b&&(a.attributes["data-widget"]=b);e=x(d,a.name);c=new CKEDITOR.htmlParser.element(e?"span":"div",v(e,b));c.attributes["data-cke-display-name"]=d.pathName?d.pathName:a.name;d=a.parent;var f;d&&(f=a.getIndex(),a.remove());c.add(a);d&&w(d,f,c)}return c},_tests_createEditableFilter:u};
+CKEDITOR.event.implementOn(p.prototype);g.prototype={addClass:function(a){this.element.addClass(a);this.wrapper.addClass(g.WRAPPER_CLASS_PREFIX+a)},applyStyle:function(a){A(this,a,1)},checkStyleActive:function(a){a=B(a);var b;if(!a)return!1;for(;b=a.pop();)if(!this.hasClass(b))return!1;return!0},destroy:function(a){this.fire("destroy");if(this.editables)for(var b in this.editables)this.destroyEditable(b,a);a||("0"==this.element.data("cke-widget-keep-attr")&&this.element.removeAttribute("data-widget"),
+this.element.removeAttributes(["data-cke-widget-data","data-cke-widget-keep-attr"]),this.element.removeClass("cke_widget_element"),this.element.replace(this.wrapper));this.wrapper=null},destroyEditable:function(a,b){var c=this.editables[a];c.removeListener("focus",E);c.removeListener("blur",D);this.editor.focusManager.remove(c);b||(this.repository.destroyAll(!1,c),c.removeClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),c.removeAttributes(["contenteditable","data-cke-widget-editable",
+"data-cke-enter-mode"]));delete this.editables[a]},edit:function(){var a={dialog:this.dialog},b=this;if(!1===this.fire("edit",a)||!a.dialog)return!1;this.editor.openDialog(a.dialog,function(a){var d,e;!1!==b.fire("dialog",a)&&(d=a.on("show",function(){a.setupContent(b)}),e=a.on("ok",function(){var d,e=b.on("data",function(a){d=1;a.cancel()},null,null,0);b.editor.fire("saveSnapshot");a.commitContent(b);e.removeListener();d&&(b.fire("data",b.data),b.editor.fire("saveSnapshot"))}),a.once("hide",function(){d.removeListener();
+e.removeListener()}))});return!0},getClasses:function(){return this.repository.parseElementClasses(this.element.getAttribute("class"))},hasClass:function(a){return this.element.hasClass(a)},initEditable:function(a,b){var c=this._findOneNotNested(b.selector);return c&&c.is(CKEDITOR.dtd.$editable)?(c=new q(this.editor,c,{filter:u.call(this.repository,this.name,a,b)}),this.editables[a]=c,c.setAttributes({contenteditable:"true","data-cke-widget-editable":a,"data-cke-enter-mode":c.enterMode}),c.filter&&
+c.data("cke-filter",c.filter.id),c.addClass("cke_widget_editable"),c.removeClass("cke_widget_editable_focused"),b.pathName&&c.data("cke-display-name",b.pathName),this.editor.focusManager.add(c),c.on("focus",E,this),CKEDITOR.env.ie&&c.on("blur",D,this),c._.initialSetData=!0,c.setData(c.getHtml()),!0):!1},_findOneNotNested:function(a){a=this.wrapper.find(a);for(var b,c,d=0;d<a.count();d++)if(b=a.getItem(d),c=b.getAscendant(g.isDomWidgetWrapper),this.wrapper.equals(c))return b;return null},isInited:function(){return!(!this.wrapper||
+!this.inited)},isReady:function(){return this.isInited()&&this.ready},focus:function(){var a=this.editor.getSelection();if(a){var b=this.editor.checkDirty();a.fake(this.wrapper);!b&&this.editor.resetDirty()}this.editor.focus()},removeClass:function(a){this.element.removeClass(a);this.wrapper.removeClass(g.WRAPPER_CLASS_PREFIX+a)},removeStyle:function(a){A(this,a,0)},setData:function(a,b){var c=this.data,d=0;if("string"==typeof a)c[a]!==b&&(c[a]=b,d=1);else{var e=a;for(a in e)c[a]!==e[a]&&(d=1,c[a]=
+e[a])}d&&this.dataReady&&(r(this),this.fire("data",c));return this},setFocused:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_focused");this.fire(a?"focus":"blur");return this},setSelected:function(a){this.wrapper[a?"addClass":"removeClass"]("cke_widget_selected");this.fire(a?"select":"deselect");return this},updateDragHandlerPosition:function(){var a=this.editor,b=this.element.$,c=this._.dragHandlerOffset,b={x:b.offsetLeft,y:b.offsetTop-15};c&&b.x==c.x&&b.y==c.y||(c=a.checkDirty(),
+a.fire("lockSnapshot"),this.dragHandlerContainer.setStyles({top:b.y+"px",left:b.x+"px",display:"block"}),a.fire("unlockSnapshot"),!c&&a.resetDirty(),this._.dragHandlerOffset=b)}};CKEDITOR.event.implementOn(g.prototype);g.getNestedEditable=function(a,b){return!b||b.equals(a)?null:g.isDomNestedEditable(b)?b:g.getNestedEditable(a,b.getParent())};g.isDomDragHandler=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-drag-handler")};g.isDomDragHandlerContainer=function(a){return a.type==
+CKEDITOR.NODE_ELEMENT&&a.hasClass("cke_widget_drag_handler_container")};g.isDomNestedEditable=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-editable")};g.isDomWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-widget")};g.isDomWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&a.hasAttribute("data-cke-widget-wrapper")};g.isParserWidgetElement=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-widget"]};
+g.isParserWidgetWrapper=function(a){return a.type==CKEDITOR.NODE_ELEMENT&&!!a.attributes["data-cke-widget-wrapper"]};g.WRAPPER_CLASS_PREFIX="cke_widget_wrapper_";q.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.dom.element.prototype),{setData:function(a){this._.initialSetData||this.editor.widgets.destroyAll(!1,this);this._.initialSetData=!1;a=this.editor.dataProcessor.toHtml(a,{context:this.getName(),filter:this.filter,enterMode:this.enterMode});this.setHtml(a);this.editor.widgets.initOnAll(this)},
+getData:function(){return this.editor.dataProcessor.toDataFormat(this.getHtml(),{context:this.getName(),filter:this.filter,enterMode:this.enterMode})}});var U=/^(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?(?:<(?:div|span)(?: style="[^"]+")?>)?<span [^>]*data-cke-copybin-start="1"[^>]*>.?<\/span>([\s\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?<\/span>(?:<\/(?:div|span)>)?(?:<\/(?:div|span)>)?$/i,da={37:1,38:1,39:1,40:1,8:1,46:1};(function(){function a(){}
+function b(a,b,c){return c&&this.checkElement(a)?(a=c.widgets.getByElement(a,!0))&&a.checkStyleActive(this):!1}var c={};CKEDITOR.style.addCustomHandler({type:"widget",setup:function(a){this.widget=a.widget;if(this.group="string"==typeof a.group?[a.group]:a.group){a=this.widget;var b;c[a]||(c[a]={});for(var f=0,h=this.group.length;f<h;f++)b=this.group[f],c[a][b]||(c[a][b]=[]),c[a][b].push(this)}},apply:function(a){var b;a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&(b=a.widgets.focused,
+this.group&&this.removeStylesFromSameGroup(a),b.applyStyle(this))},remove:function(a){a instanceof CKEDITOR.editor&&this.checkApplicable(a.elementPath(),a)&&a.widgets.focused.removeStyle(this)},removeStylesFromSameGroup:function(a){var b,f,h=!1;if(!(a instanceof CKEDITOR.editor))return!1;f=a.elementPath();if(this.checkApplicable(f,a))for(var g=0,k=this.group.length;g<k;g++){b=c[this.widget][this.group[g]];for(var m=0;m<b.length;m++)b[m]!==this&&b[m].checkActive(f,a)&&(a.widgets.focused.removeStyle(b[m]),
+h=!0)}return h},checkActive:function(a,b){return this.checkElementMatch(a.lastElement,0,b)},checkApplicable:function(a,b){return b instanceof CKEDITOR.editor?this.checkElement(a.lastElement):!1},checkElementMatch:b,checkElementRemovable:b,checkElement:function(a){return g.isDomWidgetWrapper(a)?(a=a.getFirst(g.isDomWidgetElement))&&a.data("widget")==this.widget:!1},buildPreview:function(a){return a||this._.definition.name},toAllowedContentRules:function(a){if(!a)return null;a=a.widgets.registered[this.widget];
+var b,c={};if(!a)return null;if(a.styleableElements){b=this.getClassesArray();if(!b)return null;c[a.styleableElements]={classes:b,propertiesOnly:!0};return c}return a.styleToAllowedContentRules?a.styleToAllowedContentRules(this):null},getClassesArray:function(){var a=this._.definition.attributes&&this._.definition.attributes["class"];return a?CKEDITOR.tools.trim(a).split(/\s+/):null},applyToRange:a,removeFromRange:a,applyToObject:a})})();CKEDITOR.plugins.widget=g;g.repository=p;g.nestedEditable=q})();(function(){CKEDITOR.plugins.add("oembed",{icons:"oembed",hidpi:!0,requires:"widget,dialog",version:1.17,init:function(e){function l(a,d,c,f,g,j,h,b){jQuery("body").oembed(a,{onEmbed:function(d){var g=jQuery.fn.oembed.getOEmbedProvider(a);b.element.data("resizeType",j);if("responsive"==j||"custom"==j)b.element.data("maxWidth",c),b.element.data("maxHeight",f);b.element.data("align",h);"center"==h?(b.inline||b.element.setStyle("text-align","center"),b.element.removeStyle("float")):(b.inline||b.element.removeStyle("text-align"),
+"none"==h?b.element.removeStyle("float"):b.element.setStyle("float",h));"string"===typeof d.code?(b.element.$.firstChild&&b.element.$.removeChild(b.element.$.firstChild),b.element.appendHtml(d.code),b.element.data("oembed",a),b.element.data("oembed_provider",g.name),b.element.addClass("oembed-provider-"+g.name)):"string"===typeof d.code[0].outerHTML?(b.element.$.firstChild&&b.element.$.removeChild(b.element.$.firstChild),b.element.appendHtml(d.code[0].outerHTML),b.element.data("oembed",a),b.element.data("oembed_provider",
+g.name),b.element.addClass("oembed-provider-"+g.name)):alert(e.lang.oembed.noEmbedCode)},onError:function(a){0<a.indexOf("vimeo.com")?alert(e.lang.oembed.noVimeo):alert(e.lang.oembed.Error)},maxHeight:f,maxWidth:c,useResponsiveResize:g,embedMethod:"editor"})}(function(){"undefined"===typeof jQuery?CKEDITOR.scriptLoader.load("//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js",function(){jQuery.noConflict();"undefined"===typeof jQuery.fn.oembed&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+
+"libs/jquery.oembed.min.js"))}):"undefined"===typeof jQuery.fn.oembed&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+"libs/jquery.oembed.min.js"))})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{oEmbed:function(a,d,c,f){function g(){if(null==d||"undefined"==d)d=null;if(null==c||"undefined"==c)c=null;if(null==f||"undefined"==f)f=!1;l(a,e,!1,d,c,f)}if(1>a.length||0>a.indexOf("http"))return alert(e.lang.oembed.invalidUrl),!1;"undefined"===typeof jQuery.fn.oembed?
+CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath("oembed")+"libs/jquery.oembed.min.js"),function(){g()}):g();return!0}});e.widgets.add("oembed",{draggable:!1,mask:!0,dialog:"oembed",allowedContent:{div:{styles:"text-align,float",attributes:"*",classes:null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent"},"div(embeddedContent,oembed-provider-*) iframe":{attributes:"*"},"div(embeddedContent,oembed-provider-*) blockquote":{attributes:"*"},"div(embeddedContent,oembed-provider-*) script":{attributes:"*"}},
+template:'<div class="'+(null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent")+'"></div>',upcast:function(a){return"div"==a.name&&a.hasClass(null!=e.config.oembed_WrapperClass?e.config.oembed_WrapperClass:"embeddedContent")},init:function(){var a={oembed:this.element.data("oembed")||"",resizeType:this.element.data("resizeType")||"noresize",maxWidth:this.element.data("maxWidth")||560,maxHeight:this.element.data("maxHeight")||315,align:this.element.data("align")||"none",
+oembed_provider:this.element.data("oembed_provider")||""};this.setData(a);this.element.addClass("oembed-provider-"+a.oembed_provider);this.on("dialog",function(a){a.data.widget=this},this)}});e.ui.addButton("oembed",{label:e.lang.oembed.button,command:"oembed",toolbar:"insert,10",icon:this.path+"icons/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"oembed.png"});var k=function(){var a=this.getDialog(),d=this.getValue(),c=a.getContentElement("general","maxSizeBox").getElement(),a=a.getContentElement("general",
+"sizeBox").getElement();"noresize"==d?(c.hide(),a.hide()):"custom"==d?(c.hide(),a.show()):(c.show(),a.hide())};String.prototype.beginsWith=function(a){return 0===this.indexOf(a)};CKEDITOR.dialog.add("oembed",function(a){return{title:a.lang.oembed.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?568:550,minHeight:155,onShow:function(){var a={oembed:this.widget.element.data("oembed")||"",resizeType:this.widget.element.data("resizeType")||"noresize",maxWidth:this.widget.element.data("maxWidth"),maxHeight:this.widget.element.data("maxHeight"),
+align:this.widget.element.data("align")||"none"};this.widget.setData(a);this.getContentElement("general","resizeType").setValue(a.resizeType);this.getContentElement("general","align").setValue(a.align);var a=this.getContentElement("general","resizeType").getValue(),c=this.getContentElement("general","maxSizeBox").getElement(),f=this.getContentElement("general","sizeBox").getElement();"noresize"==a?(c.hide(),f.hide()):"custom"==a?(c.hide(),f.show()):(c.show(),f.hide())},onOk:function(){},contents:[{label:a.lang.common.generalTab,
+id:"general",elements:[{type:"html",id:"oembedHeader",html:'<div style="white-space:normal;width:500px;padding-bottom:10px">'+a.lang.oembed.pasteUrl+"</div>"},{type:"text",id:"embedCode",focus:function(){this.getElement().focus()},label:a.lang.oembed.url,title:a.lang.oembed.pasteUrl,setup:function(a){a.data.oembed&&this.setValue(a.data.oembed)},commit:function(d){var c=CKEDITOR.dialog.getCurrent(),f=c.getValueOf("general","embedCode").replace(/\s/g,""),g=c.getContentElement("general","resizeType").getValue(),
+e=c.getContentElement("general","align").getValue(),h=null,b=null,i=!1,k=c.getParentEditor();if(1>f.length||0>f.indexOf("http"))return alert(a.lang.oembed.invalidUrl),!1;"noresize"==g?(i=!1,b=h=null):"responsive"==g?(h=c.getContentElement("general","maxWidth").getInputElement().getValue(),b=c.getContentElement("general","maxHeight").getInputElement().getValue(),i=!0):"custom"==g&&(h=c.getContentElement("general","width").getInputElement().getValue(),b=c.getContentElement("general","height").getInputElement().getValue(),
+i=!1);l(f,k,h,b,i,g,e,d);d.setData("oembed",f);d.setData("resizeType",g);d.setData("align",e);d.setData("maxWidth",h);d.setData("maxHeight",b)}},{type:"hbox",widths:["50%","50%"],children:[{id:"resizeType",type:"select",label:a.lang.oembed.resizeType,"default":"noresize",setup:function(a){a.data.resizeType&&this.setValue(a.data.resizeType)},items:[[a.lang.oembed.noresize,"noresize"],[a.lang.oembed.responsive,"responsive"],[a.lang.oembed.custom,"custom"]],onChange:k},{type:"hbox",id:"maxSizeBox",widths:["120px",
+"120px"],style:"float:left;position:absolute;left:58%;width:200px",children:[{type:"text",width:"100px",id:"maxWidth","default":null!=a.config.oembed_maxWidth?a.config.oembed_maxWidth:"560",label:a.lang.oembed.maxWidth,title:a.lang.oembed.maxWidthTitle,setup:function(a){a.data.maxWidth&&this.setValue(a.data.maxWidth)}},{type:"text",id:"maxHeight",width:"120px","default":null!=a.config.oembed_maxHeight?a.config.oembed_maxHeight:"315",label:a.lang.oembed.maxHeight,title:a.lang.oembed.maxHeightTitle,
+setup:function(a){a.data.maxHeight&&this.setValue(a.data.maxHeight)}}]},{type:"hbox",id:"sizeBox",widths:["120px","120px"],style:"float:left;position:absolute;left:58%;width:200px",children:[{type:"text",id:"width",width:"100px","default":null!=a.config.oembed_maxWidth?a.config.oembed_maxWidth:"560",label:a.lang.oembed.width,title:a.lang.oembed.widthTitle,setup:function(a){a.data.maxWidth&&this.setValue(a.data.maxWidth)}},{type:"text",id:"height",width:"120px","default":null!=a.config.oembed_maxHeight?
+a.config.oembed_maxHeight:"315",label:a.lang.oembed.height,title:a.lang.oembed.heightTitle,setup:function(a){a.data.maxHeight&&this.setValue(a.data.maxHeight)}}]}]},{type:"hbox",id:"alignment",children:[{id:"align",type:"radio",items:[[a.lang.oembed.none,"none"],[a.lang.common.alignLeft,"left"],[a.lang.common.alignCenter,"center"],[a.lang.common.alignRight,"right"]],label:a.lang.common.align,setup:function(a){this.setValue(a.data.align)}}]}]}]}})}})})();(function(){CKEDITOR.plugins.add("Audio",{lang:["en","es"],getPlaceholderCss:function(){return"img.cke_audio{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;background-color:gray;border: 1px solid #a9a9a9;width: 80px;height: 80px;}"},onLoad:function(){CKEDITOR.addCss&&CKEDITOR.addCss(this.getPlaceholderCss())},init:function(b){var c=b.lang.audio;"undefined"==typeof b.element.data?alert('The "audio" plugin requires CKEditor 3.5 or newer'):
+(CKEDITOR.dialog.add("audio",this.path+"dialogs/audio.js"),b.addCommand("Audio",new CKEDITOR.dialogCommand("audio")),b.ui.addButton("Audio",{label:c.toolbar,command:"Audio",icon:this.path+"images/icon.png"}),b.addCss&&b.addCss(this.getPlaceholderCss()),b.addMenuItems&&b.addMenuItems({audio:{label:c.properties,command:"Audio",group:"flash"}}),b.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"audio"==b.data("cke-real-element-type")&&(a.data.dialog="audio")}),b.contextMenu&&b.contextMenu.addListener(function(a){if(a&&
+a.is("img")&&!a.isReadOnly()&&"audio"==a.data("cke-real-element-type"))return{audio:CKEDITOR.TRISTATE_OFF}}),CKEDITOR.dtd.$empty["cke:source"]=1,CKEDITOR.dtd.$empty.source=1,b.lang.fakeobjects.audio=c.fakeObject)},afterInit:function(b){var c=b.dataProcessor;(c&&c.dataFilter).addRules({elements:{$:function(a){if("audio"==a.name){a.name="cke:audio";for(var d=0;d<a.children.length;d++)"source"==a.children[d].name&&(a.children[d].name="cke:source");var d=b.createFakeParserElement(a,"cke_audio","audio",
+!1),c=d.attributes.style||"",e=a.attributes.width,f=a.attributes.height,a=a.attributes.poster;"undefined"!=typeof e&&(c=d.attributes.style=c+"width:"+CKEDITOR.tools.cssLength(e)+";");"undefined"!=typeof f&&(c=d.attributes.style=c+"height:"+CKEDITOR.tools.cssLength(f)+";");a&&(d.attributes.style=c+"background-image:url("+a+");");return d}}}})}});var e={toolbar:"Audio",dialogTitle:"Audio properties",fakeObject:"Audio",properties:"Edit audio",widthRequired:"Width field cannot be empty",heightRequired:"Height field cannot be empty",
+poster:"Poster image",sourceaudio:"Source audio",sourceType:"Audio type",linkTemplate:'<a href="%src%">%type%</a> ',fallbackTemplate:"Your browser doesn't support audio.<br>Please download the file: %links%"},f={toolbar:"Audio",dialogTitle:"Propiedades de audio",fakeObject:"Audio",properties:"Editar el audio",widthRequired:"La anchura no se puede dejar en blanco",heightRequired:"La altura no se puede dejar en blanco",poster:"Imagen de presentación",sourceaudio:"Archivo de audio",sourceType:"Tipo",
+linkTemplate:'<a href="%src%">%type%</a> ',fallbackTemplate:"Su navegador no soporta audio.<br>Por favor, descargue el fichero: %links%"};CKEDITOR.skins&&(e={audio:e},f={audio:f});CKEDITOR.plugins.setLang("audio","en",e);CKEDITOR.plugins.setLang("audio","es",f)})();CKEDITOR.plugins.add("html5video",{requires:"widget",lang:"de,en,eu,es,ru,uk,fr",icons:"html5video",init:function(b){b.widgets.add("html5video",{button:b.lang.html5video.button,template:'\x3cdiv class\x3d"ckeditor-html5-video"\x3e\x3c/div\x3e',allowedContent:"div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,controls,autoplay,width, height]{max-width,height};",requiredContent:"div(ckeditor-html5-video); video[src,controls];",upcast:function(a){return"div"===
+a.name&&a.hasClass("ckeditor-html5-video")},dialog:"html5video",init:function(){var a="",b="",e=this.element.getStyle("text-align"),c="",d="";this.element.getChild(0)&&(a=this.element.getChild(0).getAttribute("src"),c=this.element.getChild(0).getAttribute("width"),d=this.element.getChild(0).getAttribute("height"),b=this.element.getChild(0).getAttribute("autoplay"),responsive=this.element.getAttribute("data-responsive"));a&&(this.setData("src",a),e?this.setData("align",e):this.setData("align","none"),
+c&&this.setData("width",c),d&&this.setData("height",d),b&&this.setData("autoplay","yes"),responsive&&this.setData("responsive",responsive))},data:function(){if(this.data.src){if(!this.element.getChild(0)){var a=new CKEDITOR.dom.element("video");a.setAttribute("controls","controls");this.element.append(a)}this.element.getChild(0).setAttribute("src",this.data.src);this.data.width&&this.element.getChild(0).setAttribute("width",this.data.width);this.data.height&&this.element.getChild(0).setAttribute("height",
+this.data.height);this.data.responsive?(this.element.setAttribute("data-responsive",this.data.responsive),this.element.getChild(0).setStyle("max-width","100%"),this.element.getChild(0).setStyle("height","auto")):(this.element.getChild(0).removeStyle("max-width"),this.element.getChild(0).removeStyle("height"))}this.element.removeStyle("float");this.element.removeStyle("margin-left");this.element.removeStyle("margin-right");"none"===this.data.align?this.element.removeStyle("text-align"):this.element.setStyle("text-align",
+this.data.align);"left"===this.data.align?(this.element.setStyle("float",this.data.align),this.element.setStyle("margin-right","10px")):"right"===this.data.align&&(this.element.setStyle("float",this.data.align),this.element.setStyle("margin-left","10px"));this.element.getChild(0)&&("yes"===this.data.autoplay?this.element.getChild(0).setAttribute("autoplay","autoplay"):this.element.getChild(0).removeAttribute("autoplay"))}});b.contextMenu&&(b.addMenuGroup("html5videoGroup"),b.addMenuItem("html5videoPropertiesItem",
+{label:b.lang.html5video.videoProperties,icon:"html5video",command:"html5video",group:"html5videoGroup"}),b.contextMenu.addListener(function(a){if(a&&a.getChild(0)&&a.getChild(0).hasClass&&a.getChild(0).hasClass("ckeditor-html5-video"))return{html5videoPropertiesItem:CKEDITOR.TRISTATE_OFF}}));CKEDITOR.dialog.add("html5video",this.path+"dialogs/html5video.js")}});CKEDITOR.config.plugins='dialogui,dialog,a11yhelp,dialogadvtab,basicstyles,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,wysiwygarea,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,showborders,sourcearea,tab,lineutils,notification,clipboard,widgetselection,widget,oembed,Audio,html5video';CKEDITOR.config.skin='moono';(function() {var setIcons = function(icons, strip) {var path = CKEDITOR.getUrl( 'plugins/' + strip );icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ], bgsize : icons[ ++i ] };};if (CKEDITOR.env.hidpi) setIcons('bold,0,,italic,24,,strike,48,,subscript,72,,superscript,96,,underline,120,,horizontalrule,144,,iframe,168,,image,192,,indent-rtl,216,,indent,240,,outdent-rtl,264,,outdent,288,,justifyblock,312,,justifycenter,336,,justifyleft,360,,justifyright,384,,anchor-rtl,408,,anchor,432,,link,456,,unlink,480,,bulletedlist-rtl,504,,bulletedlist,528,,numberedlist-rtl,552,,numberedlist,576,,maximize,600,,removeformat,624,,source-rtl,648,,source,672,,copy-rtl,696,,copy,720,,cut-rtl,744,,cut,768,,paste-rtl,792,,paste,816,,oembed,840,,html5video,1728,auto','icons_hidpi.png');else setIcons('bold,0,auto,italic,24,auto,strike,48,auto,subscript,72,auto,superscript,96,auto,underline,120,auto,horizontalrule,144,auto,iframe,168,auto,image,192,auto,indent-rtl,216,auto,indent,240,auto,outdent-rtl,264,auto,outdent,288,auto,justifyblock,312,auto,justifycenter,336,auto,justifyleft,360,auto,justifyright,384,auto,anchor-rtl,408,auto,anchor,432,auto,link,456,auto,unlink,480,auto,bulletedlist-rtl,504,auto,bulletedlist,528,auto,numberedlist-rtl,552,auto,numberedlist,576,auto,maximize,600,auto,removeformat,624,auto,source-rtl,648,auto,source,672,auto,copy-rtl,696,auto,copy,720,auto,cut-rtl,744,auto,cut,768,auto,paste-rtl,792,auto,paste,816,auto,oembed,840,auto,html5video,864,auto','icons.png');})();CKEDITOR.lang.languages={"en":1,"fr":1};}());
\ No newline at end of file
index 06159c0c5b38caaf7363c6046f2448595d3e7f8d..01a391a25b441a49d8fbf59b30649c89cd9a1a20 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index c6936fe92d546685f23e1dc472187c4a0f4c197f..920f2cad9cf66be5e16f2743626e6c336a6c0e6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
@@ -133,3 +133,76 @@ a > img {
        border: none;\r
        outline: 1px solid #0782C1;\r
 }\r
+\r
+/* Widget Styles */\r
+.code-featured\r
+{\r
+       border: 5px solid red;\r
+}\r
+\r
+.math-featured\r
+{\r
+       padding: 20px;\r
+       box-shadow: 0 0 2px rgba(200, 0, 0, 1);\r
+       background-color: rgba(255, 0, 0, 0.05);\r
+       margin: 10px;\r
+}\r
+\r
+.image-clean\r
+{\r
+       border: 0;\r
+       background: none;\r
+       padding: 0;\r
+}\r
+\r
+.image-clean > figcaption\r
+{\r
+       font-size: .9em;\r
+       text-align: right;\r
+}\r
+\r
+.image-grayscale\r
+{\r
+       background-color: white;\r
+       color: #666;\r
+}\r
+\r
+.image-grayscale img, img.image-grayscale\r
+{\r
+       filter: grayscale(100%);\r
+}\r
+\r
+.embed-240p\r
+{\r
+       max-width: 426px;\r
+       max-height: 240px;\r
+       margin:0 auto;\r
+}\r
+\r
+.embed-360p\r
+{\r
+       max-width: 640px;\r
+       max-height: 360px;\r
+       margin:0 auto;\r
+}\r
+\r
+.embed-480p\r
+{\r
+       max-width: 854px;\r
+       max-height: 480px;\r
+       margin:0 auto;\r
+}\r
+\r
+.embed-720p\r
+{\r
+       max-width: 1280px;\r
+       max-height: 720px;\r
+       margin:0 auto;\r
+}\r
+\r
+.embed-1080p\r
+{\r
+       max-width: 1920px;\r
+       max-height: 1080px;\r
+       margin:0 auto;\r
+}\r
index 9c9aff58f1d9bffab297e976b763acfe46ab523b..c9da85c19f0f91f7a4642c3d53ea0833bf4318c2 100644 (file)
@@ -1,5 +1,5 @@
-/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.md or http://ckeditor.com/license\r
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"contextmenu":{"options":"Context Menu Options"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"button":{"selectedLabel":"%1 (Selected)"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"}};
\ No newline at end of file
+CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"contextmenu":{"options":"Context Menu Options"},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"removeformat":{"toolbar":"Remove Format"},"sourcearea":{"toolbar":"Source"},"notification":{"closed":"Notification closed."},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"widget":{"move":"Click and drag to move","label":"%1 widget"},"oembed":{"title":"Embed Media Content (Photo, Video, Audio or Rich Content)","button":"Embed Media from External Sites","pasteUrl":"Paste a URL (shorted URLs are also supported) from one of the supported sites (e.g. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.).","invalidUrl":"Please provide a valid URL.","noEmbedCode":"No embed code found, or site is not supported.","url":"URL:","width":"Width:","height":"Height:","widthTitle":"Width for the embeded content","heightTitle":"Height for the embeded content","maxWidth":"Max. Width:","maxHeight":"Max. Height:","maxWidthTitle":"Maximum Width for the embeded Content","maxHeightTitle":"Maximum Height for the embeded Content","none":"None","resizeType":"Resize Type (videos only):","noresize":"No Resize (use default)","responsive":"Responsive Resize","custom":"Specific Resize","noVimeo":"The owner of this video has set domain restrictions and you will not be able to embed it on your website.","Error":"Media Content could not been retrieved, please try a different URL."},"html5video":{"button":"Insert HTML5 video","title":"HTML5 video","infoLabel":"Video info","allowed":"Allowed file extensions: MP4, WebM, Ogv","urlMissing":"Video source URL is missing.","videoProperties":"Video properties","upload":"Upload","btnUpload":"Send it to the server","advanced":"Advanced","autoplay":"Autoplay?","yes":"Yes","no":"No","responsive":"Responsive width"}};
\ No newline at end of file
index f97090c75ef11a9d5898940150773d2a8dce088c..773fa128fe070f58c148c0c3d096ae2ee96fb5d0 100644 (file)
@@ -1,5 +1,5 @@
-/*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.md or http://ckeditor.com/license\r
+/*
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.lang['fr']={"editor":"Éditeur de Texte Enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Appuyez sur ALT-0 pour l'aide","browseServer":"Explorer le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton Radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<non défini>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue (longdesc => malvoyant)","cssClass":"Classe CSS","advisoryTitle":"Description (title)","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Déplacer pour modifier la taille","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?","options":"Options","target":"Cible (Target)","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à Droite (LTR)","langDirRTL":"Droite à Gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur incorrecte.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style inline doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, Indisponible</span>"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"contextmenu":{"options":"Options du menu contextuel"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 éléments"},"button":{"selectedLabel":"%1 (Sélectionné)"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Formaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ caché","iframe":"IFrame","unknown":"Objet inconnu"},"iframe":{"border":"Afficher une bordure de la IFrame","noUrl":"Veuillez entrer l'adresse du lien de la IFrame","scrolling":"Permettre à la barre de défilement","title":"Propriétés de la IFrame","toolbar":"IFrame"},"image":{"alt":"Texte de remplacement","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton image sélectionné en simple image?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image en bouton image?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Taille d'origine","title":"Propriétés de l'image","titleButton":"Propriétés du bouton image","upload":"Envoyer","urlMissing":"L'adresse source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"Bordure doit être un entier.","validateHSpace":"HSpace doit être un entier.","validateVSpace":"VSpace doit être un entier."},"indent":{"indent":"Augmenter le retrait (tabulation)","outdent":"Diminuer le retrait (tabulation)"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (ex: text/html)","advisoryTitle":"Description (title)","anchor":{"toolbar":"Ancre","menu":"Editer l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Charset de la cible","cssClasses":"Classe CSS","emailAddress":"Adresse E-Mail","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"Id","info":"Infos sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche","menu":"Editer le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse e-mail","noUrl":"Veuillez entrer l'adresse du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Options de la fenêtre popup","popupFullScreen":"Plein écran (IE)","popupLeft":"Position gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre de status","popupToolbar":"Barre d'outils","popupTop":"Position haute","rel":"Relation","selectAnchor":"Sélectionner l'ancre","styles":"Style","tabIndex":"Index de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du Cadre destination","targetPopup":"<fenêtre popup>","targetPopupName":"Nom de la fenêtre popup","title":"Lien","toAnchor":"Ancre","toEmail":"E-mail","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Envoyer"},"list":{"bulletedlist":"Insérer/Supprimer la liste à puces","numberedlist":"Insérer/Supprimer la liste numérotée"},"liststyle":{"armenian":"Numération arménienne","bulletedTitle":"Propriétés de la liste à puces","circle":"Cercle","decimal":"Décimal (1, 2, 3, etc.)","decimalLeadingZero":"Décimal précédé par un 0 (01, 02, 03, etc.)","disc":"Disque","georgian":"Numération géorgienne (an, ban, gan, etc.)","lowerAlpha":"Alphabétique minuscules (a, b, c, d, e, etc.)","lowerGreek":"Grec minuscule (alpha, beta, gamma, etc.)","lowerRoman":"Nombres romains minuscules (i, ii, iii, iv, v, etc.)","none":"Aucun","notset":"<Non défini>","numberedTitle":"Propriétés de la liste numérotée","square":"Carré","start":"Début","type":"Type","upperAlpha":"Alphabétique majuscules (A, B, C, D, E, etc.)","upperRoman":"Nombres romains majuscules (I, II, III, IV, V, etc.)","validateStartNumber":"Le premier élément de la liste doit être un nombre entier."},"magicline":{"title":"Insérez un paragraphe ici"},"maximize":{"maximize":"Agrandir","minimize":"Minimiser"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"sourcearea":{"toolbar":"Source"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Editer","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"}};
\ No newline at end of file
+CKEDITOR.lang['fr']={"editor":"Éditeur de texte enrichi","editorPanel":"Tableau de bord de l'éditeur de texte enrichi","common":{"editorHelp":"Utilisez le raccourci Alt-0 pour obtenir de l'aide","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ invisible","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton avec image","notSet":"<indéfini>","id":"ID","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue","cssClass":"Classes de style","advisoryTitle":"Infobulle","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Redimensionner","generalTab":"Général","advancedTab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?","confirmCancel":"Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?","options":"Options","target":"Cible","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à droite (LTR)","langDirRTL":"Droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centrer","alignJustify":"Justifier","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","alignNone":"Aucun","invalidValue":"Valeur invalide.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","invalidHtmlLength":"La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).","invalidInlineStyle":"La valeur spécifiée pour le style en ligne doit être composée d'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponible</span>","keyboard":{"8":"Retour arrière","13":"Entrée","16":"Majuscule","17":"Ctrl","18":"Alt","32":"Espace","35":"Fin","36":"Origine","46":"Supprimer","224":"Commande"},"keyboardShortcut":"Raccourci clavier"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"contextmenu":{"options":"Options du menu contextuel"},"button":{"selectedLabel":"%1 (Sélectionné)"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Édition","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barres d'outils de l'éditeur"},"elementspath":{"eleLabel":"Chemin des éléments","eleTitle":"Élément %1"},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Division","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Préformaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ invisible","iframe":"Cadre de contenu incorporé","unknown":"Objet inconnu"},"iframe":{"border":"Afficher la bordure du cadre","noUrl":"Veuillez entrer l'URL du contenu du cadre","scrolling":"Activer les barres de défilement","title":"Propriétés du cadre de contenu incorporé","toolbar":"Cadre de contenu incorporé"},"image":{"alt":"Texte alternatif","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton avec image sélectionné en simple image ?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image sélectionnée en bouton avec image ?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Réinitialiser la taille","title":"Propriétés de l'image","titleButton":"Propriétés du bouton avec image","upload":"Téléverser","urlMissing":"L'URL source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"La bordure doit être un nombre entier.","validateHSpace":"L'espacement horizontal doit être un nombre entier.","validateVSpace":"L'espacement vertical doit être un nombre entier."},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (indicatif)","advisoryTitle":"Infobulle","anchor":{"toolbar":"Ancre","menu":"Modifier l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Encodage de la ressource liée","cssClasses":"Classes de style","download":"Forcer le téléchargement","displayText":"Afficher le texte","emailAddress":"Adresse électronique","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"ID","info":"Informations sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche (RTL)","menu":"Modifier le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse électronique","noUrl":"Veuillez entrer l'URL du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Caractéristiques de la fenêtre surgissante","popupFullScreen":"Plein écran (IE)","popupLeft":"À gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre d'état","popupToolbar":"Barre d'outils","popupTop":"En haut","rel":"Relation","selectAnchor":"Sélectionner une ancre","styles":"Style","tabIndex":"Indice de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du cadre affecté","targetPopup":"<fenêtre surgissante>","targetPopupName":"Nom de la fenêtre surgissante","title":"Lien","toAnchor":"Ancre","toEmail":"Courriel","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Téléverser"},"list":{"bulletedlist":"Insérer/Supprimer une liste à puces","numberedlist":"Insérer/Supprimer une liste numérotée"},"liststyle":{"armenian":"Numération arménienne","bulletedTitle":"Propriétés de la liste à puces","circle":"Cercle","decimal":"Décimal (1, 2, 3, etc.)","decimalLeadingZero":"Décimal précédé par un 0 (01, 02, 03, etc.)","disc":"Disque","georgian":"Numération géorgienne (an, ban, gan, etc.)","lowerAlpha":"Lettres minuscules (a, b, c, d, e, etc.)","lowerGreek":"Grec minuscule (alpha, bêta, gamma, etc.)","lowerRoman":"Chiffres romains minuscules (i, ii, iii, iv, v, etc.)","none":"Aucun","notset":"<indéfini>","numberedTitle":"Propriétés de la liste numérotée","square":"Carré","start":"Début","type":"Type","upperAlpha":"Lettres majuscules (A, B, C, D, E, etc.)","upperRoman":"Chiffres romains majuscules (I, II, III, IV, V, etc.)","validateStartNumber":"Le premier élément de la liste doit être un nombre entier."},"magicline":{"title":"Insérer un paragraphe ici"},"maximize":{"maximize":"Agrandir","minimize":"Réduire"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"sourcearea":{"toolbar":"Source"},"notification":{"closed":"Notification fermée."},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur n'autorisent pas l'éditeur à exécuter automatiquement l'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).","paste":"Coller","pasteNotification":"Your browser doesn't allow you to paste this way. Press %1 to paste."},"widget":{"move":"Cliquer et glisser pour déplacer","label":"Élément %1"},"oembed":{"title":"Intégrer des contenus multimédia externes. (Photo, Video, Audio, ...)","button":"Insérer des contenus multimédia provenant de nombreux sites.","pasteUrl":"Coller l'URL de partage que vous voulez publier. De nombreux services sont pris en charge tels que : (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.). Vous pouvez aussi utiliser les URLs courtes.","invalidUrl":"Merci de fournir une URL valide !","noEmbedCode":"Aucun code d'intégration trouvé ou le site n'est pas supporté !","url":"URL:","width":"Largeur:","height":"Hauteur:","widthTitle":"Largeur du conteneur.","heightTitle":"Hauteur du conteneur.","maxWidth":"Max. Largeur:","maxHeight":"Max. Hauteur:","maxWidthTitle":"Largeur maximale du conteneur.","maxHeightTitle":"Hauteur maximale du conteneur.","resizeType":"Resize Type (Only Video's):","none":"None","noresize":"No Resize (use default)","responsive":"Responsive Resize","custom":"Specific Resize","noVimeo":"The owner of this video has set domain restrictions and you will not be able to embed it on your website.","Error":"Media Content could not been retrieved, please try a different URL."},"html5video":{"button":"Insérer un lecteur video HTML5","title":"HTML5 video","infoLabel":"Informations video","allowed":"Extensions de fichiers autorisées: MP4, WebM, Ogv","urlMissing":"URL de la source video manquante. Veuillez la renseigner.","videoProperties":"Propriétés Video","upload":"Télécharger","btnUpload":"Envoyer vers le serveur","advanced":"Avancé","autoplay":"Jouer automatiquement ?","yes":"Oui","no":"Non","responsive":"Responsive width"}};
\ No newline at end of file
diff --git a/release/plugins/Audio/dialogs/audio.js b/release/plugins/Audio/dialogs/audio.js
new file mode 100644 (file)
index 0000000..da9495c
--- /dev/null
@@ -0,0 +1,9 @@
+CKEDITOR.dialog.add("audio",function(d){function g(a,c){var b=this.getValue();!b&&"id"==this.id&&(b=m());a.setAttribute(this.id,b);if(b)switch(this.id){case "poster":c.backgroundImage="url("+b+")";break;case "width":c.width=b+"px";break;case "height":c.height=b+"px"}}function i(a,c,b){c=this.id.match(/(\w+)(\d)/);a=c[1];c=parseInt(c[2],10);(b[c]||(b[c]={}))[a]=this.getValue()}function j(a){a?this.setValue(a.getAttribute(this.id)):"id"==this.id&&this.setValue(m())}function h(a,c){var b=this.id.match(/(\w+)(\d)/),
+d=b[1],b=parseInt(b[2],10);(b=c[b])&&this.setValue(b[d])}function m(){var a=new Date;return"audio"+a.getFullYear()+a.getMonth()+a.getDate()+a.getHours()+a.getMinutes()+a.getSeconds()}var e=d.lang.audio,l=function(){var a=this.previewImage;a.removeListener("load",l);a.removeListener("error",f);a.removeListener("abort",f);this.setValueOf("info","width",a.$.width);this.setValueOf("info","height",a.$.height)},f=function(){var a=this.previewImage;a.removeListener("load",l);a.removeListener("error",f);
+a.removeListener("abort",f)};return{title:e.dialogTitle,minWidth:400,minHeight:200,onShow:function(){this.fakeImage=this.audioNode=null;this.previewImage=d.document.createElement("img");var a=this.getSelectedElement();if(a&&a.data("cke-real-element-type")&&"audio"==a.data("cke-real-element-type")){this.fakeImage=a;var a=d.restoreRealElement(a),c=[],b=a.getElementsByTag("source","");0==b.count()&&(b=a.getElementsByTag("source","cke"));for(var e=0,f=b.count();e<f;e++){var g=b.getItem(e);c.push({src:g.getAttribute("src"),
+type:g.getAttribute("type")})}this.audioNode=a;this.setupContent(a,c)}else this.setupContent(null,[])},onOk:function(){var a=null;this.fakeImage?a=this.audioNode:(a=CKEDITOR.dom.element.createFromHtml("<cke:audio></cke:audio>",d.document),a.setAttributes({controls:"controls"}));var c={},b=[];this.commitContent(a,c,b);for(var f="",g="",i=e.linkTemplate||"",j=e.fallbackTemplate||"",h=0;h<b.length;h++){var k=b[h];k&&k.src&&(f+='<cke:source src="'+k.src+'" type="'+k.type+'" />',g+=i.replace("%src%",k.src).replace("%type%",
+k.type))}a.setHtml(f+j.replace("%links%",g));a=d.createFakeElement(a,"cke_audio","audio",!1);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),d.getSelection().selectElement(a)):(c=new CKEDITOR.dom.element("DIV",d.document),d.insertElement(c),c.append(a))},onHide:function(){this.previewImage&&(this.previewImage.removeListener("load",l),this.previewImage.removeListener("error",f),this.previewImage.removeListener("abort",f),this.previewImage.remove(),this.previewImage=null)},contents:[{id:"info",
+elements:[{type:"hbox",widths:["","100px"],children:[{type:"text",id:"poster",label:e.poster,commit:g,setup:j,onChange:function(){var a=this.getDialog(),c=this.getValue();if(0<c.length){var a=this.getDialog(),b=a.previewImage;b.on("load",l,a);b.on("error",f,a);b.on("abort",f,a);b.setAttribute("src",c)}}},{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:poster",url:d.config.filebrowserImageBrowseUrl||d.config.filebrowserBrowseUrl},
+label:d.lang.common.browseServer}]},{type:"hbox",widths:["33%","33%","33%"],children:[{type:"text",id:"width",label:d.lang.common.width,"default":400,validate:CKEDITOR.dialog.validate.notEmpty(e.widthRequired),commit:g,setup:j},{type:"text",id:"height",label:d.lang.common.height,"default":300,validate:CKEDITOR.dialog.validate.notEmpty(e.heightRequired),commit:g,setup:j},{type:"text",id:"id",label:"Id",commit:g,setup:j}]},{type:"hbox",widths:["","100px","75px"],children:[{type:"text",id:"src0",label:e.sourceaudio,
+commit:i,setup:h},{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:src0",url:d.config.filebrowserAudioBrowseUrl||d.config.filebrowserBrowseUrl},label:d.lang.common.browseServer},{id:"type0",label:e.sourceType,type:"select","default":"audio/mp3",items:[["MP3","audio/mp3"],["WAV","audio/wav"]],commit:i,setup:h}]},{type:"hbox",widths:["","100px","75px"],children:[{type:"text",id:"src1",label:e.sourceaudio,commit:i,setup:h},
+{type:"button",id:"browse",hidden:"true",style:"display:inline-block;margin-top:10px;",filebrowser:{action:"Browse",target:"info:src1",url:d.config.filebrowserAudioBrowseUrl||d.config.filebrowserBrowseUrl},label:d.lang.common.browseServer},{id:"type1",label:e.sourceType,type:"select","default":"audio/wav",items:[["MP3","audio/mp3"],["WAV","audio/wav"]],commit:i,setup:h}]}]}]}});
\ No newline at end of file
diff --git a/release/plugins/Audio/docs/install.html b/release/plugins/Audio/docs/install.html
new file mode 100644 (file)
index 0000000..3fbf30e
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
+       "http://www.w3.org/TR/html4/loose.dtd">\r
+<html lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<title>Audio plugin</title>\r
+<link href="styles.css" rel="stylesheet" type="text/css">\r
+</head>\r
+\r
+<body>\r
+<h1>Audio Plugin for CKEditor</h1>\r
+\r
+<h2>Introduction</h2>\r
+<p>This is a plugin to create HTML5 &lt;audio&gt; elements in <a href="http://www.ckeditor.com">CKEditor</a>.</p>\r
+<h3>Version history: </h3>\r
+<ol>\r
+  <li>1.0: 10-July-2015. First version.</li>\r
+</ol>\r
+\r
+<h2>Installation</h2>\r
+<h3>1. Copying the files</h3>\r
+<p>Extract the contents of the zip in you plugins directory, so it ends up like\r
+    this<br>\r
+    <!--<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install">-->\r
+    </p>\r
+<pre id="--install">\r
+ckeditor\\r
+       ...\r
+       images\\r
+       lang\\r
+       plugins\\r
+               ...\r
+               audio\\r
+                       plugin.js\r
+                       dialogs\\r
+                               audio.js\r
+                       docs\\r
+                               install.html\r
+                       images\\r
+                               icon.png\r
+                               placeholder.png\r
+               ...\r
+       skins\\r
+       themes\\r
+</pre>\r
+<h3>2. Adding it to CKEditor</h3>\r
+<p>Now add the plugin in your <em>config.js</em> or custom js configuration\r
+file:\r
+<code>config.extraPlugins='audio'; </code>\r
+</p>\r
+\r
+<h3>3. Add it to your toolbar</h3>\r
+<p>In your toolbar configuration, add a new 'Audio' item in the place where you want the button to show up.</p>\r
+\r
+<h3>4. Configure server browser for audio</h3>\r
+<p>You can use the <code>config.filebrowserAudioBrowseUrl</code> entry to specify a url so the file browser shows just audio elements (as long as your configure properly your file browser).</p>\r
+\r
+<h3>5. Use it</h3>\r
+<p>Now empty the cache of your browser and reload the editor, the new button should show up and you can add &lt;audio&gt; elements into the content.</p>\r
+\r
+<h2>Final notes</h2>\r
+<p>Please, note that only newer browsers support the Audio element, in older ones a simple text linking to the source audios is provided, you might want to\r
+use some javascript or css to customize the final behavior of these elements.</p>\r
+\r
+\r
+<h2>Disclaimers</h2>\r
+<p>CKEditor is  &copy; CKSource.com</p>\r
+</body>\r
+</html>\r
diff --git a/release/plugins/Audio/docs/styles.css b/release/plugins/Audio/docs/styles.css
new file mode 100644 (file)
index 0000000..5eba91e
--- /dev/null
@@ -0,0 +1,67 @@
+body {\r
+       font-family: Arial, Helvetica, sans-serif;\r
+       font-size: 90%;\r
+}\r
+h1 {\r
+       text-align:center;\r
+       font-size:180%;\r
+}\r
+h2 {\r
+       border-bottom:2px solid #CCC;\r
+       margin:1em 0 0.4em 0;\r
+}\r
+h3 {\r
+       margin-bottom:0.4em;\r
+}\r
+p {\r
+       margin:0 0 1em 1em;\r
+       text-align:justify;\r
+}\r
+ol {\r
+       margin:0 0 1.2em 1em;\r
+       padding:0;\r
+       list-style-type:none;\r
+}\r
+ol li {\r
+       margin:0.2em 0;\r
+}\r
+pre {\r
+       font-size:100%;\r
+       font-family:"Courier New", Courier, mono;\r
+       background-color: #CCCCCC;\r
+       border:1px solid #999;\r
+       padding:0.2em 1em;\r
+       margin: 0.4em 0;\r
+       display:block;\r
+       white-space: pre;\r
+       overflow: auto;\r
+}\r
+code {\r
+       font-size:100%;\r
+       font-family:"Courier New", Courier, mono;\r
+       background-color: #CCCCCC;\r
+       border:1px solid #999;\r
+       padding:0.2em;\r
+       white-space: pre;\r
+}\r
+form {\r
+       margin:0 0 0 1em;\r
+}\r
+span.key {\r
+       color: #006600;\r
+}\r
+#install {\r
+       display:none\r
+}\r
+#languages ul {\r
+       display:inline;\r
+       list-style-type:none;\r
+       margin:0;\r
+       padding:0;\r
+}\r
+#languages li {\r
+       display:inline;\r
+       margin:0;\r
+       padding:0;\r
+       vertical-align:bottom;\r
+}\r
diff --git a/release/plugins/Audio/images/audio.png b/release/plugins/Audio/images/audio.png
new file mode 100644 (file)
index 0000000..b4a4ef7
Binary files /dev/null and b/release/plugins/Audio/images/audio.png differ
diff --git a/release/plugins/Audio/images/icon.png b/release/plugins/Audio/images/icon.png
new file mode 100644 (file)
index 0000000..1ec7ecc
Binary files /dev/null and b/release/plugins/Audio/images/icon.png differ
diff --git a/release/plugins/Audio/images/placeholder.png b/release/plugins/Audio/images/placeholder.png
new file mode 100644 (file)
index 0000000..1456cac
Binary files /dev/null and b/release/plugins/Audio/images/placeholder.png differ
index 4585951e095ed751a4d5ff9a47edbd27a953d088..0b2c0f14b5eee0edb96e9966effe0d95a7896396 100644 (file)
@@ -1,10 +1,10 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.dialog.add("a11yHelp",function(l){var a=l.lang.a11yhelp,n=CKEDITOR.tools.getNextId(),e={8:a.backspace,9:a.tab,13:a.enter,16:a.shift,17:a.ctrl,18:a.alt,19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:a.end,36:a.home,37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:a["delete"],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,
-105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};e[CKEDITOR.ALT]=a.alt;e[CKEDITOR.SHIFT]=a.shift;e[CKEDITOR.CTRL]=a.ctrl;var f=[CKEDITOR.ALT,CKEDITOR.SHIFT,
-CKEDITOR.CTRL],p=/\$\{(.*?)\}/g,t=function(){var a=l.keystrokeHandler.keystrokes,g={},c;for(c in a)g[a[c]]=c;return function(a,c){var b;if(g[c]){b=g[c];for(var h,k,m=[],d=0;d<f.length;d++)k=f[d],h=b/f[d],1<h&&2>=h&&(b-=k,m.push(e[k]));m.push(e[b]||String.fromCharCode(b));b=m.join("+")}else b=a;return b}}();return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:l.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},
-html:function(){for(var e='\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+n+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+n+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",g=[],c=a.legend,l=c.length,f=0;f<l;f++){for(var b=c[f],h=[],k=b.items,m=k.length,d=0;d<m;d++){var q=k[d],r=q.legend.replace(p,t);r.match(p)||h.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",q.name).replace("%2",r))}g.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",
-b.name).replace("%2",h.join("")))}return e.replace("%1",g.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
+CKEDITOR.dialog.add("a11yHelp",function(e){var a=e.lang.a11yhelp,b=e.lang.common.keyboard,q=CKEDITOR.tools.getNextId(),d={8:b[8],9:a.tab,13:b[13],16:b[16],17:b[17],18:b[18],19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:b[35],36:b[36],37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:b[46],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,
+105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};d[CKEDITOR.ALT]=b[18];d[CKEDITOR.SHIFT]=b[16];d[CKEDITOR.CTRL]=CKEDITOR.env.mac?b[224]:b[17];var k=
+[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],r=/\$\{(.*?)\}/g,t=function(a,b){var c=e.getCommandKeystroke(b);if(c){for(var l,f,h=[],g=0;g<k.length;g++)f=k[g],l=c/k[g],1<l&&2>=l&&(c-=f,h.push(d[f]));h.push(d[c]||String.fromCharCode(c));c=h.join("+")}else c=a;return c};return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:e.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},html:function(){for(var b=
+'\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+q+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+q+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",d=[],c=a.legend,l=c.length,f=0;f<l;f++){for(var h=c[f],g=[],e=h.items,k=e.length,p=0;p<k;p++){var m=e[p],n=CKEDITOR.env.edge&&m.legendEdge?m.legendEdge:m.legend,n=n.replace(r,t);n.match(r)||g.push("\x3cdt\x3e%1\x3c/dt\x3e\x3cdd\x3e%2\x3c/dd\x3e".replace("%1",m.name).replace("%2",
+n))}d.push("\x3ch1\x3e%1\x3c/h1\x3e\x3cdl\x3e%2\x3c/dl\x3e".replace("%1",h.name).replace("%2",g.join("")))}return b.replace("%1",d.join(""))}()+'\x3cstyle type\x3d"text/css"\x3e.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}\x3c/style\x3e'}]}],
 buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
index 4c590975c57c61ff590df1d56d8491b3ab3db821..28e8dae970fde420669cda92f89b97f1fe09ca83 100644 (file)
@@ -1,4 +1,4 @@
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 \r
 cs.js      Found: 30 Missing: 0\r
index f33c0bbee300321a3ea19ba080efacc8ffa9aed4..a56a5cb98133f08943afd2b7cb5df59f5d975b6c 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","af",{title:"Toeganglikheid instruksies",contents:"Hulp inhoud. Druk ESC om toe te maak.",legend:[{name:"Algemeen",items:[{name:"Bewerker balk",legend:"Druk ${toolbarFocus} om op die werkbalk te land. Beweeg na die volgende en voorige wekrbalkgroep met TAB and SHIFT+TAB. Beweeg na die volgende en voorige werkbalkknop met die regter of linker pyl. Druk SPASIE of ENTER om die knop te bevestig."},{name:"Bewerker dialoog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Bewerkerinhoudmenu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",end:"Einde",home:"Tuis",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg","delete":"Verwyder",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pouse",capslock:"Hoofletterslot",escape:"Ontsnap",pageUp:"Blaaiop",pageDown:"Blaaiaf",leftArrow:"Linkspyl",upArrow:"Oppyl",rightArrow:"Regterpyl",downArrow:"Afpyl",insert:"Toevoeg",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Nommerblok 0",numpad1:"Nommerblok 1",
 numpad2:"Nommerblok 2",numpad3:"Nommerblok 3",numpad4:"Nommerblok 4",numpad5:"Nommerblok 5",numpad6:"Nommerblok 6",numpad7:"Nommerblok 7",numpad8:"Nommerblok 8",numpad9:"Nommerblok 9",multiply:"Maal",add:"Plus",subtract:"Minus",decimalPoint:"Desimaalepunt",divide:"Gedeeldeur",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nommervergrendel",scrollLock:"Rolvergrendel",semiColon:"Kommapunt",equalSign:"Isgelykaan",comma:"Komma",dash:"Koppelteken",
 period:"Punt",forwardSlash:"Skuinsstreep",graveAccent:"Aksentteken",openBracket:"Oopblokhakkie",backSlash:"Trustreep",closeBracket:"Toeblokhakkie",singleQuote:"Enkelaanhaalingsteken"});
\ No newline at end of file
index 724decb565e6d68b5a16c38992c55fa576f050ba..7326021fa571e97c77af2113931cc0d3c2070f36 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عام",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"إضافة",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"تقسيم",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"فاصلة",dash:"Dash",period:"نقطة",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/release/plugins/a11yhelp/dialogs/lang/az.js b/release/plugins/a11yhelp/dialogs/lang/az.js
new file mode 100644 (file)
index 0000000..3298732
--- /dev/null
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","az",{title:"Əlillərə dəstək üzrə təlimat",contents:"Kömək. Pəncərəni bağlamaq üçün ESC basın.",legend:[{name:"Əsas",items:[{name:"Düzəliş edənin alətlər çubuğu",legend:"Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz."},{name:"Redaktorun pəncərəsi",legend:"Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz."},
+{name:"Redaktorun seçimlərin menyusu",legend:"Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın."},{name:"Düzəliş edənin siyahı qutusu",legend:"Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın."},
+{name:"Redaktor elementin cığır paneli",legend:"Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur."}]},{name:"Əmrlər",items:[{name:"Əmri geri qaytar",legend:"${undo} basın"},{name:"Geri əmri",legend:"${redo} basın"},{name:"Qalın əmri",legend:"${bold}  basın"},{name:"Kursiv əmri",legend:"${italic} basın"},{name:"Altdan xətt əmri",legend:"${underline} basın"},
+{name:"Link əmri",legend:"${link} basın"},{name:"Paneli gizlət əmri",legend:"${toolbarCollapse} basın"},{name:"Əvvəlki fokus sahəsi seç əmrı",legend:"Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},{name:"Növbəti fokus sahəsi seç əmrı",legend:"Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın."},
+{name:"Hərtərəfli Kömək",legend:"${a11yHelp} basın"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Sola ox işarəsi",upArrow:"Yuxarı ox işarəsi",rightArrow:"Sağa ox işarəsi",downArrow:"Aşağı ox işarəsi",insert:"Insert",leftWindowKey:"Soldaki Windows düyməsi",rightWindowKey:"Sağdaki Windows düyməsi",selectKey:"Düyməni seçin",
+numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vurma",add:"Əlavə et",subtract:"Çıxma",decimalPoint:"Onluq kəsri tam ədəddən ayıran nöqtə",divide:"Bölüşdürmə",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Nöqtəli verqül",equalSign:"Barəbərlik işarəsi",
+comma:"Vergül",dash:"Defis",period:"Nöqtə",forwardSlash:"Çəp xətt",graveAccent:"Vurğu işarəsi",openBracket:"Açılan mötərizə",backSlash:"Tərs çəpəki xətt",closeBracket:"Bağlanan mötərizə",singleQuote:"Tək dırnaq"});
\ No newline at end of file
index d4a9f93caba3109fed9fbffa5959911ef6acb869..6f5d04439a4207fd3cc930059f50bd3efd60b0e6 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Общо",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 11f77ba9350639e52d6d7b80bcacd8d46d2f3fad..d48552ad65519b0ccaed040976fc8445e5a7e9e4 100644 (file)
@@ -1,12 +1,13 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de diàleg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Premi ${toolbarFocus} per desplaçar-se per la barra d'eines. Vagi en el següent i anterior grup de barra d'eines amb TAB i SHIFT+TAB. Vagi en el següent i anterior botó de la barra d'eines amb RIGHT ARROW i LEFT ARROW. Premi SPACE o ENTER per activar el botó de la barra d'eines."},
-{name:"Editor de quadre de diàleg",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},
-{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},
-{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},
-{name:"Ordre per accedir al següent espai enfocat",legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"}]}],backspace:"Retrocés",tab:"Tabulació",enter:"Intro",shift:"Majúscules",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",
-pageUp:"Pàgina Amunt",pageDown:"Pàgina Avall",end:"Fi",home:"Inici",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir","delete":"Eliminar",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",
-numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",
-backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",singleQuote:"Cometa Simple"});
\ No newline at end of file
+{name:"Editor de quadre de diàleg",legend:"Dins d'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament."},
+{name:"Editor de menú contextual",legend:"Premi ${contextMenu} o APPLICATION KEY per obrir el menú contextual. Després desplacis a la següent opció del menú amb TAB o DOWN ARROW. Desplacis a l'anterior opció amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció del menú. Obri el submenú de l'actual opció utilitzant SPACE o ENTER o RIGHT ARROW. Pot tornar a l'opció del menú pare amb ESC o LEFT ARROW. Tanqui el menú contextual amb ESC."},{name:"Editor de caixa de llista",legend:"Dins d'un quadre de llista, desplacis al següent element de la llista amb TAB o DOWN ARROW. Desplacis a l'anterior element de la llista amb SHIFT+TAB o UP ARROW. Premi SPACE o ENTER per seleccionar l'opció de la llista. Premi ESC per tancar el quadre de llista."},
+{name:"Editor de barra de ruta de l'element",legend:"Premi ${elementsPathFocus} per anar als elements de la barra de ruta. Desplacis al botó de l'element següent amb TAB o RIGHT ARROW. Desplacis a l'anterior botó amb SHIFT+TAB o LEFT ARROW. Premi SPACE o ENTER per seleccionar l'element a l'editor."}]},{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Premi ${bold}"},{name:"Ordre cursiva",legend:"Premi ${italic}"},
+{name:"Ordre subratllat",legend:"Premi ${underline}"},{name:"Ordre enllaç",legend:"Premi ${link}"},{name:"Ordre amagar barra d'eines",legend:"Premi ${toolbarCollapse}"},{name:"Ordre per accedir a l'anterior espai enfocat",legend:"Premi ${accessPreviousSpace} per accedir a l'enfocament d'espai més proper inabastable abans del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ordre per accedir al següent espai enfocat",
+legend:"Premi ${accessNextSpace} per accedir a l'enfocament d'espai més proper inabastable després del símbol d'intercalació, per exemple: dos elements HR adjacents. Repetiu la combinació de tecles per arribar a enfocaments d'espais distants."},{name:"Ajuda d'accessibilitat",legend:"Premi ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulació",pause:"Pausa",capslock:"Bloqueig de majúscules",escape:"Escape",pageUp:"Pàgina Amunt",
+pageDown:"Pàgina Avall",leftArrow:"Fletxa Esquerra",upArrow:"Fletxa Amunt",rightArrow:"Fletxa Dreta",downArrow:"Fletxa Avall",insert:"Inserir",leftWindowKey:"Tecla Windows Esquerra",rightWindowKey:"Tecla Windows Dreta",selectKey:"Tecla Seleccionar",numpad0:"Teclat Numèric 0",numpad1:"Teclat Numèric 1",numpad2:"Teclat Numèric 2",numpad3:"Teclat Numèric 3",numpad4:"Teclat Numèric 4",numpad5:"Teclat Numèric 5",numpad6:"Teclat Numèric 6",numpad7:"Teclat Numèric 7",numpad8:"Teclat Numèric 8",numpad9:"Teclat Numèric 9",
+multiply:"Multiplicació",add:"Suma",subtract:"Resta",decimalPoint:"Punt Decimal",divide:"Divisió",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloqueig Teclat Numèric",scrollLock:"Bloqueig de Desplaçament",semiColon:"Punt i Coma",equalSign:"Símbol Igual",comma:"Coma",dash:"Guió",period:"Punt",forwardSlash:"Barra Diagonal",graveAccent:"Accent Obert",openBracket:"Claudàtor Obert",backSlash:"Barra Invertida",closeBracket:"Claudàtor Tancat",
+singleQuote:"Cometa Simple"});
\ No newline at end of file
index 88a393c6a8b9e67996033f8c6f28470be0a0e957..3c4e5956a3f46d511e67245e288d3b666c1a9e33 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro přístupnost",contents:"Obsah nápovědy. Pro uzavření tohoto dialogu stiskněte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"Stiskněte${toolbarFocus} k procházení panelu nástrojů. Přejděte na další a předchozí skupiny pomocí TAB a SHIFT+TAB. Přechod na další a předchozí tlačítko panelu nástrojů je pomocí ŠIPKA VPRAVO nebo ŠIPKA VLEVO. Stisknutím mezerníku nebo klávesy ENTER tlačítko aktivujete."},{name:"Dialogové okno editoru",
 legend:"Uvnitř dialogového okna stiskněte TAB pro přesunutí na další prvek okna, stiskněte SHIFT+TAB pro přesun na předchozí prvek okna, stiskněte ENTER pro odeslání dialogu, stiskněte ESC pro jeho zrušení. Pro dialogová okna, která mají mnoho karet stiskněte ALT+F10 pro zaměření seznamu karet, nebo TAB, pro posun podle pořadí karet.Při zaměření seznamu karet se můžete jimi posouvat pomocí ŠIPKY VPRAVO a VLEVO."},{name:"Kontextové menu editoru",legend:"Stiskněte ${contextMenu} nebo klávesu APPLICATION k otevření kontextového menu. Pak se přesuňte na další možnost menu pomocí TAB nebo ŠIPKY DOLŮ. Přesuňte se na předchozí možnost pomocí  SHIFT+TAB nebo ŠIPKY NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti menu. Podmenu současné možnosti otevřete pomocí MEZERNÍKU nebo ENTER či ŠIPKY DOLEVA. Kontextové menu uzavřete stiskem ESC."},
 {name:"Rámeček seznamu editoru",legend:"Uvnitř rámečku seznamu se přesunete na další položku menu pomocí TAB nebo ŠIPKA DOLŮ. Na předchozí položku se přesunete SHIFT+TAB nebo ŠIPKA NAHORU. Stiskněte MEZERNÍK nebo ENTER pro zvolení možnosti seznamu. Stiskněte ESC pro uzavření seznamu."},{name:"Lišta cesty prvku v editoru",legend:"Stiskněte ${elementsPathFocus} pro procházení lišty cesty prvku. Na další tlačítko prvku se přesunete pomocí TAB nebo ŠIPKA VPRAVO. Na předchozí tlačítko se přesunete pomocí SHIFT+TAB nebo ŠIPKA VLEVO. Stiskněte MEZERNÍK nebo ENTER pro vybrání prvku v editoru."}]},
 {name:"Příkazy",items:[{name:" Příkaz Zpět",legend:"Stiskněte ${undo}"},{name:" Příkaz Znovu",legend:"Stiskněte ${redo}"},{name:" Příkaz Tučné",legend:"Stiskněte ${bold}"},{name:" Příkaz Kurzíva",legend:"Stiskněte ${italic}"},{name:" Příkaz Podtržení",legend:"Stiskněte ${underline}"},{name:" Příkaz Odkaz",legend:"Stiskněte ${link}"},{name:" Příkaz Skrýt panel nástrojů",legend:"Stiskněte ${toolbarCollapse}"},{name:"Příkaz pro přístup k předchozímu prostoru zaměření",legend:"Stiskněte ${accessPreviousSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření před stříškou, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},
-{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tabulátor",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pauza",capslock:"Caps lock",escape:"Escape",pageUp:"Stránka nahoru",
-pageDown:"Stránka dolů",end:"Konec",home:"Domů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit","delete":"Smazat",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
+{name:"Příkaz pro přístup k dalšímu prostoru zaměření",legend:"Stiskněte ${accessNextSpace} pro přístup k nejbližšímu nedosažitelnému prostoru zaměření po stříšce, například: dva přilehlé prvky HR. Pro dosažení vzdálených prostorů zaměření tuto kombinaci kláves opakujte."},{name:" Nápověda přístupnosti",legend:"Stiskněte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulátor",pause:"Pauza",capslock:"Caps lock",
+escape:"Escape",pageUp:"Stránka nahoru",pageDown:"Stránka dolů",leftArrow:"Šipka vlevo",upArrow:"Šipka nahoru",rightArrow:"Šipka vpravo",downArrow:"Šipka dolů",insert:"Vložit",leftWindowKey:"Levá klávesa Windows",rightWindowKey:"Pravá klávesa Windows",selectKey:"Vyberte klávesu",numpad0:"Numerická klávesa 0",numpad1:"Numerická klávesa 1",numpad2:"Numerická klávesa 2",numpad3:"Numerická klávesa 3",numpad4:"Numerická klávesa 4",numpad5:"Numerická klávesa 5",numpad6:"Numerická klávesa 6",numpad7:"Numerická klávesa 7",
 numpad8:"Numerická klávesa 8",numpad9:"Numerická klávesa 9",multiply:"Numerická klávesa násobení",add:"Přidat",subtract:"Numerická klávesa odečítání",decimalPoint:"Desetinná tečka",divide:"Numerická klávesa dělení",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num lock",scrollLock:"Scroll lock",semiColon:"Středník",equalSign:"Rovnítko",comma:"Čárka",dash:"Pomlčka",period:"Tečka",forwardSlash:"Lomítko",graveAccent:"Přízvuk",openBracket:"Otevřená hranatá závorka",
 backSlash:"Obrácené lomítko",closeBracket:"Uzavřená hranatá závorka",singleQuote:"Jednoduchá uvozovka"});
\ No newline at end of file
index 97fc7117cd1ff6c0b1c1cf23e3a7cbc281b9b7b5..e89739a5c957b419938d37a90e74d7aafd06f336 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT+TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT+TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."},
 {name:"Blwch Rhestr y Golygydd",legend:"Tu mewn y blwch rhestr, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT+TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch ${elementsPathFocus} i fynd i'r bar llwybr elfennau. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT+TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]},
 {name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:"Myned i orchymyn bwlch ffocws blaenorol",legend:"Pwyswch ${accessPreviousSpace} i fyned i'r \"blwch ffocws sydd methu ei gyrraedd\" cyn y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. AIladroddwch y cyfuniad allwedd i gyrraedd bylchau ffocws pell."},
-{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:"Ewch i'r gorchymyn blwch ffocws nesaf",legend:"Pwyswch ${accessNextSpace} i fyned i'r blwch ffocws agosaf nad oes modd ei gyrraedd ar ôl y caret, er enghraifft: dwy elfen HR drws nesaf i'w gilydd. Ailadroddwch y cyfuniad allwedd i gyrraedd blychau ffocws pell."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
 divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 70bebb0a2d434dde81fdb151341b5a1502ae0a1a..6b5107ba91bbf1486df64ce86db75a307e8043eb 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","da",{title:"Tilgængelighedsinstrukser",contents:"Onlinehjælp. For at lukke dette vindue klik ESC",legend:[{name:"Generelt",items:[{name:"Editor værktøjslinje",legend:"Tryk ${toolbarFocus} for at navigere til værktøjslinjen. Flyt til næste eller forrige værktøjsline gruppe ved hjælp af TAB eller SHIFT+TAB. Flyt til næste eller forrige værktøjslinje knap med venstre- eller højre piltast. Tryk på SPACE eller ENTER for at aktivere værktøjslinje knappen."},{name:"Editor dialogboks",
-legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen.\r\nNår en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
-{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
-{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:" Toolbar Collapse command",legend:"Klik ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Venstre pil",
-upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert","delete":"Delete",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",
-f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"});
\ No newline at end of file
+legend:"Inde i en dialogboks kan du, trykke på TAB for at navigere til næste element, trykke på SHIFT+TAB for at navigere til forrige element, trykke på ENTER for at afsende eller trykke på ESC for at lukke dialogboksen.\r\nNår en dialogboks har flere faner, fanelisten kan tilgås med ALT+F10 eller med TAB. Hvis fanelisten er i fokus kan du skifte til næste eller forrige tab, med højre- og venstre piltast."},{name:"Redaktør kontekstmenu",legend:"Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC."},
+{name:"Redaktør listeboks",legend:"Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen."},{name:"Redaktør elementsti-bar",legend:"Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren."}]},
+{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:"Fed kommando",legend:"Klik ${bold}"},{name:"Kursiv kommando",legend:"Klik ${italic}"},{name:"Understregnings kommando",legend:"Klik ${underline}"},{name:"Link kommando",legend:"Klik ${link}"},{name:"Klap værktøjslinje sammen kommando ",legend:"Klik ${toolbarCollapse}"},{name:"Adgang til forrige fokusområde kommando",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Tilgængelighedshjælp",legend:"Kilk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Venstre pil",upArrow:"Pil op",rightArrow:"Højre pil",downArrow:"Pil ned",insert:"Insert",leftWindowKey:"Venstre Windows tast",rightWindowKey:"Højre Windows tast",selectKey:"Select-knap",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Gange",add:"Plus",subtract:"Minus",decimalPoint:"Komma",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",
+f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lighedstegn",comma:"Komma",dash:"Bindestreg",period:"Punktum",forwardSlash:"Skråstreg",graveAccent:"Accent grave",openBracket:"Start klamme",backSlash:"Omvendt skråstreg",closeBracket:"Slut klamme",singleQuote:"Enkelt citationstegn"});
\ No newline at end of file
index 6bdca780673c156b12b6eee4fe3359e9c9e1c14a..d4f5e49212d5def4ef6262a6c00cfd64c4853936 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","de-ch",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
 {name:"Editordialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor-Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},
 {name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},
 {name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace}  auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
-{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"}]}],backspace:"Rücktaste",tab:"Tab",enter:"Eingabe",shift:"Umschalt",ctrl:"Strg",alt:"Alt",pause:"Pause",capslock:"Feststell",escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",
-end:"Ende",home:"Pos1",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen","delete":"Entfernen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
-numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",
-closeBracket:"Schliessende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
+{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",escape:"Escape",
+pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",numpad9:"Ziffernblock 9",
+multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",closeBracket:"Schliessende eckige Klammer",
+singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
index 24d782a9f718e01b369d4c118a3f53db8e7c3c7f..66891fc6c35a403be39e59a9b1e8e117e5027dac 100644 (file)
@@ -1,12 +1,13 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","de",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste ESC drücken.",legend:[{name:"Allgemein",items:[{name:"Editorwerkzeugleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT+TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
-{name:"Editordialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor-Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},
-{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},
-{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace}  auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
-{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"}]}],backspace:"Rücktaste",tab:"Tab",enter:"Eingabe",shift:"Umschalt",ctrl:"Strg",alt:"Alt",pause:"Pause",capslock:"Feststell",escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",
-end:"Ende",home:"Pos1",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen","delete":"Entfernen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
+{name:"Editordialog",legend:"Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden."},{name:"Editor-Kontextmenü",
+legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor-Listenbox",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der SHIFT+TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},
+{name:"Editor-Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT+TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Rückgängig-Befehl",legend:"Drücken Sie ${undo}"},{name:"Wiederherstellen-Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift-Befehl",
+legend:"Drücken Sie ${bold}"},{name:"Kursiv-Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichen-Befehl",legend:"Drücken Sie ${underline}"},{name:"Link-Befehl",legend:"Drücken Sie ${link}"},{name:"Werkzeugleiste einklappen-Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:"Zugang bisheriger Fokussierung Raumbefehl ",legend:"Drücken Sie ${accessPreviousSpace}  auf den am nächsten nicht erreichbar Fokus-Abstand vor die Einfügemarke zugreifen: zwei benachbarte HR-Elemente. Wiederholen Sie die Tastenkombination um entfernte Fokusräume zu erreichen. "},
+{name:"Zugang nächster Schwerpunkt Raumbefehl ",legend:"Drücken Sie $ { accessNextSpace }, um den nächsten unerreichbar Fokus Leerzeichen nach dem Cursor zum Beispiel auf: zwei benachbarten HR Elemente. Wiederholen Sie die Tastenkombination zum fernen Fokus Bereiche zu erreichen. "},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"},{name:"Einfügen als unformatierter Text. ",legend:"Drücke ${pastetext}",legendEdge:"Drücke ${pastetext} und anschließend ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Feststell",
+escape:"Escape",pageUp:"Bild auf",pageDown:"Bild ab",leftArrow:"Linke Pfeiltaste",upArrow:"Obere Pfeiltaste",rightArrow:"Rechte Pfeiltaste",downArrow:"Untere Pfeiltaste",insert:"Einfügen",leftWindowKey:"Linke Windowstaste",rightWindowKey:"Rechte Windowstaste",selectKey:"Taste auswählen",numpad0:"Ziffernblock 0",numpad1:"Ziffernblock 1",numpad2:"Ziffernblock 2",numpad3:"Ziffernblock 3",numpad4:"Ziffernblock 4",numpad5:"Ziffernblock 5",numpad6:"Ziffernblock 6",numpad7:"Ziffernblock 7",numpad8:"Ziffernblock 8",
 numpad9:"Ziffernblock 9",multiply:"Multiplizieren",add:"Addieren",subtract:"Subtrahieren",decimalPoint:"Punkt",divide:"Dividieren",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Ziffernblock feststellen",scrollLock:"Rollen",semiColon:"Semikolon",equalSign:"Gleichheitszeichen",comma:"Komma",dash:"Bindestrich",period:"Punkt",forwardSlash:"Schrägstrich",graveAccent:"Gravis",openBracket:"Öffnende eckige Klammer",backSlash:"Rückwärtsgewandter Schrägstrich",
 closeBracket:"Schließende eckige Klammer",singleQuote:"Einfaches Anführungszeichen"});
\ No newline at end of file
index ae73cabcd7099f5a36f55a51d1cd2749d885d35f..9eeb0b6c254fffc21543e25221a61776d9f04369 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","el",{title:"Οδηγίες Προσβασιμότητας",contents:"Περιεχόμενα Βοήθειας. Πατήστε ESC για κλείσιμο.",legend:[{name:"Γενικά",items:[{name:"Εργαλειοθήκη Επεξεργαστή",legend:"Πατήστε ${toolbarFocus} για να περιηγηθείτε στην γραμμή εργαλείων. Μετακινηθείτε ανάμεσα στις ομάδες της γραμμής εργαλείων με TAB και SHIFT+TAB. Μετακινηθείτε ανάμεσα στα κουμπιά εργαλείων με το ΔΕΞΙ ή ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να ενεργοποιήσετε το ενεργό κουμπί εργαλείου."},{name:"Παράθυρο Διαλόγου Επεξεργαστή",
 legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Αναδυόμενο Μενού Επεξεργαστή",legend:"Πατήστε ${contextMenu} ή APPLICATION KEY για να ανοίξετε το αναδυόμενο μενού. Μετά μετακινηθείτε στην επόμενη επιλογή του μενού με  TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στην προηγούμενη επιλογή με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξτε το τρέχων στοιχείο. Ανοίξτε το αναδυόμενο μενού της τρέχουσας επιλογής με ΔΙΑΣΤΗΜΑ ή ENTER ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μεταβείτε πίσω στο αρχικό στοιχείο μενού με το ESC ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Κλείστε το αναδυόμενο μενού με ESC."},
 {name:"Κουτί Λίστας Επεξεργαστών",legend:"Μέσα σε ένα κουτί λίστας, μετακινηθείτε στο επόμενο στοιχείο με TAB ή ΚΑΤΩ ΒΕΛΑΚΙ. Μετακινηθείτε στο προηγούμενο στοιχείο με SHIFT+TAB ή το ΠΑΝΩ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε ένα στοιχείο. Πατήστε ESC για να κλείσετε το κουτί της λίστας."},{name:"Μπάρα Διαδρομών Στοιχείων Επεξεργαστή",legend:"Πατήστε ${elementsPathFocus} για να περιηγηθείτε στην μπάρα διαδρομών στοιχείων του επεξεργαστή. Μετακινηθείτε στο κουμπί του επόμενου στοιχείου με το TAB ή το ΔΕΞΙ ΒΕΛΑΚΙ. Μετακινηθείτε στο κουμπί του προηγούμενου στοιχείου με το SHIFT+TAB ή το ΑΡΙΣΤΕΡΟ ΒΕΛΑΚΙ. Πατήστε ΔΙΑΣΤΗΜΑ ή ENTER για να επιλέξετε το στοιχείο στον επεξεργαστή."}]},
 {name:"Εντολές",items:[{name:"Εντολή αναίρεσης",legend:"Πατήστε ${undo}"},{name:"Εντολή επανάληψης",legend:"Πατήστε ${redo}"},{name:"Εντολή έντονης γραφής",legend:"Πατήστε ${bold}"},{name:"Εντολή πλάγιας γραφής",legend:"Πατήστε ${italic}"},{name:"Εντολή υπογράμμισης",legend:"Πατήστε ${underline}"},{name:"Εντολή συνδέσμου",legend:"Πατήστε ${link}"},{name:"Εντολή Σύμπτηξης Εργαλειοθήκης",legend:"Πατήστε ${toolbarCollapse}"},{name:"Πρόσβαση στην προηγούμενη εντολή του χώρου εστίασης ",legend:"Πατήστε ${accessPreviousSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης πριν το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για να φθάσετε στους χώρους μακρινής εστίασης. "},
-{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ","delete":"Delete",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6",
+{name:"Πρόσβαση στην επόμενη εντολή του χώρου εστίασης",legend:"Πατήστε ${accessNextSpace} για να έχετε πρόσβαση στον πιο κοντινό χώρο εστίασης μετά το δρομέα, για παράδειγμα: δύο παρακείμενα στοιχεία ΥΕ. Επαναλάβετε το συνδυασμό πλήκτρων για τους χώρους μακρινής εστίασης. "},{name:"Βοήθεια Προσβασιμότητας",legend:"Πατήστε ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Αριστερό Βέλος",upArrow:"Πάνω Βέλος",rightArrow:"Δεξί Βέλος",downArrow:"Κάτω Βέλος",insert:"Insert ",leftWindowKey:"Αριστερό Πλήκτρο Windows",rightWindowKey:"Δεξί Πλήκτρο Windows",selectKey:"Πλήκτρο Select",numpad0:"Αριθμητικό πληκτρολόγιο 0",numpad1:"Αριθμητικό Πληκτρολόγιο 1",numpad2:"Αριθμητικό πληκτρολόγιο 2",numpad3:"Αριθμητικό πληκτρολόγιο 3",numpad4:"Αριθμητικό πληκτρολόγιο 4",numpad5:"Αριθμητικό πληκτρολόγιο 5",numpad6:"Αριθμητικό πληκτρολόγιο 6",
 numpad7:"Αριθμητικό πληκτρολόγιο 7",numpad8:"Αριθμητικό πληκτρολόγιο 8",numpad9:"Αριθμητικό πληκτρολόγιο 9",multiply:"Πολλαπλασιασμός",add:"Πρόσθεση",subtract:"Αφαίρεση",decimalPoint:"Υποδιαστολή",divide:"Διαίρεση",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"6",f7:"7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ερωτηματικό",equalSign:"Σύμβολο Ισότητας",comma:"Κόμμα",dash:"Παύλα",period:"Τελεία",forwardSlash:"Κάθετος",graveAccent:"Βαρεία",openBracket:"Άνοιγμα Παρένθεσης",
 backSlash:"Ανάστροφη Κάθετος",closeBracket:"Κλείσιμο Παρένθεσης",singleQuote:"Απόστροφος"});
\ No newline at end of file
index a5da9379ec029303140aad08f3b394f246e23743..9b0b32de9fb72429b56d7027105007cfedcf3253 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","en-gb",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 3a62e4ad1f3525e5eded13b189e6f1311d3072b4..7b10bafae8b64aa57fbf161c5f83cd01c5205641 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","en",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 8c798a71e026a86cd6244ea09a5153e611b43a6f..426be40683965fbf1c9d5c01d49a337b507c626d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",contents:"Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.",legend:[{name:"Ĝeneralaĵoj",items:[{name:"Ilbreto de la redaktilo",legend:"Premu ${toolbarFocus} por atingi la ilbreton. Moviĝu al la sekva aŭ antaŭa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA+TABA. Moviĝu al la sekva aŭ antaŭa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aŭ la ENENklavon por aktivigi la ilbretbutonon."},
@@ -7,7 +7,6 @@ CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",conten
 {name:"Kunteksta menuo de la redaktilo",legend:"Premu ${contextMenu} aŭ entajpu la KLAVKOMBINAĴON por malfermi la kuntekstan menuon. Poste moviĝu al la sekva opcio de la menuo per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa opcio per la klavoj MAJUSKLGA + TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aŭ la ENENklavo aŭ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aŭ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo."},
 {name:"Fallisto de la redaktilo",legend:"En fallisto, moviĝu al la sekva listelemento per la klavoj TABA aŭ SAGO SUBEN. Moviĝu al la antaŭa listelemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO SUPREN. Premu la SPACETklavon aŭ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon."},{name:"Breto indikanta la vojon al la redaktilelementoj",legend:"Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. Moviĝu al la butono de la sekva elemento per la klavoj TABA aŭ SAGO DEKSTREN. Moviĝu al la butono de la antaŭa elemento per la klavoj MAJUSKLIGA+TABA aŭ SAGO MALDEKSTREN. Premu la SPACETklavon aŭ ENENklavon por selekti la elementon en la redaktilo."}]},
 {name:"Komandoj",items:[{name:"Komando malfari",legend:"Premu ${undo}"},{name:"Komando refari",legend:"Premu ${redo}"},{name:"Komando grasa",legend:"Premu ${bold}"},{name:"Komando kursiva",legend:"Premu ${italic}"},{name:"Komando substreki",legend:"Premu ${underline}"},{name:"Komando ligilo",legend:"Premu ${link}"},{name:"Komando faldi la ilbreton",legend:"Premu ${toolbarCollapse}"},{name:"Komando por atingi la antaŭan fokusan spacon",legend:"Press ${accessPreviousSpace} por atingi la plej proksiman neatingeblan fokusan spacon antaŭ la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinaĵon por atingi malproksimajn fokusajn spacojn."},
-{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"}]}],backspace:"Retropaŝo",tab:"Tabo",enter:"Enigi",shift:"Registrumo",ctrl:"Stirklavo",alt:"Alt-klavo",pause:"Paŭzo",capslock:"Majuskla baskulo",escape:"Eskapa klavo",pageUp:"Antaŭa Paĝo",
-pageDown:"Sekva Paĝo",end:"Fino",home:"Hejmo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti","delete":"Forigi",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",
-numpad8:"Nombra Klavaro 8",numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",
-singleQuote:"Citilo"});
\ No newline at end of file
+{name:"Komando por atingi la sekvan fokusan spacon",legend:"Press ${accessNextSpace} por atingi la plej proksiman neatingeblan fokusan spacon post la kursoro, ekzemple : du kuntuŝiĝajn HR elementojn. Ripetu la klavkombinajôn por atingi malproksimajn fokusajn spacojn"},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabo",pause:"Paŭzo",capslock:"Majuskla baskulo",escape:"Eskapa klavo",
+pageUp:"Antaŭa Paĝo",pageDown:"Sekva Paĝo",leftArrow:"Sago Maldekstren",upArrow:"Sago Supren",rightArrow:"Sago Dekstren",downArrow:"Sago Suben",insert:"Enmeti",leftWindowKey:"Maldekstra Windows-klavo",rightWindowKey:"Dekstra Windows-klavo",selectKey:"Selektklavo",numpad0:"Nombra Klavaro 0",numpad1:"Nombra Klavaro 1",numpad2:"Nombra Klavaro 2",numpad3:"Nombra Klavaro 3",numpad4:"Nombra Klavaro 4",numpad5:"Nombra Klavaro 5",numpad6:"Nombra Klavaro 6",numpad7:"Nombra Klavaro 7",numpad8:"Nombra Klavaro 8",
+numpad9:"Nombra Klavaro 9",multiply:"Obligi",add:"Almeti",subtract:"Subtrahi",decimalPoint:"Dekuma Punkto",divide:"Dividi",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Nombra Baskulo",scrollLock:"Ruluma Baskulo",semiColon:"Punktokomo",equalSign:"Egalsigno",comma:"Komo",dash:"Haltostreko",period:"Punkto",forwardSlash:"Oblikvo",graveAccent:"Malakuto",openBracket:"Malferma Krampo",backSlash:"Retroklino",closeBracket:"Ferma Krampo",singleQuote:"Citilo"});
\ No newline at end of file
diff --git a/release/plugins/a11yhelp/dialogs/lang/es-mx.js b/release/plugins/a11yhelp/dialogs/lang/es-mx.js
new file mode 100644 (file)
index 0000000..784f0e0
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","es-mx",{title:"Instrucciones de accesibilidad",contents:"Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:"Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con  SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas."},
+{name:"Editor de diálogo",legend:"Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente."},
+{name:"Menú contextual del editor",legend:"Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC."},{name:"Editor de cuadro de lista",
+legend:"Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista."},{name:"Barra de ruta del elemento del editor",legend:"Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor."}]},
+{name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando cursiva",legend:"Presiona {italic}"},{name:"Comando subrayado",legend:"Presiona ${underline}"},{name:"Comando enlace",legend:"Presiona ${link}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Acceda al comando de espacio de enfoque anterior",legend:"Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},
+{name:"Acceder al siguiente comando de espacio de enfoque",legend:"Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes."},{name:"Ayuda de accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",
+capslock:"Mayúsculas",escape:"Escape",pageUp:"Página arriba",pageDown:"Página abajo",leftArrow:"Flecha izquierda",upArrow:"Flecha arriba",rightArrow:"Flecha derecha",downArrow:"Flecha abajo",insert:"Insertar",leftWindowKey:"Tecla izquierda de Windows",rightWindowKey:"Tecla derecha de Windows",selectKey:"Tecla de selección",numpad0:"Teclado numérico 0",numpad1:"Teclado numérico 1",numpad2:"Teclado numérico 2",numpad3:"Teclado numérico 3",numpad4:"Teclado numérico 4",numpad5:"Teclado numérico 5",numpad6:"Teclado numérico 6",
+numpad7:"Teclado numérico 7",numpad8:"Teclado numérico 8",numpad9:"Teclado numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Números",scrollLock:"Bloqueo de desplazamiento",semiColon:"punto y coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Espacio",forwardSlash:"Diagonal",graveAccent:"Acento grave",openBracket:"Abrir paréntesis",
+backSlash:"Diagonal invertida",closeBracket:"Cerrar paréntesis",singleQuote:"Comillas simple"});
\ No newline at end of file
index e399793eacb31a0c1a8b1f8498779c203403cc31..b4708ba7e5f0bd020f0d61402ba6a4ef22485212 100644 (file)
@@ -1,12 +1,13 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","es",{title:"Instrucciones de accesibilidad",contents:"Ayuda. Para cerrar presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY+TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'},{name:"Editor de diálogo",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},
-{name:"Lista del Editor",legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]},
+legend:"Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente."},
+{name:"Editor del menú contextual",legend:"Presiona ${contextMenu} o TECLA MENÚ para abrir el menú contextual. Entonces muévete a la siguiente opción del menú con TAB o FLECHA ABAJO. Muévete a la opción previa con SHIFT + TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para seleccionar la opción del menú. Abre el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Regresa al elemento padre del menú con ESC o FLECHA IZQUIERDA. Cierra el menú contextual con ESC."},{name:"Lista del Editor",
+legend:"Dentro de una lista, te mueves al siguiente elemento de la lista con TAB o FLECHA ABAJO. Te mueves al elemento previo de la lista con SHIFT+TAB o FLECHA ARRIBA. Presiona ESPACIO o ENTER para elegir la opción de la lista. Presiona ESC para cerrar la lista."},{name:"Barra de Ruta del Elemento en el Editor",legend:"Presiona ${elementsPathFocus} para navegar a los elementos de la barra de ruta. Te mueves al siguiente elemento botón con TAB o FLECHA DERECHA. Te mueves al botón previo con SHIFT+TAB o FLECHA IZQUIERDA. Presiona ESPACIO o ENTER para seleccionar el elemento en el editor."}]},
 {name:"Comandos",items:[{name:"Comando deshacer",legend:"Presiona ${undo}"},{name:"Comando rehacer",legend:"Presiona ${redo}"},{name:"Comando negrita",legend:"Presiona ${bold}"},{name:"Comando itálica",legend:"Presiona ${italic}"},{name:"Comando subrayar",legend:"Presiona ${underline}"},{name:"Comando liga",legend:"Presiona ${liga}"},{name:"Comando colapsar barra de herramientas",legend:"Presiona ${toolbarCollapse}"},{name:"Comando accesar el anterior espacio de foco",legend:"Presiona ${accessPreviousSpace} para accesar el espacio de foco no disponible más cercano anterior al cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},
-{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"}]}],backspace:"Retroceso",tab:"Tabulador",enter:"Ingresar",shift:"Mayús.",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloq. Mayús.",escape:"Escape",pageUp:"Regresar Página",
-pageDown:"Avanzar Página",end:"Fin",home:"Inicio",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar","delete":"Suprimir",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico",
+{name:"Comando accesar el siguiente spacio de foco",legend:"Presiona ${accessNextSpace} para accesar el espacio de foco no disponible más cercano después del cursor, por ejemplo: dos elementos HR adyacentes. Repite la combinación de teclas para alcanzar espacios de foco distantes."},{name:"Ayuda de Accesibilidad",legend:"Presiona ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Mayús.",
+escape:"Escape",pageUp:"Regresar Página",pageDown:"Avanzar Página",leftArrow:"Flecha Izquierda",upArrow:"Flecha Arriba",rightArrow:"Flecha Derecha",downArrow:"Flecha Abajo",insert:"Insertar",leftWindowKey:"Tecla Windows Izquierda",rightWindowKey:"Tecla Windows Derecha",selectKey:"Tecla de Selección",numpad0:"Tecla 0 del teclado numérico",numpad1:"Tecla 1 del teclado numérico",numpad2:"Tecla 2 del teclado numérico",numpad3:"Tecla 3 del teclado numérico",numpad4:"Tecla 4 del teclado numérico",numpad5:"Tecla 5 del teclado numérico",
 numpad6:"Tecla 6 del teclado numérico",numpad7:"Tecla 7 del teclado numérico",numpad8:"Tecla 8 del teclado numérico",numpad9:"Tecla 9 del teclado numérico",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto Decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Punto y coma",equalSign:"Signo de Igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Diagonal",
 graveAccent:"Acento Grave",openBracket:"Abrir llave",backSlash:"Diagonal Invertida",closeBracket:"Cerrar llave",singleQuote:"Comillas simples"});
\ No newline at end of file
index 9fded4c88987c7e1a49c8baa7fbf8d9bc7856f41..aa2c79107b6267cfbdff06e25b5d65aed0c35a9a 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","et",{title:"Accessibility Instructions",contents:"Abi sisu. Selle dialoogi sulgemiseks vajuta ESC klahvi.",legend:[{name:"Üldine",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index cfcd553d57cc5506b80491b369b13929ea85f27e..e80d8daad91e90a05aec423d91646ce4a50f7fb2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","eu",{title:"Erabilerraztasunaren argibideak",contents:"Laguntzaren edukiak. Elkarrizketa-koadro hau ixteko sakatu ESC.",legend:[{name:"Orokorra",items:[{name:"Editorearen tresna-barra",legend:"Sakatu ${toolbarFocus} tresna-barrara nabigatzeko. Tresna-barrako aurreko eta hurrengo taldera joateko erabili TAB eta MAIUS+TAB. Tresna-barrako aurreko eta hurrengo botoira joateko erabili ESKUIN-GEZIA eta EZKER-GEZIA. Sakatu ZURIUNEA edo SARTU tresna-barrako botoia aktibatzeko."},
@@ -7,6 +7,6 @@ CKEDITOR.plugins.setLang("a11yhelp","eu",{title:"Erabilerraztasunaren argibideak
 legend:"Sakatu ${contextMenu} edo APLIKAZIO TEKLA testuinguru-menua irekitzeko. Menuko hurrengo aukerara joateko erabili TAB edo BEHERA GEZIA. Aurreko aukerara nabigatzeko erabili MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU menuko aukera hautatzeko. Ireki uneko aukeraren azpi-menua ZURIUNEA edo SARTU edo ESKUIN-GEZIA erabiliz. Menuko aukera gurasora itzultzeko erabili ESC edo EZKER-GEZIA. Testuinguru-menua ixteko sakatu ESC."},{name:"Editorearen zerrenda-koadroa",legend:"Zerrenda-koadro baten barruan, zerrendako hurrengo elementura joateko erabili TAB edo BEHERA GEZIA. Zerrendako aurreko elementura nabigatzeko MAIUS+TAB edo GORA GEZIA. Sakatu ZURIUNEA edo SARTU zerrendako aukera hautatzeko. Sakatu ESC zerrenda-koadroa ixteko."},
 {name:"Editorearen elementuaren bide-barra",legend:"Sakatu ${elementsPathFocus} elementuaren bide-barrara nabigatzeko. Hurrengo elementuaren botoira joateko erabili TAB edo ESKUIN-GEZIA. Aurreko botoira joateko aldiz erabili MAIUS+TAB edo EZKER-GEZIA. Elementua editorean hautatzeko sakatu ZURIUNEA edo SARTU."}]},{name:"Komandoak",items:[{name:"Desegin komandoa",legend:"Sakatu ${undo}"},{name:"Berregin komandoa",legend:"Sakatu ${redo}"},{name:"Lodia komandoa",legend:"Sakatu ${bold}"},{name:"Etzana komandoa",
 legend:"Sakatu ${italic}"},{name:"Azpimarratu komandoa",legend:"Sakatu ${underline}"},{name:"Esteka komandoa",legend:"Sakatu ${link}"},{name:"Tolestu tresna-barra komandoa",legend:"Sakatu ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"}]}],backspace:"Atzera tekla",tab:"Tabuladorea",enter:"Sartu",shift:"Maius",ctrl:"Ktrl",alt:"Alt",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Page Up",pageDown:"Page Down",end:"Buka",home:"Etxea",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu","delete":"Ezabatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla",
+{name:"Erabilerraztasunaren laguntza",legend:"Sakatu ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabuladorea",pause:"Pausatu",capslock:"Blok Maius",escape:"Ihes",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ezker-gezia",upArrow:"Gora gezia",rightArrow:"Eskuin-gezia",downArrow:"Behera gezia",insert:"Txertatu",leftWindowKey:"Ezkerreko Windows tekla",rightWindowKey:"Eskuineko Windows tekla",selectKey:"Hautatu tekla",
 numpad0:"Zenbakizko teklatua 0",numpad1:"Zenbakizko teklatua 1",numpad2:"Zenbakizko teklatua 2",numpad3:"Zenbakizko teklatua 3",numpad4:"Zenbakizko teklatua 4",numpad5:"Zenbakizko teklatua 5",numpad6:"Zenbakizko teklatua 6",numpad7:"Zenbakizko teklatua 7",numpad8:"Zenbakizko teklatua 8",numpad9:"Zenbakizko teklatua 9",multiply:"Biderkatu",add:"Gehitu",subtract:"Kendu",decimalPoint:"Koma hamartarra",divide:"Zatitu",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",
 f12:"F12",numLock:"Blok Zenb",scrollLock:"Blok Korr",semiColon:"Puntu eta koma",equalSign:"Berdin zeinua",comma:"Koma",dash:"Marratxoa",period:"Puntua",forwardSlash:"Barra",graveAccent:"Azentu kamutsa",openBracket:"Parentesia ireki",backSlash:"Alderantzizko barra",closeBracket:"Itxi parentesia",singleQuote:"Komatxo bakuna"});
\ No newline at end of file
index 12eb0352621199c0448a47b2b52d9afd3afd969c..728032685f88b35a4b1e6fb668b189e377c0617f 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","fa",{title:"دستورالعمل‌های دسترسی",contents:"راهنمای فهرست مطالب. برای بستن این کادر محاوره‌ای ESC را فشار دهید.",legend:[{name:"عمومی",items:[{name:"نوار ابزار ویرایشگر",legend:"${toolbarFocus} را برای باز کردن نوار ابزار بفشارید. با کلید Tab و Shift+Tab در مجموعه نوار ابزار بعدی و قبلی حرکت کنید. برای حرکت در کلید نوار ابزار قبلی و بعدی با کلید جهت‌نمای راست و چپ جابجا شوید. کلید Space یا Enter را برای فعال کردن کلید نوار ابزار بفشارید."},{name:"پنجره محاورهای ویرایشگر",
 legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"منوی متنی ویرایشگر",legend:"${contextMenu} یا کلید برنامههای کاربردی را برای باز کردن منوی متن را بفشارید. سپس میتوانید برای حرکت به گزینه بعدی منو با کلید Tab و یا کلید جهتنمای پایین جابجا شوید. حرکت به گزینه قبلی با Shift+Tab یا کلید جهتنمای بالا. فشردن Space یا Enter برای انتخاب یک گزینه از منو. باز کردن زیر شاخه گزینه منو جاری با کلید Space یا Enter و یا کلید جهتنمای راست و چپ. بازگشت به منوی والد با کلید Esc یا کلید جهتنمای چپ. بستن منوی متن با Esc."},
 {name:"جعبه فهرست ویرایشگر",legend:"در داخل جعبه لیست، قلم دوم از اقلام لیست بعدی را با TAB و یا Arrow Down حرکت دهید. انتقال به قلم دوم از اقلام لیست قبلی را با SHIFT + TAB یا UP ARROW. کلید Space یا ENTER را برای انتخاب گزینه لیست بفشارید. کلید ESC را برای بستن جعبه لیست بفشارید."},{name:"ویرایشگر عنصر نوار راه",legend:"برای رفتن به مسیر عناصر ${elementsPathFocus} را بفشارید. حرکت به کلید عنصر بعدی با کلید Tab یا کلید جهت‌نمای راست. برگشت به کلید قبلی با Shift+Tab یا کلید جهت‌نمای چپ. فشردن Space یا Enter برای انتخاب یک عنصر در ویرایشگر."}]},
 {name:"فرمان‌ها",items:[{name:"بازگشت به آخرین فرمان",legend:"فشردن ${undo}"},{name:"انجام مجدد فرمان",legend:"فشردن ${redo}"},{name:"فرمان درشت کردن متن",legend:"فشردن ${bold}"},{name:"فرمان کج کردن متن",legend:"فشردن ${italic}"},{name:"فرمان زیرخطدار کردن متن",legend:"فشردن ${underline}"},{name:"فرمان پیوند دادن",legend:"فشردن ${link}"},{name:"بستن نوار ابزار فرمان",legend:"فشردن ${toolbarCollapse}"},{name:"دسترسی به فرمان محل تمرکز قبلی",legend:"فشردن ${accessPreviousSpace} برای دسترسی به نزدیک‌ترین فضای قابل دسترسی تمرکز قبل از هشتک، برای مثال: دو عنصر مجاور HR -خط افقی-. تکرار کلید ترکیبی برای رسیدن به فضاهای تمرکز از راه دور."},
-{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیک‌ترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال:  دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"}]}],backspace:"عقبگرد",tab:"برگه",enter:"ورود",shift:"تعویض",ctrl:"کنترل",alt:"دگرساز",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین",end:"پایان",home:"خانه",leftArrow:"پیکان چپ",
-upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود","delete":"حذف",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطه‌ی اعشار",divide:"جدا کردن",
+{name:"دسترسی به فضای دستور بعدی",legend:"برای دسترسی به نزدیک‌ترین فضای تمرکز غیر قابل دسترس، ${accessNextSpace} را پس از علامت هشتک بفشارید، برای مثال:  دو عنصر مجاور HR -خط افقی-. کلید ترکیبی را برای رسیدن به فضای تمرکز تکرار کنید."},{name:"راهنمای دسترسی",legend:"فشردن ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"برگه",pause:"توقف",capslock:"Caps Lock",escape:"گریز",pageUp:"صفحه به بالا",pageDown:"صفحه به پایین",
+leftArrow:"پیکان چپ",upArrow:"پیکان بالا",rightArrow:"پیکان راست",downArrow:"پیکان پایین",insert:"ورود",leftWindowKey:"کلید چپ ویندوز",rightWindowKey:"کلید راست ویندوز",selectKey:"انتخاب کلید",numpad0:"کلید شماره 0",numpad1:"کلید شماره 1",numpad2:"کلید شماره 2",numpad3:"کلید شماره 3",numpad4:"کلید شماره 4",numpad5:"کلید شماره 5",numpad6:"کلید شماره 6",numpad7:"کلید شماره 7",numpad8:"کلید شماره 8",numpad9:"کلید شماره 9",multiply:"ضرب",add:"افزودن",subtract:"تفریق",decimalPoint:"نقطه‌ی اعشار",divide:"جدا کردن",
 f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"علامت تساوی",comma:"کاما",dash:"خط تیره",period:"دوره",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 98f8127c3de668539b9f4f4b0fd299b2d623e182..a307eb8e473597da7c3a137e5a708bfa5b985884 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","fi",{title:"Saavutettavuus ohjeet",contents:"Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.",legend:[{name:"Yleinen",items:[{name:"Editorin työkalupalkki",legend:"Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT+TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÄLILYÖNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen."},
 {name:"Editorin dialogi",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorin oheisvalikko",legend:"Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÖS näppäimillä. Paina VÄLILYÖNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÄLILYÖNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella."},
 {name:"Editorin listalaatikko",legend:"Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÖS painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon."},{name:"Editorin elementtipolun palkki",legend:"Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÄLILYÖNTI tai ENTER valitaksesi elementin editorissa."}]},
 {name:"Komennot",items:[{name:"Peruuta komento",legend:"Paina ${undo}"},{name:"Tee uudelleen komento",legend:"Paina ${redo}"},{name:"Lihavoi komento",legend:"Paina ${bold}"},{name:"Kursivoi komento",legend:"Paina ${italic}"},{name:"Alleviivaa komento",legend:"Paina ${underline}"},{name:"Linkki komento",legend:"Paina ${link}"},{name:"Pienennä työkalupalkki komento",legend:"Paina ${toolbarCollapse}"},{name:"Siirry aiempaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin edellä olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},
-{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8",
+{name:"Siirry seuraavaan fokustilaan komento",legend:"Paina ${accessPreviousSpace} siiryäksesi lähimpään kursorin jälkeen olevaan saavuttamattomaan fokustilaan, esimerkiksi: kaksi vierekkäistä HR elementtiä. Toista näppäinyhdistelmää päästäksesi kauempana oleviin fokustiloihin."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numeronäppäimistö 0",numpad1:"Numeronäppäimistö 1",numpad2:"Numeronäppäimistö 2",numpad3:"Numeronäppäimistö 3",numpad4:"Numeronäppäimistö 4",numpad5:"Numeronäppäimistö 5",numpad6:"Numeronäppäimistö 6",numpad7:"Numeronäppäimistö 7",numpad8:"Numeronäppäimistö 8",
 numpad9:"Numeronäppäimistö 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puolipiste",equalSign:"Equal Sign",comma:"Pilkku",dash:"Dash",period:"Piste",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index f1b05e890075c6326bed254f125929251e9f7843..564a8b2f57dbd0e12d481909edf48597a04fba65 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","fo",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Falda",add:"Pluss",subtract:"Frádráttar",decimalPoint:"Decimal Point",divide:"Býta",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Javnatekn",comma:"Komma",dash:"Dash",period:"Punktum",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 888804be6f538b20577ac45253e57b49699db84c..4f25ec39e647e8728c8f28e18d0109bf6abd35a2 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","fr-ca",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide.  Pour fermer cette fenêtre, appuyez sur ESC.",legend:[{name:"Général",items:[{name:"Barre d'outil de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches TAB et SHIFT+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour activer le bouton de barre d'outils."},
 {name:"Dialogue de l'éditeur",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTREE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC."},
 {name:"Menu déroulant de l'éditeur",legend:"A l'intérieur d'une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches SHIFT+TAB ou FLECHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de léditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'élément dans l'éditeur."}]},
 {name:"Commandes",items:[{name:"Annuler",legend:"Appuyer sur ${undo}"},{name:"Refaire",legend:"Appuyer sur ${redo}"},{name:"Gras",legend:"Appuyer sur ${bold}"},{name:"Italique",legend:"Appuyer sur ${italic}"},{name:"Souligné",legend:"Appuyer sur ${underline}"},{name:"Lien",legend:"Appuyer sur ${link}"},{name:"Enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à l'objet de focus précédent",legend:"Appuyer ${accessPreviousSpace} pour accéder au prochain espace disponible avant le curseur, par exemple: deux éléments HR adjacents.  Répéter la combinaison pour joindre les éléments d'espaces distantes."},
-{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents.  Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",
-leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",
-f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Accéder au prochain objet de focus",legend:"Appuyer ${accessNextSpace} pour accéder au prochain espace disponible après le curseur, par exemple: deux éléments HR adjacents.  Répéter la combinaison pour joindre les éléments d'espaces distantes."},{name:"Aide d'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 8a734d509665d4c8f19223de0fc09d86673dd3be..b56e5b15693fc0367c8395607a29de45146ee4a0 100644 (file)
@@ -1,12 +1,13 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRÉE pour activer le bouton de barre d'outils."},
-{name:"Dialogue de l'éditeur",legend:"Dans un dialogue, appuyer sur TAB pour aller à l'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement."},{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'option précédente avec les touches  MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTRÉE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP."},
-{name:"Zone de liste de l'éditeur",legend:"Dans la liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de l'éditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTRÉE pour sélectionner l'élément dans l'éditeur."}]},
-{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Refaire la commande",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Accéder à la précédente commande d'espace de mise au point",
-legend:"Appuyez sur ${accessPreviousSpace} pour accéder à l'espace hors d'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants."},{name:"Accès à la prochaine commande de l'espace de mise au point",legend:"Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants."},
-{name:" Aide Accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}],backspace:"Retour arrière",tab:"Tabulation",enter:"Entrée",shift:"Majuscule",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page inférieure",end:"Fin",home:"Retour",leftArrow:"Flèche gauche",upArrow:"Flèche haute",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Insertion","delete":"Supprimer",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
-selectKey:"Touche menu",numpad0:"Pavé numérique 0",numpad1:"Pavé numérique 1",numpad2:"Pavé numérique 2",numpad3:"Pavé numérique 3",numpad4:"Pavé numérique 4",numpad5:"Pavé numérique 5",numpad6:"Pavé numérique 6",numpad7:"Pavé numérique 7",numpad8:"Pavé numérique 8",numpad9:"Pavé numérique 9",multiply:"Multiplier",add:"Addition",subtract:"Soustraire",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",
-numLock:"Verrouillage numérique",scrollLock:"Arrêt défilement",semiColon:"Point virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions d'accessibilité",contents:"Contenu de l'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers le groupe suivant ou précédent de la barre d'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d'espace ou la touche Entrée pour activer le bouton de barre d'outils."},
+{name:"Fenêtre de l'éditeur",legend:"Dans une boîte de dialogue, appuyer sur Tab pour passer à l'élément suivant, appuyer sur Maj+Tab pour passer à l'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement."},{name:"Menu contextuel de l'éditeur",
+legend:"Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou la touche Entrée pour sélectionner l'option du menu. Appuyer sur la barre d'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l'option sélectionnée. Revenir à l'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap."},
+{name:"Zone de liste de l'éditeur",legend:"Dans une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant."},{name:"Barre du chemin d'éléments de l'éditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d'Ariane des éléments. Se déplacer vers le bouton de l'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d'espace ou sur Entrée pour sélectionner l'élément dans l'éditeur."}]},
+{name:"Commandes",items:[{name:" Annuler la commande",legend:"Appuyer sur ${undo}"},{name:"Commande restaurer",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:"Commande d'accès à l'élément sélectionnable précédent",
+legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents."},{name:"Commande d'accès à l'élément sélectionnable suivant",legend:"Appuyer sur ${accessNextSpace} pour accéder à l'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants."},
+{name:" Aide sur l'accessibilité",legend:"Appuyer sur ${a11yHelp}"},{name:"Coller comme texte sans mise en forme",legend:"Appuyer sur ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulation",pause:"Pause",capslock:"Verr. Maj.",escape:"Échap",pageUp:"Page supérieure",pageDown:"Page suivante",leftArrow:"Flèche gauche",upArrow:"Flèche haut",rightArrow:"Flèche droite",downArrow:"Flèche basse",insert:"Inser",leftWindowKey:"Touche Windows gauche",rightWindowKey:"Touche Windows droite",
+selectKey:"Touche Sélectionner",numpad0:"0 du pavé numérique",numpad1:"1 du pavé numérique",numpad2:"2 du pavé numérique",numpad3:"3 du pavé numérique",numpad4:"4 du pavé numérique",numpad5:"5 du pavé numérique",numpad6:"6 du pavé numérique",numpad7:"7 du pavé numérique",numpad8:"Pavé numérique 8",numpad9:"9 du pavé numérique",multiply:"Multiplier",add:"Plus",subtract:"Moins",decimalPoint:"Point décimal",divide:"Diviser",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
+f11:"F11",f12:"F12",numLock:"Verr. Num.",scrollLock:"Arrêt défil.",semiColon:"Point-virgule",equalSign:"Signe égal",comma:"Virgule",dash:"Tiret",period:"Point",forwardSlash:"Barre oblique",graveAccent:"Accent grave",openBracket:"Parenthèse ouvrante",backSlash:"Barre oblique inverse",closeBracket:"Parenthèse fermante",singleQuote:"Apostrophe"});
\ No newline at end of file
index 6a7c80837de5f03785b3cb92bf5692a0a1c9d32a..8d1084be9e8d11f00a9d19ff84ab71967e2430cb 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","gl",{title:"Instrucións de accesibilidade",contents:"Axuda. Para pechar este diálogo prema ESC.",legend:[{name:"Xeral",items:[{name:"Barra de ferramentas do editor",legend:"Prema ${toolbarFocus} para navegar pola barra de ferramentas. Para moverse polos distintos grupos de ferramentas use as teclas TAB e MAIÚS+TAB. Para moverse polas distintas ferramentas use FRECHA DEREITA ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para activar o botón da barra de ferramentas."},
-{name:"Editor de diálogo",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},
-{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."},{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},
-{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"},{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},
-{name:"Orde «acceder ao seguinte espazo en foco»",legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"}]}],backspace:"Ir atrás",tab:"Tabulador",enter:"Intro",shift:"Maiús",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",
-pageDown:"Páxina abaixo",end:"Fin",home:"Inicio",leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir","delete":"Supr",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",
-numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar",add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",
-closeBracket:"Pechar corchete",singleQuote:"Comiña simple"});
\ No newline at end of file
+{name:"Editor de diálogo",legend:"Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente."},
+{name:"Editor do menú contextual",legend:"Prema ${contextMenu} ou a TECLA MENÚ para abrir o menú contextual. A seguir móvase á seguinte opción do menú con TAB ou FRECHA ABAIXO. Móvase á opción anterior con MAIÚS + TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para seleccionar a opción do menú. Abra o submenú da opción actual con ESPAZO ou INTRO ou FRECHA DEREITA. Regrese ao elemento principal do menú con ESC ou FRECHA ESQUERDA. Peche o menú contextual con ESC."},{name:"Lista do editor",legend:"Dentro dunha lista, móvase ao seguinte elemento da lista con TAB ou FRECHA ABAIXO. Móvase ao elemento anterior da lista con MAIÚS+TAB ou FRECHA ARRIBA. Prema ESPAZO ou INTRO para escoller a opción da lista. Prema ESC para pechar a lista."},
+{name:"Barra da ruta ao elemento no editor",legend:"Prema ${elementsPathFocus} para navegar ata os elementos da barra de ruta. Móvase ao seguinte elemento botón con TAB ou FRECHA DEREITA. Móvase ao botón anterior con MAIÚS+TAB ou FRECHA ESQUERDA. Prema ESPAZO ou INTRO para seleccionar o elemento no editor."}]},{name:"Ordes",items:[{name:"Orde «desfacer»",legend:"Prema ${undo}"},{name:"Orde «refacer»",legend:"Prema ${redo}"},{name:"Orde «negra»",legend:"Prema ${bold}"},{name:"Orde «cursiva»",legend:"Prema ${italic}"},
+{name:"Orde «subliñar»",legend:"Prema ${underline}"},{name:"Orde «ligazón»",legend:"Prema ${link}"},{name:"Orde «contraer a barra de ferramentas»",legend:"Prema ${toolbarCollapse}"},{name:"Orde «acceder ao anterior espazo en foco»",legend:"Prema ${accessPreviousSpace} para acceder ao espazo máis próximo de foco inalcanzábel anterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Orde «acceder ao seguinte espazo en foco»",
+legend:"Prema ${accessNextSpace} para acceder ao espazo máis próximo de foco inalcanzábel posterior ao cursor, por exemplo: dous elementos HR adxacentes. Repita a combinación de teclas para chegar a espazos de foco distantes."},{name:"Axuda da accesibilidade",legend:"Prema ${a11yHelp}"},{name:"Pegar como texto simple",legend:"Prema ${pastetext}",legendEdge:"Prema ${pastetext}, seguido de ${paste}"}]}],tab:"Tabulador",pause:"Pausa",capslock:"Bloq. Maiús",escape:"Escape",pageUp:"Páxina arriba",pageDown:"Páxina abaixo",
+leftArrow:"Frecha esquerda",upArrow:"Frecha arriba",rightArrow:"Frecha dereita",downArrow:"Frecha abaixo",insert:"Inserir",leftWindowKey:"Tecla Windows esquerda",rightWindowKey:"Tecla Windows dereita",selectKey:"Escolla a tecla",numpad0:"Tec. numérico 0",numpad1:"Tec. numérico 1",numpad2:"Tec. numérico 2",numpad3:"Tec. numérico 3",numpad4:"Tec. numérico 4",numpad5:"Tec. numérico 5",numpad6:"Tec. numérico 6",numpad7:"Tec. numérico 7",numpad8:"Tec. numérico 8",numpad9:"Tec. numérico 9",multiply:"Multiplicar",
+add:"Sumar",subtract:"Restar",decimalPoint:"Punto decimal",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloq. num.",scrollLock:"Bloq. despraz.",semiColon:"Punto e coma",equalSign:"Signo igual",comma:"Coma",dash:"Guión",period:"Punto",forwardSlash:"Barra inclinada",graveAccent:"Acento grave",openBracket:"Abrir corchete",backSlash:"Barra invertida",closeBracket:"Pechar corchete",singleQuote:"Comiña simple"});
\ No newline at end of file
index 54e2ec285f57afd668476c59c2cca8812e84b187..aa203e3dfd8f6d4664f3b098c3110f0aacf4c2c5 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"એક્ક્ષેબિલિટી ની વિગતો",contents:"હેલ્પ. આ બંધ કરવા ESC દબાવો.",legend:[{name:"જનરલ",items:[{name:"એડિટર ટૂલબાર",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"એડિટર ડાયલોગ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"કમાંડસ",items:[{name:"અન્ડું કમાંડ",legend:"$ દબાવો {undo}"},{name:"ફરી કરો કમાંડ",legend:"$ દબાવો {redo}"},{name:"બોલ્દનો કમાંડ",legend:"$ દબાવો {bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index bd63abe2f1dbe09524b8bb3ab806a3dbf100cbcf..576584f6e81112441ad1550fdc8abd19efc34313 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","he",{title:"הוראות נגישות",contents:"הוראות נגישות. לסגירה לחץ אסקייפ (ESC).",legend:[{name:"כללי",items:[{name:"סרגל הכלים",legend:"לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר."},{name:"דיאלוגים (חלונות תשאול)",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"תפריט ההקשר (Context Menu)",legend:"לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. סגור את תפריט ההקשר עם אסקייפ (ESC)."},{name:"תפריטים צפים (List boxes)",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"עץ אלמנטים (Elements Path)",legend:"לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. עבור לפריט הבא עם טאב (TAB) או חץ ימני. עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך."}]},{name:"פקודות",items:[{name:" ביטול צעד אחרון",legend:"לחץ ${undo}"},{name:" חזרה על צעד אחרון",legend:"לחץ ${redo}"},{name:" הדגשה",legend:"לחץ ${bold}"},{name:" הטייה",legend:"לחץ ${italic}"},{name:" הוספת קו תחתון",legend:"לחץ ${underline}"},{name:" הוספת לינק",
 legend:"לחץ ${link}"},{name:" כיווץ סרגל הכלים",legend:"לחץ ${toolbarCollapse}"},{name:"גישה למיקום המיקוד הקודם",legend:"לחץ ${accessPreviousSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב לפני הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},{name:"גישה למיקום המיקוד הבא",legend:"לחץ ${accessNextSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב אחרי הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},
-{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס","delete":"מחק",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",
+{name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"חץ שמאלה",upArrow:"חץ למעלה",rightArrow:"חץ ימינה",downArrow:"חץ למטה",insert:"הכנס",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"בחר מקש",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",
 numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"הוסף",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"סלאש",graveAccent:"Grave Accent",
 openBracket:"Open Bracket",backSlash:"סלאש הפוך",closeBracket:"Close Bracket",singleQuote:"ציטוט יחיד"});
\ No newline at end of file
index 9f0d6bea57fff5c5f2b3394b8fa74602bd8ff785..a5aafeb4565342a32062520232e420b219294011 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","hi",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"सामान्य",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 92ba672023ac6e6e214def69e8787d3ec9c01cd6..e71fbdaf62dce8ac28afbf80640d50348b5800e6 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","hr",{title:"Upute dostupnosti",contents:"Sadržaj pomoći. Za zatvaranje pritisnite ESC.",legend:[{name:"Općenito",items:[{name:"Alatna traka",legend:"Pritisni ${toolbarFocus} za navigaciju do alatne trake. Pomicanje do prethodne ili sljedeće alatne grupe vrši se pomoću SHIFT+TAB i TAB. Pomicanje do prethodnog ili sljedećeg gumba u alatnoj traci vrši se pomoću lijeve i desne strelice kursora. Pritisnite SPACE ili ENTER za aktivaciju alatne trake."},{name:"Dijalog",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa  SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."},
+legend:"Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO."},{name:"Kontekstni izbornik",legend:"Pritisnite ${contextMenu} ili APPLICATION tipku za otvaranje kontekstnog izbornika. Pomicanje se vrši TAB ili strelicom kursora prema dolje ili SHIFT+TAB ili strelica kursora prema gore. SPACE ili ENTER odabiru opciju izbornika. Otvorite podizbornik trenutne opcije sa  SPACE, ENTER ili desna strelica kursora. Povratak na prethodni izbornik vrši se sa ESC ili lijevom strelicom kursora. Zatvaranje se vrši pritiskom na tipku ESC."},
 {name:"Lista",legend:"Unutar list-boxa, pomicanje na sljedeću stavku vrši se sa TAB ili strelica kursora prema dolje. Na prethodnu sa SHIFT+TAB ili strelica prema gore. Pritiskom na SPACE ili ENTER odabire se stavka ili ESC za zatvaranje."},{name:"Traka putanje elemenata",legend:"Pritisnite ${elementsPathFocus} za navigaciju po putanji elemenata. Pritisnite TAB ili desnu strelicu kursora za pomicanje na sljedeći element ili SHIFT+TAB ili lijeva strelica kursora za pomicanje na prethodni element. Pritiskom na SPACE ili ENTER vrši se odabir elementa."}]},
-{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Access previous focus space naredba",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},
-{name:"Access next focus space naredba",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
-f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Naredbe",items:[{name:"Vrati naredbu",legend:"Pritisni ${undo}"},{name:"Ponovi naredbu",legend:"Pritisni ${redo}"},{name:"Bold naredba",legend:"Pritisni ${bold}"},{name:"Italic naredba",legend:"Pritisni ${italic}"},{name:"Underline naredba",legend:"Pritisni ${underline}"},{name:"Link naredba",legend:"Pritisni ${link}"},{name:"Smanji alatnu traku naredba",legend:"Pritisni ${toolbarCollapse}"},{name:"Naredba za pristupi prethodnom prostoru fokusa",legend:"Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},
+{name:"Naredba za pristup sljedećem prostoru fokusa",legend:"Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak."},{name:"Pomoć za dostupnost",legend:"Pritisni ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Lijev strelica",upArrow:"Strelica gore",rightArrow:"Desna strelica",downArrow:"Strelica dolje",insert:"Insert",leftWindowKey:"Lijeva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Tipka Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"umpad 8",numpad9:"Numpad 9",multiply:"Množenje",add:"Zbrajanje",subtract:"Oduzimanje",decimalPoint:"Decimalna točka",divide:"Dijeljenje",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Točka zarez",equalSign:"Jednako",comma:"Zarez",dash:"Crtica",period:"Točka",forwardSlash:"Kosa crta",graveAccent:"Akcent",openBracket:"Otvorena uglata zagrada",backSlash:"Obrnuta kosa crta",closeBracket:"Zatvorena uglata zagrada",singleQuote:"Jednostruki navodnik"});
\ No newline at end of file
index 81c48da1964b2a4931301414b659ccde5eb9a0b9..fbbba9839da88864d34da8de590afe191a3d3a2d 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","hu",{title:"Kisegítő utasítások",contents:"Súgó tartalmak. A párbeszédablak bezárásához nyomjon ESC-et.",legend:[{name:"Általános",items:[{name:"Szerkesztő Eszköztár",legend:"Nyomjon ${toolbarFocus} hogy kijelölje az eszköztárat. A következő és előző eszköztár csoporthoz a TAB és SHIFT+TAB-al juthat el. A következő és előző eszköztár gombhoz a BAL NYÍL vagy JOBB NYÍL gombbal juthat el. Nyomjon SPACE-t vagy ENTER-t hogy aktiválja az eszköztár gombot."},{name:"Szerkesző párbeszéd ablak",
-legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."},
+legend:"Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat."},{name:"Szerkesztő helyi menü",legend:"Nyomjon ${contextMenu}-t vagy ALKALMAZÁS BILLENTYŰT a helyi menü megnyitásához. Ezután a következő menüpontra léphet a TAB vagy LEFELÉ NYÍLLAL. Az előző opciót a SHIFT+TAB vagy FELFELÉ NYÍLLAL érheti el. Nyomjon SPACE-t vagy ENTER-t a menüpont kiválasztásához. A jelenlegi menüpont almenüjének megnyitásához nyomjon SPACE-t vagy ENTER-t, vagy JOBB NYILAT. A főmenühöz való visszatéréshez nyomjon ESC-et vagy BAL NYILAT. A helyi menü bezárása az ESC billentyűvel lehetséges."},
 {name:"Szerkesztő lista",legend:"A listán belül a következő elemre a TAB vagy LEFELÉ NYÍLLAL mozoghat. Az előző elem kiválasztásához nyomjon SHIFT+TAB-ot vagy FELFELÉ NYILAT. Nyomjon SPACE-t vagy ENTER-t az elem kiválasztásához. Az ESC billentyű megnyomásával bezárhatja a listát."},{name:"Szerkesztő elem utak sáv",legend:"Nyomj ${elementsPathFocus} hogy kijelöld a elemek út sávját. A következő elem gombhoz a TAB-al vagy a JOBB NYÍLLAL juthatsz el. Az előző gombhoz a SHIFT+TAB vagy BAL NYÍLLAL mehetsz. A SPACE vagy ENTER billentyűvel kiválaszthatod az elemet a szerkesztőben."}]},
 {name:"Parancsok",items:[{name:"Parancs visszavonása",legend:"Nyomj ${undo}"},{name:"Parancs megismétlése",legend:"Nyomjon ${redo}"},{name:"Félkövér parancs",legend:"Nyomjon ${bold}"},{name:"Dőlt parancs",legend:"Nyomjon ${italic}"},{name:"Aláhúzott parancs",legend:"Nyomjon ${underline}"},{name:"Link parancs",legend:"Nyomjon ${link}"},{name:"Szerkesztősáv összecsukása parancs",legend:"Nyomjon ${toolbarCollapse}"},{name:"Hozzáférés az előző fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel előtt, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},
-{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert","delete":"Delete",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8",
+{name:"Hozzáférés a következő fókusz helyhez parancs",legend:"Nyomj ${accessNextSpace} hogy hozzáférj a legközelebbi elérhetetlen fókusz helyhez a hiányjel után, például: két szomszédos HR elemhez. Ismételd meg a billentyűkombinációt hogy megtaláld a távolabbi fókusz helyeket."},{name:"Kisegítő súgó",legend:"Nyomjon ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"balra nyíl",upArrow:"felfelé nyíl",rightArrow:"jobbra nyíl",downArrow:"lefelé nyíl",insert:"Insert",leftWindowKey:"bal Windows-billentyű",rightWindowKey:"jobb Windows-billentyű",selectKey:"Billentyű választása",numpad0:"Számbillentyűk 0",numpad1:"Számbillentyűk 1",numpad2:"Számbillentyűk 2",numpad3:"Számbillentyűk 3",numpad4:"Számbillentyűk 4",numpad5:"Számbillentyűk 5",numpad6:"Számbillentyűk 6",numpad7:"Számbillentyűk 7",numpad8:"Számbillentyűk 8",
 numpad9:"Számbillentyűk 9",multiply:"Szorzás",add:"Hozzáadás",subtract:"Kivonás",decimalPoint:"Tizedespont",divide:"Osztás",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Pontosvessző",equalSign:"Egyenlőségjel",comma:"Vessző",dash:"Kötőjel",period:"Pont",forwardSlash:"Perjel",graveAccent:"Visszafelé dőlő ékezet",openBracket:"Nyitó szögletes zárójel",backSlash:"fordított perjel",closeBracket:"Záró szögletes zárójel",
 singleQuote:"szimpla idézőjel"});
\ No newline at end of file
index c8d5686bac112f887d1e6d97c26a08d51634e0a1..ca157b0aeea74b29c30859c9a45018fa8f2b356c 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Accessibility Instructions",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
-{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
-{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
-legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
-numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
-graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Instruksi Accessibility",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Toolbar Editor",legend:"Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar."},{name:"Dialog Editor",
+legend:"Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW."},{name:"Context Menu Editor",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
+{name:"List Box Editor",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
+{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
+f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 5151f605d36d66d8103b15d1fe54d15187f934e0..4887edbe0077ab9175fd1b6c406b30984b9cf283 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità",contents:"Contenuti di Aiuto. Per chiudere questa finestra premi ESC.",legend:[{name:"Generale",items:[{name:"Barra degli strumenti Editor",legend:"Premere ${toolbarFocus} per passare alla barra degli strumenti. Usare TAB per spostarsi al gruppo successivo, MAIUSC+TAB per spostarsi a quello precedente. Usare FRECCIA DESTRA per spostarsi al pulsante successivo, FRECCIA SINISTRA per spostarsi a quello precedente. Premere SPAZIO o INVIO per attivare il pulsante della barra degli strumenti."},
@@ -7,7 +7,7 @@ CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità",c
 {name:"Menù contestuale Editor",legend:"Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all'opzione precedente con  MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l'opzione di menu. Apri il sottomenu dell'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC."},
 {name:"Box Lista Editor",legend:"All'interno di un elenco di opzioni, per spostarsi all'elemento successivo premere TAB oppure FRECCIA GIÙ. Per spostarsi all'elemento precedente usare SHIFT+TAB oppure FRECCIA SU. Premere SPAZIO o INVIO per selezionare l'elemento della lista. Premere ESC per chiudere l'elenco di opzioni."},{name:"Barra percorso elementi editor",legend:"Premere ${elementsPathFocus} per passare agli elementi della barra del percorso. Usare TAB o FRECCIA DESTRA per passare al pulsante successivo. Per passare al pulsante precedente premere MAIUSC+TAB o FRECCIA SINISTRA. Premere SPAZIO o INVIO per selezionare l'elemento nell'editor."}]},
 {name:"Comandi",items:[{name:" Annulla comando",legend:"Premi ${undo}"},{name:" Ripeti comando",legend:"Premi ${redo}"},{name:" Comando Grassetto",legend:"Premi ${bold}"},{name:" Comando Corsivo",legend:"Premi ${italic}"},{name:" Comando Sottolineato",legend:"Premi ${underline}"},{name:" Comando Link",legend:"Premi ${link}"},{name:" Comando riduci barra degli strumenti",legend:"Premi ${toolbarCollapse}"},{name:"Comando di accesso al precedente spazio di focus",legend:"Premi ${accessPreviousSpace} per accedere il più vicino spazio di focus non raggiungibile prima del simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},
-{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Invio",shift:"Maiusc",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Bloc Maiusc",escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",
-end:"Fine",home:"Inizio",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins","delete":"Canc",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico",
+{name:"Comando di accesso al prossimo spazio di focus",legend:"Premi ${accessNextSpace} per accedere il più vicino spazio di focus non raggiungibile dopo il simbolo caret, per esempio due elementi HR adiacenti. Ripeti la combinazione di tasti per raggiungere spazi di focus distanti."},{name:" Aiuto Accessibilità",legend:"Premi ${a11yHelp}"},{name:"Incolla come testo semplice",legend:"Premi ${pastetext}",legendEdge:"Premi ${pastetext}, seguito da ${paste}"}]}],tab:"Tab",pause:"Pausa",capslock:"Bloc Maiusc",
+escape:"Esc",pageUp:"Pagina sù",pageDown:"Pagina giù",leftArrow:"Freccia sinistra",upArrow:"Freccia su",rightArrow:"Freccia destra",downArrow:"Freccia giù",insert:"Ins",leftWindowKey:"Tasto di Windows sinistro",rightWindowKey:"Tasto di Windows destro",selectKey:"Tasto di selezione",numpad0:"0 sul tastierino numerico",numpad1:"1 sul tastierino numerico",numpad2:"2 sul tastierino numerico",numpad3:"3 sul tastierino numerico",numpad4:"4 sul tastierino numerico",numpad5:"5 sul tastierino numerico",numpad6:"6 sul tastierino numerico",
 numpad7:"7 sul tastierino numerico",numpad8:"8 sul tastierino numerico",numpad9:"9 sul tastierino numerico",multiply:"Moltiplicazione",add:"Più",subtract:"Sottrazione",decimalPoint:"Punto decimale",divide:"Divisione",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Bloc Num",scrollLock:"Bloc Scorr",semiColon:"Punto-e-virgola",equalSign:"Segno di uguale",comma:"Virgola",dash:"Trattino",period:"Punto",forwardSlash:"Barra",graveAccent:"Accento grave",
 openBracket:"Parentesi quadra aperta",backSlash:"Barra rovesciata",closeBracket:"Parentesi quadra chiusa",singleQuote:"Apostrofo"});
\ No newline at end of file
index ec5ed673cd18982f7d61b2659cf55cdf7e3ed569..892dca090cf601f4c27bd0d24fd0001d89e9381b 100644 (file)
@@ -1,9 +1,9 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"ユーザー補助の説明",contents:"ヘルプ このダイアログを閉じるには ESCを押してください。",legend:[{name:"全般",items:[{name:"エディターツールバー",legend:"${toolbarFocus} を押すとツールバーのオン/オフ操作ができます。カーソルをツールバーのグループで移動させるにはTabかSHIFT+Tabを押します。グループ内でカーソルを移動させるには、右カーソルか左カーソルを押します。スペースキーやエンターを押すとボタンを有効/無効にすることができます。"},{name:"編集ダイアログ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"エディターのメニュー",legend:"${contextMenu} キーかAPPLICATION KEYを押すとコンテキストメニューが開きます。Tabか下カーソルでメニューのオプション選択が下に移動します。戻るには、SHIFT+Tabか上カーソルです。スペースもしくはENTERキーでメニューオプションを決定できます。現在選んでいるオプションのサブメニューを開くには、スペース、もしくは右カーソルを押します。サブメニューから親メニューに戻るには、ESCか左カーソルを押してください。ESCでコンテキストメニュー自体をキャンセルできます。"},{name:"エディターリストボックス",legend:"リストボックス内で移動するには、Tabか下カーソルで次のアイテムへ移動します。SHIFT+Tabで前のアイテムに戻ります。リストのオプションを選択するには、スペースもしくは、ENTERを押してください。リストボックスを閉じるには、ESCを押してください。"},{name:"エディター要素パスバー",legend:"${elementsPathFocus} を押すとエレメントパスバーを操作出来ます。Tabか右カーソルで次のエレメントを選択できます。前のエレメントを選択するには、SHIFT+Tabか左カーソルです。スペースもしくは、ENTERでエディタ内の対象エレメントを選択出来ます。"}]},
-{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーを縮める",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソル移動のできないポイントへ",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},
-{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert","delete":"Delete",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5",
+{name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーをたたむ",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソルポイントへ移動する",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},
+{name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"左矢印",upArrow:"上矢印",rightArrow:"右矢印",downArrow:"下矢印",insert:"Insert",leftWindowKey:"左Windowキー",rightWindowKey:"右のWindowキー",selectKey:"Select",numpad0:"Num 0",numpad1:"Num 1",numpad2:"Num 2",numpad3:"Num 3",numpad4:"Num 4",numpad5:"Num 5",
 numpad6:"Num 6",numpad7:"Num 7",numpad8:"Num 8",numpad9:"Num 9",multiply:"掛ける",add:"足す",subtract:"引く",decimalPoint:"小数点",divide:"割る",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"セミコロン",equalSign:"イコール記号",comma:"カンマ",dash:"ダッシュ",period:"ピリオド",forwardSlash:"フォワードスラッシュ",graveAccent:"グレイヴアクセント",openBracket:"開きカッコ",backSlash:"バックスラッシュ",closeBracket:"閉じカッコ",singleQuote:"シングルクォート"});
\ No newline at end of file
index 6b6e7a928bcfdc4e34e2f01a40c02ca0b1eaa316..7d28f05b7a1b0c854f40931f9f48d0dc251b5a0a 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","km",{title:"Accessibility Instructions",contents:"មាតិកា​ជំនួយ។ ដើម្បី​បិទ​ផ្ទាំង​នេះ សូម​ចុច ESC ។",legend:[{name:"ទូទៅ",items:[{name:"របារ​ឧបករណ៍​កម្មវិធី​និពន្ធ",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"ផ្ទាំង​កម្មវិធីនិពន្ធ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"ម៉ីនុយបរិបទអ្នកកែសម្រួល",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"ប្រអប់បញ្ជីអ្នកកែសម្រួល",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"ពាក្យបញ្ជា",items:[{name:"ការ​បញ្ជា​មិនធ្វើវិញ",legend:"ចុច ${undo}"},{name:"ការបញ្ជា​ធ្វើវិញ",legend:"ចុច ${redo}"},{name:"ការបញ្ជា​អក្សរ​ដិត",legend:"ចុច ${bold}"},{name:"ការបញ្ជា​អក្សរ​ទ្រេត",legend:"ចុច ${italic}"},{name:"ពាក្យបញ្ជា​បន្ទាត់​ពីក្រោម",
 legend:"ចុច ${underline}"},{name:"ពាក្យបញ្ជា​តំណ",legend:"ចុច ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"ជំនួយ​ពី​ភាព​ងាយស្រួល",legend:"ជួយ ${a11yHelp}"}]}],backspace:"លុបថយក្រោយ",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រ​លើ",pageDown:"ទំព័រ​ក្រោម",end:"ចុង",home:"ផ្ទះ",leftArrow:"ព្រួញ​ឆ្វេង",upArrow:"ព្រួញ​លើ",rightArrow:"ព្រួញ​ស្ដាំ",downArrow:"ព្រួញ​ក្រោម",insert:"បញ្ចូល","delete":"លុប",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើស​គ្រាប់​ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"ជំនួយ​ពី​ភាព​ងាយស្រួល",legend:"ជួយ ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"ផ្អាក",capslock:"Caps Lock",escape:"ចាកចេញ",pageUp:"ទំព័រ​លើ",pageDown:"ទំព័រ​ក្រោម",leftArrow:"ព្រួញ​ឆ្វេង",upArrow:"ព្រួញ​លើ",rightArrow:"ព្រួញ​ស្ដាំ",downArrow:"ព្រួញ​ក្រោម",insert:"បញ្ចូល",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"ជ្រើស​គ្រាប់​ចុច",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"គុណ",add:"បន្ថែម",subtract:"ដក",decimalPoint:"ចំណុចទសភាគ",divide:"ចែក",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"បិទ​រំកិល",semiColon:"ចុច​ក្បៀស",equalSign:"សញ្ញា​អឺរ៉ូ",comma:"ក្បៀស",dash:"Dash",period:"ចុច",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",
 openBracket:"តង្កៀប​បើក",backSlash:"Backslash",closeBracket:"តង្កៀប​បិទ",singleQuote:"បន្តក់​មួយ"});
\ No newline at end of file
index 9b2b0703189390ec86c5ece29f6fa74c071c6ae1..e76eabfc82fa972bd490f314e3e2fc0e8c73fea0 100644 (file)
@@ -1,10 +1,10 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ko",{title:"접근성 설명",contents:"도움말. 이 창을 닫으시려면 ESC 를 누르세요.",legend:[{name:"일반",items:[{name:"편집기 툴바",legend:"툴바를 탐색하시려면 ${toolbarFocus} 를 투르세요. 이전/다음 툴바 그룹으로 이동하시려면 TAB 키 또는 SHIFT+TAB 키를 누르세요. 이전/다음 툴바 버튼으로 이동하시려면 오른쪽 화살표 키 또는 왼쪽 화살표 키를 누르세요. 툴바 버튼을 활성화 하려면 SPACE 키 또는 ENTER 키를 누르세요."},{name:"편집기 다이얼로그",legend:"TAB 키를 누르면 다음 대화상자로 이동하고, SHIFT+TAB 키를 누르면 이전 대화상자로 이동합니다. 대화상자를 제출하려면 ENTER 키를 누르고, ESC 키를 누르면 대화상자를 취소합니다. 대화상자에 탭이 여러개 있을 때, ALT+F10 키 또는 TAB 키를 누르면 순서에 따라 탭 목록에 도달할 수 있습니다. 탭 목록에 초점이 맞을 때, 오른쪽과 왼쪽 화살표 키를 이용하면 각각 다음과 이전 탭으로 이동할 수 있습니다."},
 {name:"편집기 환경 메뉴",legend:"${contextMenu} 또는 어플리케이션 키를 누르면 환경-메뉴를 열 수 있습니다. 환경-메뉴에서 TAB 키 또는 아래 화살표 키를 누르면 다음 메뉴 옵션으로 이동할 수 있습니다. 이전 옵션으로 이동은 SHIFT+TAB 키 또는 위 화살표 키를 눌러서 할 수 있습니다. 스페이스 키 또는 ENTER 키를 눌러서 메뉴 옵션을 선택할 수 있습니다. 스페이스 키 또는 ENTER 키 또는 오른쪽 화살표 키를 눌러서 하위 메뉴를 열 수 있습니다. 부모 메뉴 항목으로 돌아가려면 ESC 키 또는 왼쪽 화살표 키를 누릅니다. ESC 키를 눌러서 환경-메뉴를 닫습니다."},{name:"편집기 목록 박스",legend:"리스트-박스 내에서, 목록의 다음 항목으로 이동하려면 TAB 키 또는 아래쪽 화살표 키를 누릅니다. 목록의 이전 항목으로 이동하려면 SHIFT+TAB 키 또는 위쪽 화살표 키를 누릅니다. 스페이스 키 또는 ENTER 키를 누르면 목록의 해당 옵션을 선택합니다. ESC 키를 눌러서 리스트-박스를 닫을 수 있습니다."},
 {name:"편집기 요소 경로 막대",legend:"${elementsPathFocus}를 눌러서 요소 경로 막대를 탐색할 수 있습니다. 다음 요소로 이동하려면 TAB 키 또는 오른쪽 화살표 키를 누릅니다. SHIFT+TAB 키 또는 왼쪽 화살표 키를 누르면 이전 버튼으로 이동할 수 있습니다. 스페이스 키나 ENTER 키를 누르면 편집기의 해당 항목을 선택합니다."}]},{name:"명령",items:[{name:" 명령 실행 취소",legend:"${undo} 누르시오"},{name:" 명령 다시 실행",legend:"${redo} 누르시오"},{name:" 굵게 명령",legend:"${bold} 누르시오"},{name:" 기울임 꼴 명령",legend:"${italic} 누르시오"},{name:" 밑줄 명령",legend:"${underline} 누르시오"},{name:" 링크 명령",legend:"${link} 누르시오"},{name:" 툴바 줄이기 명령",legend:"${toolbarCollapse} 누르시오"},
-{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"}]}],backspace:"Backspace 키",tab:"탭 키",enter:"엔터 키",shift:"시프트 키",ctrl:"컨트롤 키",alt:"알트 키",pause:"일시정지 키",capslock:"캡스 록 키",
-escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",end:"엔드 키",home:"홈 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키","delete":"삭제 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키",
+{name:" 이전 포커스 공간 접근 명령",legend:"탈자 기호(^) 이전에 ${accessPreviousSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다."},{name:"다음 포커스 공간 접근 명령",legend:"탈자 기호(^) 다음에 ${accessNextSpace} 를 누르면, 접근 불가능하면서 가장 가까운 포커스 영역에 접근합니다. 예를 들면, 두 인접한 HR 요소가 있습니다. 키 조합을 반복해서 멀리있는 포커스 영역들에 도달할 수 있습니다. "},{name:" 접근성 도움말",legend:"${a11yHelp} 누르시오"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
+tab:"탭 키",pause:"일시정지 키",capslock:"캡스 록 키",escape:"이스케이프 키",pageUp:"페이지 업 키",pageDown:"페이지 다운 키",leftArrow:"왼쪽 화살표 키",upArrow:"위쪽 화살표 키",rightArrow:"오른쪽 화살표 키",downArrow:"아래쪽 화살표 키",insert:"인서트 키",leftWindowKey:"왼쪽 윈도우 키",rightWindowKey:"오른쪽 윈도우 키",selectKey:"셀렉트 키",numpad0:"숫자 패드 0 키",numpad1:"숫자 패드 1 키",numpad2:"숫자 패드 2 키",numpad3:"숫자 패드 3 키",numpad4:"숫자 패드 4 키",numpad5:"숫자 패드 5 키",numpad6:"숫자 패드 6 키",numpad7:"숫자 패드 7 키",numpad8:"숫자 패드 8 키",numpad9:"숫자 패드 9 키",multiply:"곱셈(*) 키",add:"덧셈(+) 키",subtract:"뺄셈(-) 키",
 decimalPoint:"온점(.) 키",divide:"나눗셈(/) 키",f1:"F1 키",f2:"F2 키",f3:"F3 키",f4:"F4 키",f5:"F5 키",f6:"F6 키",f7:"F7 키",f8:"F8 키",f9:"F9 키",f10:"F10 키",f11:"F11 키",f12:"F12 키",numLock:"Num Lock 키",scrollLock:"Scroll Lock 키",semiColon:"세미콜론(;) 키",equalSign:"등호(\x3d) 키",comma:"쉼표(,) 키",dash:"대시(-) 키",period:"온점(.) 키",forwardSlash:"슬래시(/) 키",graveAccent:"억음 악센트(`) 키",openBracket:"브라켓 열기([) 키",backSlash:"역슬래시(\\\\) 키",closeBracket:"브라켓 닫기(]) 키",singleQuote:"외 따옴표(') 키"});
\ No newline at end of file
index e73789b9f8c86fb2f297f27a793fae8f899012a0..d0689e1a3a612075af85cd720e9e18343ea06c7f 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ku",{title:"ڕێنمای لەبەردەستدابوون",contents:"پێکهاتەی یارمەتی. کلیك ESC بۆ داخستنی ئەم دیالۆگه.",legend:[{name:"گشتی",items:[{name:"تووڵامرازی دەستكاریكەر",legend:"کلیك ${toolbarFocus} بۆ ڕابەری تووڵامراز. بۆ گواستنەوەی پێشوو داهاتووی گرووپی تووڵامرازی داگرتنی کلیلی TAB لەگەڵ‌ SHIFT+TAB. بۆ گواستنەوەی پێشوو داهاتووی دووگمەی تووڵامرازی لەڕێی کلیلی تیری دەستی ڕاست یان کلیلی تیری دەستی چەپ. کلیکی کلیلی SPACE یان ENTER بۆ چالاککردنی دووگمەی تووڵامراز."},{name:"دیالۆگی دەستكاریكەر",
 legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"پێڕستی سەرنووسەر",legend:"کلیك ${contextMenu} یان دوگمەی لیسته‌(Menu) بۆ کردنەوەی لیستەی دەق. بۆ چوونە هەڵبژاردەیەکی تر له‌ لیسته‌ کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوارەوه‌ بۆ چوون بۆ هەڵبژاردەی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو له‌ سەرەوە. داگرتنی کلیلی SPACE یان ENTER بۆ هەڵبژاردنی هەڵبژاردەی لیسته‌. بۆ کردنەوەی لقی ژێر لیسته‌ لەهەڵبژاردەی لیستە کلیکی کلیلی SPACE یان ENTER یان کلیلی تیری دەستی ڕاست. بۆ گەڕانەوه بۆ سەرەوەی لیسته‌ کلیکی کلیلی ESC یان کلیلی تیری دەستی چەپ. بۆ داخستنی لیستە کلیكی کلیلی ESC بکە."},
 {name:"لیستی سنووقی سەرنووسەر",legend:"لەناو سنوقی لیست, چۆن بۆ هەڵنبژاردەی لیستێکی تر کلیکی کلیلی TAB یان کلیلی تیری ڕوو لەخوار. چوون بۆ هەڵبژاردەی لیستی پێشوو کلیکی کلیلی SHIFT+TAB یان کلیلی تیری ڕوو لەسەرەوه‌. کلیکی کلیلی SPACE یان ENTER بۆ دیاریکردنی ‌هەڵبژاردەی لیست. کلیکی کلیلی ESC بۆ داخستنی سنوقی لیست."},{name:"تووڵامرازی توخم",legend:"کلیك ${elementsPathFocus} بۆ ڕابەری تووڵامرازی توخمەکان. چوون بۆ دوگمەی توخمێکی تر کلیکی کلیلی TAB یان کلیلی تیری دەستی ڕاست. چوون بۆ دوگمەی توخمی پێشوو کلیلی SHIFT+TAB یان کلیکی کلیلی تیری دەستی چەپ. داگرتنی کلیلی SPACE یان ENTER بۆ دیاریکردنی توخمەکه‌ لەسەرنووسه."}]},
 {name:"فەرمانەکان",items:[{name:"پووچکردنەوەی فەرمان",legend:"کلیك ${undo}"},{name:"هەڵگەڕانەوەی فەرمان",legend:"کلیك ${redo}"},{name:"فەرمانی دەقی قەڵەو",legend:"کلیك ${bold}"},{name:"فەرمانی دەقی لار",legend:"کلیك ${italic}"},{name:"فەرمانی ژێرهێڵ",legend:"کلیك ${underline}"},{name:"فەرمانی به‌ستەر",legend:"کلیك ${link}"},{name:"شاردەنەوەی تووڵامراز",legend:"کلیك ${toolbarCollapse}"},{name:"چوونەناو سەرنجدانی پێشوی فەرمانی بۆشایی",legend:"کلیک ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"Select",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",
+{name:"چوونەناو سەرنجدانی داهاتووی فەرمانی بۆشایی",legend:"کلیک ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دەستپێگەیشتنی یارمەتی",legend:"کلیك ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"پەنجەرەی چەپ",rightWindowKey:"پەنجەرەی ڕاست",selectKey:"Select",numpad0:"Numpad 0",numpad1:"1",numpad2:"2",numpad3:"3",numpad4:"4",numpad5:"5",numpad6:"6",numpad7:"7",numpad8:"8",numpad9:"9",multiply:"*",add:"+",subtract:"-",decimalPoint:".",divide:"/",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",
 semiColon:";",equalSign:"\x3d",comma:",",dash:"-",period:".",forwardSlash:"/",graveAccent:"`",openBracket:"[",backSlash:"\\\\",closeBracket:"}",singleQuote:"'"});
\ No newline at end of file
index ffabb15caee2c23fb6c08057672eb2419e3ad3d8..89c90bccd24b8ee13a6459890ce920a366955077 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","lt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Bendros savybės",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 873f6e4f1333d2e4e2e5652f8e9baca744554bf5..24e60079a99034abd12233c241f0281e1d72177b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"Pieejamības instrukcija",contents:"Palīdzības saturs. Lai aizvērtu ciet šo dialogu nospiediet ESC.",legend:[{name:"Galvenais",items:[{name:"Redaktora rīkjosla",legend:"Nospiediet ${toolbarFocus} lai pārvietotos uz rīkjoslu. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pārvietotos uz nākošo vai iepriekšējo rīkjoslas pogu izmantojiet Kreiso vai Labo bultiņu. Nospiediet Atstarpi vai ENTER lai aktivizētu rīkjosla pogu."},
@@ -7,6 +7,6 @@ CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"Pieejamības instrukcija",conte
 {name:"Redaktora saraksta lauks",legend:"Saraksta laukā, lai pārvietotos uz nākošo saraksta elementu nospiediet TAB vai pogu Bultiņa uz leju. Lai pārvietotos uz iepriekšējo saraksta elementu nospiediet SHIFT+TAB vai pogu Bultiņa uz augšu. Nospiediet SPACE vai ENTER lai izvēlētos saraksta opcijas. Nospiediet ESC lai aizvērtu saraksta lauku."},{name:"Redaktora elementa ceļa josla",legend:"Nospiediet ${elementsPathFocus} lai pārvietotos uz elementa ceļa joslu. Lai pārvietotos uz nākošo elementa pogu izmantojiet TAB vai Labo bultiņu. Lai pārvietotos uz iepriekšējo elementa pogu izmantojiet SHIFT+TAB vai Kreiso bultiņu. Nospiediet SPACE vai ENTER lai izvēlētos elementu redaktorā."}]},
 {name:"Komandas",items:[{name:"Komanda atcelt darbību",legend:"Nospiediet ${undo}"},{name:"Komanda atkārtot darbību",legend:"Nospiediet ${redo}"},{name:"Treknraksta komanda",legend:"Nospiediet ${bold}"},{name:"Kursīva komanda",legend:"Nospiediet ${italic}"},{name:"Apakšsvītras komanda ",legend:"Nospiediet ${underline}"},{name:"Hipersaites komanda",legend:"Nospiediet ${link}"},{name:"Rīkjoslas aizvēršanas komanda",legend:"Nospiediet ${toolbarCollapse}"},{name:"Piekļūt iepriekšējai fokusa vietas komandai",
 legend:"Nospiediet ${accessPreviousSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pirms kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},{name:"Piekļūt nākošā fokusa apgabala komandai",legend:"Nospiediet ${accessNextSpace} lai piekļūtu tuvākajai nepieejamajai fokusa vietai pēc kursora. Piemēram: diviem blakus esošiem līnijas HR elementiem. Atkārtojiet taustiņu kombināciju lai piekļūtu pie tālākām vietām."},
-{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index ad67570de56d59fbb899c447b23b04258d0a94a6..ec2bdc6262e07dacc89f261c827baee90bae2efe 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","mk",{title:"Инструкции за пристапност",contents:"Содржина на делот за помош. За да го затворите овој дијалог притиснете ESC.",legend:[{name:"Општо",items:[{name:"Мени за уредувачот",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Дијалот за едиторот",
 legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Контекст-мени на уредувачот",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
 {name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
 {name:"Наредби",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up",end:"End",home:"Home",leftArrow:"Стрелка лево",
-upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert","delete":"Delete",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Пауза",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Up",
+leftArrow:"Стрелка лево",upArrow:"Стрелка горе",rightArrow:"Стрелка десно",downArrow:"Стрелка доле",insert:"Insert",leftWindowKey:"Лево Windows копче",rightWindowKey:"Десно Windows копче",selectKey:"Select копче",numpad0:"Нум. таст. 0",numpad1:"Нум. таст. 1",numpad2:"Нум. таст. 2",numpad3:"Нум. таст. 3",numpad4:"Нум. таст. 4",numpad5:"Нум. таст. 5",numpad6:"Нум. таст. 6",numpad7:"Нум. таст. 7",numpad8:"Нум. таст. 8",numpad9:"Нум. таст. 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
 divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index c88985748af9f1b37e3f6d568ff95e5126360ed5..09c4bd2b444e915a40995ed685f7883b64278c57 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","mn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ерөнхий",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 819372d0dc1a92c0503d586b53382020ad24b480..e8a2a80d81794b65a48fcb8ca9e0920e81d54cd7 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","nb",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
 legend:"Mens du er i en dialog, trykk TAB for å navigere til neste dialogelement, trykk SHIFT+TAB for å flytte til forrige dialogelement, trykk ENTER for å akseptere dialogen, trykk ESC for å avbryte dialogen. Når en dialog har flere faner, kan fanelisten nås med enten ALT+F10 eller med TAB. Når fanelisten er fokusert, går man til neste og forrige fane med henholdsvis HØYRE og VENSTRE PILTAST."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
 {name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
 {name:"Hurtigtaster",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Lenke",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tabulator",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert","delete":"Delete",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7",
+{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:"Lim inn som ren tekst",legend:"Trykk ${pastetext}",legendEdge:"Trykk ${pastetext}, etterfulgt av ${past}"}]}],tab:"Tabulator",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Venstre piltast",upArrow:"Opp-piltast",rightArrow:"Høyre piltast",downArrow:"Ned-piltast",insert:"Insert",leftWindowKey:"Venstre Windows-tast",rightWindowKey:"Høyre Windows-tast",selectKey:"Velg nøkkel",numpad0:"Numerisk tastatur 0",numpad1:"Numerisk tastatur 1",numpad2:"Numerisk tastatur 2",numpad3:"Numerisk tastatur 3",numpad4:"Numerisk tastatur 4",numpad5:"Numerisk tastatur 5",numpad6:"Numerisk tastatur 6",numpad7:"Numerisk tastatur 7",
 numpad8:"Numerisk tastatur 8",numpad9:"Numerisk tastatur 9",multiply:"Multipliser",add:"Legg til",subtract:"Trekk fra",decimalPoint:"Desimaltegn",divide:"Divider",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Likhetstegn",comma:"Komma",dash:"Bindestrek",period:"Punktum",forwardSlash:"Forover skråstrek",graveAccent:"Grav aksent",openBracket:"Åpne parentes",backSlash:"Bakover skråstrek",
 closeBracket:"Lukk parentes",singleQuote:"Enkelt sitattegn"});
\ No newline at end of file
index 98e465230111973cae068cf93366c53eacae06a6..0f35b3e2faf3c65f9180d624345c9d7b570d0af5 100644 (file)
@@ -1,11 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","nl",{title:"Toegankelijkheidsinstructies",contents:"Help-inhoud. Druk op ESC om dit dialoog te sluiten.",legend:[{name:"Algemeen",items:[{name:"Werkbalk tekstverwerker",legend:"Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren."},
-{name:"Dialoog tekstverwerker",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},
-{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},
-{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},
-{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen","delete":"Verwijderen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen",add:"Toevoegen",
-subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"});
\ No newline at end of file
+{name:"Dialoog tekstverwerker",legend:"In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS."},
+{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},
+{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",
+legend:"Druk op ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:"Ga naar vorige focus spatie commando",legend:"Druk ${accessPreviousSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie voor de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},
+{name:"Ga naar volgende focus spatie commando",legend:"Druk ${accessNextSpace} om toegang te verkrijgen tot de dichtstbijzijnde onbereikbare focus spatie na de caret, bijvoorbeeld: twee aangrenzende HR elementen. Herhaal de toetscombinatie om de verste focus spatie te bereiken."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Pijl naar links",upArrow:"Pijl omhoog",rightArrow:"Pijl naar rechts",downArrow:"Pijl naar beneden",insert:"Invoegen",leftWindowKey:"Linker Windows-toets",rightWindowKey:"Rechter Windows-toets",selectKey:"Selecteer toets",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Vermenigvuldigen",
+add:"Toevoegen",subtract:"Aftrekken",decimalPoint:"Decimaalteken",divide:"Delen",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Puntkomma",equalSign:"Is gelijk-teken",comma:"Komma",dash:"Koppelteken",period:"Punt",forwardSlash:"Slash",graveAccent:"Accent grave",openBracket:"Vierkant haakje openen",backSlash:"Backslash",closeBracket:"Vierkant haakje sluiten",singleQuote:"Apostrof"});
\ No newline at end of file
index 4fb70ddea5d3c2210719d896d00edd197ea4658f..b1e01d42c2b219873559f4cdc7f9548334690f94 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","no",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for å lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for å navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT+TAB. Flytt til neste og forrige verktøylinjeknapp med HØYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å aktivere verktøylinjeknappen."},{name:"Dialog for editor",
 legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for å åpne kontekstmeny. Gå til neste alternativ i menyen med TAB eller PILTAST NED. Gå til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge menyalternativet. Åpne undermenyen på valgt alternativ med MELLOMROM eller ENTER eller HØYRE PILTAST. Gå tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
 {name:"Listeboks for editor",legend:"I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for å navigere til verktøylinjen som viser elementsti. Gå til neste elementknapp med TAB eller HØYRE PILTAST. Gå til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for å velge elementet i editoren."}]},
 {name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:"Gå til forrige fokusområde",legend:"Trykk ${accessPreviousSpace} for å komme til nærmeste fokusområde før skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},
-{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
-end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
+{name:"Gå til neste fokusområde",legend:"Trykk ${accessNextSpace} for å komme til nærmeste fokusområde etter skrivemarkøren som ikke kan nås på vanlig måte, for eksempel to tilstøtende HR-elementer. Gjenta tastekombinasjonen for å komme til fokusområder lenger unna i dokumentet."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",
 divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
diff --git a/release/plugins/a11yhelp/dialogs/lang/oc.js b/release/plugins/a11yhelp/dialogs/lang/oc.js
new file mode 100644 (file)
index 0000000..abab681
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","oc",{title:"Instruccions d'accessibilitat",contents:"Contengut de l'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.",legend:[{name:"General",items:[{name:"Barra d'aisinas de l'editor",legend:"Quichar sus ${toolbarFocus} per accedir a la barra d'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d'espaci o la tòca Entrada per activer lo boton de barra d'aisinas."},
+{name:"Fenèstra de l'editor",legend:"Dins una bóstia de dialòg, quichar sus Tab per passar a l'element seguent, quichar sus Maj+Tab per passar a l'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament."},{name:"Menú contextual de l'editor",legend:"Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o la tòca Entrada per seleccionar l'opcion del menu. Quichar sus la barra d'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l'opcion seleccionada. Tornar a l'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap."},
+{name:"Zòna de lista de l'editor",legend:"Dins una lista en menú desenrotlant, se desplaçar cap a l'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant."},{name:"Barra del camin d'elements de l'editor",legend:"Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d'Ariana dels elements. Se desplaçar cap al boton de l'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d'espaci o sus Entrada per seleccionar l'element dins l'editor."}]},
+{name:"Comandas",items:[{name:"Anullar la comanda",legend:"Quichar sus ${undo}"},{name:"Comanda restablir",legend:"Quichar sus ${redo}"},{name:" Comanda gras",legend:"Quichar sus ${bold}"},{name:" Comanda italica",legend:"Quichar sus ${italic}"},{name:" Comanda solinhat",legend:"Quichar sus ${underline}"},{name:" Comanda ligam",legend:"Quichar sus ${link}"},{name:"Comanda enrotlar la barra d'aisinas",legend:"Quichar sus ${toolbarCollapse}"},{name:"Comanda d'accès a l'element seleccionable precedent",
+legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents."},{name:"Comanda d'accès a l'element seleccionable seguent",legend:"Quichar sus ${accessNextSpace} per accedir a l'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents."},
+{name:" Ajuda sus l'accessibilitat",legend:"Quichar sus ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tabulacion",pause:"Pausa",capslock:"Verr. Maj.",escape:"Escap",pageUp:"Pagina superiora",pageDown:"Pagina seguenta",leftArrow:"Sageta esquèrra",upArrow:"Sageta naut",rightArrow:"Sageta dreita",downArrow:"Sageta bassa",insert:"Inser",leftWindowKey:"Tòca Windows esquèrra",rightWindowKey:"Tòca Windows dreita",selectKey:"Tòca Seleccionar",
+numpad0:"0 del pavat numeric",numpad1:"1 del pavat numeric",numpad2:"2 del pavat numeric",numpad3:"3 del pavat numeric",numpad4:"4 del pavat numeric",numpad5:"5 del pavat numeric",numpad6:"6 del pavat numeric",numpad7:"7 del pavat numeric",numpad8:"Pavat numeric 8",numpad9:"9 del pavat numeric",multiply:"Multiplicar",add:"Plus",subtract:"Mens",decimalPoint:"Punt decimal",divide:"Devesir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Verr. Num.",
+scrollLock:"Arrèst desfil.",semiColon:"Punt-virgula",equalSign:"Signe egal",comma:"Virgula",dash:"Jonhent",period:"Punt",forwardSlash:"Barra oblica",graveAccent:"Accent grèu",openBracket:"Parentèsi dobèrta",backSlash:"Barra oblica invèrsa",closeBracket:"Parentèsi tampanta",singleQuote:"Apostròfa"});
\ No newline at end of file
index 33580a23e08c418ac2df609927f6300616fd7438..0c59c918199bfd91e55c752136f4aa368d7eac89 100644 (file)
@@ -1,13 +1,13 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","pl",{title:"Instrukcje dotyczące dostępności",contents:"Zawartość pomocy. Wciśnij ESC, aby zamknąć to okno.",legend:[{name:"Informacje ogólne",items:[{name:"Pasek narzędzi edytora",legend:"Naciśnij ${toolbarFocus}, by przejść do paska narzędzi. Przejdź do następnej i poprzedniej grupy narzędzi używając TAB oraz SHIFT+TAB. Przejdź do następnego i poprzedniego przycisku paska narzędzi za pomocą STRZAŁKI W PRAWO lub STRZAŁKI W LEWO. Naciśnij SPACJĘ lub ENTER by aktywować przycisk paska narzędzi."},
 {name:"Okno dialogowe edytora",legend:"Wewnątrz okna dialogowego naciśnij TAB, by przejść do kolejnego elementu tego okna lub SHIFT+TAB, by przejść do poprzedniego elementu okna. Naciśnij ENTER w celu zatwierdzenia opcji okna dialogowego lub ESC w celu anulowania zmian. Jeśli okno dialogowe ma kilka zakładek, do listy zakładek można przejść za pomocą ALT+F10 lub TAB. Gdy lista zakładek jest aktywna, możesz przejść do kolejnej i poprzedniej zakładki za pomocą STRZAŁKI W PRAWO i STRZAŁKI W LEWO."},
 {name:"Menu kontekstowe edytora",legend:"Wciśnij ${contextMenu} lub PRZYCISK APLIKACJI aby otworzyć menu kontekstowe. Przejdź do następnej pozycji menu wciskając TAB lub STRZAŁKĘ W DÓŁ. Przejdź do poprzedniej pozycji menu wciskając SHIFT + TAB lub STRZAŁKĘ W GÓRĘ. Wciśnij SPACJĘ lub ENTER aby wygrać pozycję menu. Otwórz pod-menu obecnej pozycji wciskając SPACJĘ lub ENTER lub STRZAŁKĘ W PRAWO. Wróć do pozycji nadrzędnego menu wciskając ESC lub STRZAŁKĘ W LEWO. Zamknij menu wciskając ESC."},{name:"Lista w edytorze",
 legend:"Wewnątrz listy przejdź do kolejnego elementu listy za pomocą przycisku TAB lub STRZAŁKI W DÓŁ. Przejdź do poprzedniego elementu listy za pomocą SHIFT+TAB lub STRZAŁKI W GÓRĘ. Naciśnij SPACJĘ lub ENTER w celu wybrania opcji z listy. Naciśnij ESC, by zamknąć listę."},{name:"Pasek ścieżki elementów edytora",legend:"Naciśnij ${elementsPathFocus} w celu przejścia do paska ścieżki elementów edytora. W celu przejścia do kolejnego elementu naciśnij klawisz TAB lub STRZAŁKI W PRAWO. W celu przejścia do poprzedniego elementu naciśnij klawisze SHIFT+TAB lub STRZAŁKI W LEWO. By wybrać element w edytorze, użyj klawisza SPACJI lub ENTER."}]},
-{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Strzałka w lewo",
-upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert","delete":"Delete",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru",numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",
-numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus",subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",
-period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"});
\ No newline at end of file
+{name:"Polecenia",items:[{name:"Polecenie Cofnij",legend:"Naciśnij ${undo}"},{name:"Polecenie Ponów",legend:"Naciśnij ${redo}"},{name:"Polecenie Pogrubienie",legend:"Naciśnij ${bold}"},{name:"Polecenie Kursywa",legend:"Naciśnij ${italic}"},{name:"Polecenie Podkreślenie",legend:"Naciśnij ${underline}"},{name:"Polecenie Wstaw/ edytuj odnośnik",legend:"Naciśnij ${link}"},{name:"Polecenie schowaj pasek narzędzi",legend:"Naciśnij ${toolbarCollapse}"},{name:"Przejdź do poprzedniego miejsca, w którym można ustawić focus",
+legend:"Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},{name:"Przejdź do następnego miejsca, w którym można ustawić focus",legend:"Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc."},
+{name:"Pomoc dotycząca dostępności",legend:"Naciśnij ${a11yHelp}"},{name:"Wklej jako tekst",legend:"Naciśnij ${pastetext}",legendEdge:"Naciśnij ${pastetext}, a następnie ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Strzałka w lewo",upArrow:"Strzałka w górę",rightArrow:"Strzałka w prawo",downArrow:"Strzałka w dół",insert:"Insert",leftWindowKey:"Lewy klawisz Windows",rightWindowKey:"Prawy klawisz Windows",selectKey:"Klawisz wyboru",
+numpad0:"Klawisz 0 na klawiaturze numerycznej",numpad1:"Klawisz 1 na klawiaturze numerycznej",numpad2:"Klawisz 2 na klawiaturze numerycznej",numpad3:"Klawisz 3 na klawiaturze numerycznej",numpad4:"Klawisz 4 na klawiaturze numerycznej",numpad5:"Klawisz 5 na klawiaturze numerycznej",numpad6:"Klawisz 6 na klawiaturze numerycznej",numpad7:"Klawisz 7 na klawiaturze numerycznej",numpad8:"Klawisz 8 na klawiaturze numerycznej",numpad9:"Klawisz 9 na klawiaturze numerycznej",multiply:"Przemnóż",add:"Plus",
+subtract:"Minus",decimalPoint:"Separator dziesiętny",divide:"Podziel",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Średnik",equalSign:"Znak równości",comma:"Przecinek",dash:"Pauza",period:"Kropka",forwardSlash:"Ukośnik prawy",graveAccent:"Akcent słaby",openBracket:"Nawias kwadratowy otwierający",backSlash:"Ukośnik lewy",closeBracket:"Nawias kwadratowy zamykający",singleQuote:"Apostrof"});
\ No newline at end of file
index 1cf81f779f25a8a5522091533e5df0c618d4d7b1..317e571f752892a74414b6c928693cbb0cce70b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilidade",contents:"Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.",legend:[{name:"Geral",items:[{name:"Barra de Ferramentas do Editor",legend:"Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT+TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
@@ -7,7 +7,7 @@ CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilida
 {name:"Menu de Contexto do Editor",legend:"Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÇO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC."},{name:"Caixa de Lista do Editor",legend:"Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista."},
 {name:"Barra de Caminho do Elementos do Editor",legend:"Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},{name:"Comandos",items:[{name:" Comando Desfazer",legend:"Pressione ${undo}"},{name:" Comando Refazer",legend:"Pressione ${redo}"},{name:" Comando Negrito",legend:"Pressione ${bold}"},
 {name:" Comando Itálico",legend:"Pressione ${italic}"},{name:" Comando Sublinhado",legend:"Pressione ${underline}"},{name:" Comando Link",legend:"Pressione ${link}"},{name:" Comando Fechar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acessar o comando anterior de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo antes do cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},
-{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"}]}],backspace:"Tecla Backspace",tab:"Tecla Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",
-pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert","delete":"Delete",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico",
+{name:"Acessar próximo fomando de spaço de foco",legend:"Pressione ${accessNextSpace} para acessar o espaço de foco não alcançável mais próximo após o cursor, por exemplo: dois elementos HR adjacentes. Repita a combinação de teclas para alcançar espaços de foco distantes."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tecla Tab",pause:"Pause",capslock:"Caps Lock",
+escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Seta à Esquerda",upArrow:"Seta à Cima",rightArrow:"Seta à Direita",downArrow:"Seta à Baixo",insert:"Insert",leftWindowKey:"Tecla do Windows Esquerda",rightWindowKey:"Tecla do Windows Direita",selectKey:"Tecla Selecionar",numpad0:"0 do Teclado Numérico",numpad1:"1 do Teclado Numérico",numpad2:"2 do Teclado Numérico",numpad3:"3 do Teclado Numérico",numpad4:"4 do Teclado Numérico",numpad5:"5 do Teclado Numérico",numpad6:"6 do Teclado Numérico",
 numpad7:"7 do Teclado Numérico",numpad8:"8 do Teclado Numérico",numpad9:"9 do Teclado Numérico",multiply:"Multiplicar",add:"Mais",subtract:"Subtrair",decimalPoint:"Ponto",divide:"Dividir",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto-e-vírgula",equalSign:"Igual",comma:"Vírgula",dash:"Hífen",period:"Ponto",forwardSlash:"Barra",graveAccent:"Acento Grave",openBracket:"Abrir Conchetes",
 backSlash:"Contra-barra",closeBracket:"Fechar Colchetes",singleQuote:"Aspas Simples"});
\ No newline at end of file
index 620dcbed925a66e39ca5c731594dad6c99a290d0..a8c788dfb4c034310c3f66cbba1fc54a1c049a75 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
-{name:"Janela do Editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de Contexto do Editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
-{name:"Editor de caixa em lista",legend:"Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista."},{name:"Caminho Barra Elemento Editor",legend:"Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
-{name:"Comandos",items:[{name:"Comando de Anular",legend:"Carregar ${undo}"},{name:"Comando de Refazer",legend:"Pressione ${redo}"},{name:"Comando de Negrito",legend:"Pressione ${bold}"},{name:"Comando de Itálico",legend:"Pressione ${italic}"},{name:"Comando de Sublinhado",legend:"Pressione ${underline}"},{name:"Comando de Hiperligação",legend:"Pressione ${link}"},{name:"Comando de Ocultar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Acesso comando do espaço focus anterior",
+CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Instruções de acessibilidade",contents:"Conteúdo de ajuda. Use a tecla ESC para fechar esta janela.",legend:[{name:"Geral",items:[{name:"Barra de ferramentas do editor",legend:"Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas."},
+{name:"Janela do editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Menu de contexto do editor",legend:"Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC."},
+{name:"Editor de caixa em lista",legend:"Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista."},{name:"Editor da barra de caminho dos elementos",legend:"Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor."}]},
+{name:"Comandos",items:[{name:"Comando de anular",legend:"Carregar ${undo}"},{name:"Comando de refazer",legend:"Clique ${redo}"},{name:"Comando de negrito",legend:"Pressione ${bold}"},{name:"Comando de itálico",legend:"Pressione ${italic}"},{name:"Comando de sublinhado",legend:"Pressione ${underline}"},{name:"Comando de hiperligação",legend:"Pressione ${link}"},{name:"Comando de ocultar barra de ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:"Aceder ao comando espaço de foco anterior",
 legend:"Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},{name:"Acesso comando do espaço focus seguinte",legend:"Pressione ${accessNextSpace} para aceder ao espaço do focos inalcançável mais perto depois do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes."},
-{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"Fim",home:"Entrada",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir","delete":"Eliminar",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",
-numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Vírgula",dash:"Dash",period:"Period",
-forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"Ajuda a acessibilidade",legend:"Pressione ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Separador",pause:"Pausa",capslock:"Maiúsculas",escape:"Esc",pageUp:"Subir página",pageDown:"Descer página",leftArrow:"Seta esquerda",upArrow:"Seta para cima",rightArrow:"Seta direita",downArrow:"Seta para baixo",insert:"Inserir",leftWindowKey:"Tecla esquerda Windows",rightWindowKey:"Tecla direita Windows",selectKey:"Selecionar tecla",
+numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiplicar",add:"Adicionar",subtract:"Subtrair",decimalPoint:"Ponto decimal",divide:"Separar",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Ponto e vírgula",equalSign:"Sinald e igual",comma:"Vírgula",
+dash:"Cardinal",period:"Ponto",forwardSlash:"Forward Slash",graveAccent:"Acento grave",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Plica"});
\ No newline at end of file
index a92f60f2232752aaa051d2c77a88efe5a8dae1a0..72f91d4667628cc56f771e6459bc2c93c43cec7f 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ro",{title:"Instrucțiuni de accesibilitate",contents:"Cuprins. Pentru a închide acest dialog, apăsați tasta ESC.",legend:[{name:"General",items:[{name:"Editează bara instrumente.",legend:"Apasă ${toolbarFocus} pentru a naviga prin bara de instrumente. Pentru a te mișca prin grupurile de instrumente folosește tastele TAB și SHIFT+TAB. Pentru a te mișca intre diverse instrumente folosește tastele SĂGEATĂ DREAPTA sau SĂGEATĂ STÂNGA. Apasă butonul SPAȚIU sau ENTER pentru activarea instrumentului."},
 {name:"Dialog editor",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editor meniu contextual",legend:"Apasă ${contextMenu} sau TASTA MENIU pentru a deschide meniul contextual. Treci la următoarea opțiune din meniu cu TAB sau SĂGEATĂ JOS. Treci la opțiunea anterioară cu  SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din meniu. Deschide sub-meniul opțiunii curente cu SPAȚIU sau ENTER sau SĂGEATĂ DREAPTA. Revino la elementul din meniul părinte cu ESC sau SĂGEATĂ STÂNGA. Închide meniul de context cu ESC."},
 {name:"Editor Casetă Listă",legend:"În interiorul unei liste, treci la următorull element cu TAB sau SĂGEATĂ JOS. Treci la elementul anterior din listă cu SHIFT+TAB sau SĂGEATĂ SUS. Apasă SPAȚIU sau ENTER pentru a selecta opțiunea din listă. Apasă ESC pentru a închide lista."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
 {name:"Comenzi",items:[{name:" Undo command",legend:"Apasă ${undo}"},{name:"Comanda precedentă",legend:"Apasă ${redo}"},{name:"Comanda Îngroșat",legend:"Apasă ${bold}"},{name:"Comanda Inclinat",legend:"Apasă ${italic}"},{name:"Comanda Subliniere",legend:"Apasă ${underline}"},{name:"Comanda Legatură",legend:"Apasă ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",
-upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",
+leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",
 f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 667c872d88a61030ab6702d100b9b07ac201204d..6381aaee061b16772928059c71c1469dbd44d29c 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ru",{title:"Горячие клавиши",contents:"Помощь. Для закрытия этого окна нажмите ESC.",legend:[{name:"Основное",items:[{name:"Панель инструментов",legend:"Нажмите ${toolbarFocus} для перехода к панели инструментов. Для перемещения между группами панели инструментов используйте TAB и SHIFT+TAB. Для перемещения между кнопками панели иструментов используйте кнопки ВПРАВО или ВЛЕВО. Нажмите ПРОБЕЛ или ENTER для запуска кнопки панели инструментов."},{name:"Диалоги",legend:'Внутри диалога, нажмите TAB чтобы перейти к следующему элементу диалога, нажмите SHIFT+TAB чтобы перейти к предыдущему элементу диалога, нажмите ENTER чтобы отправить диалог, нажмите ESC чтобы отменить диалог. Когда диалоговое окно имеет несколько вкладок, получить доступ к панели вкладок как части диалога можно нажатием или сочетания ALT+F10 или TAB, при этом активные элементы диалога будут перебираться с учетом порядка табуляции. При активной панели вкладок, переход к следующей или предыдущей вкладке осуществляется нажатием стрелки "ВПРАВО" или стрелки "ВЛЕВО" соответственно.'},
 {name:"Контекстное меню",legend:'Нажмите ${contextMenu} или клавишу APPLICATION, чтобы открыть контекстное меню. Затем перейдите к следующему пункту меню с помощью TAB или стрелкой "ВНИЗ". Переход к предыдущей опции - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию меню. Открыть подменю текущей опции - SPACE или ENTER или стрелкой "ВПРАВО". Возврат к родительскому пункту меню - ESC или стрелкой "ВЛЕВО". Закрытие контекстного меню - ESC.'},{name:"Редактор списка",
 legend:'Внутри окна списка, переход к следующему пункту списка - TAB или стрелкой "ВНИЗ". Переход к предыдущему пункту списка - SHIFT+TAB или стрелкой "ВВЕРХ". Нажмите SPACE, или ENTER, чтобы задействовать опцию списка. Нажмите ESC, чтобы закрыть окно списка.'},{name:"Путь к элементу",legend:'Нажмите ${elementsPathFocus}, чтобы перейти к панели пути элементов. Переход к следующей кнопке элемента - TAB или стрелкой "ВПРАВО". Переход к предыдущей кнопку - SHIFT+TAB или стрелкой "ВЛЕВО". Нажмите SPACE, или ENTER, чтобы выбрать элемент в редакторе.'}]},
 {name:"Команды",items:[{name:"Отменить",legend:"Нажмите ${undo}"},{name:"Повторить",legend:"Нажмите ${redo}"},{name:"Полужирный",legend:"Нажмите ${bold}"},{name:"Курсив",legend:"Нажмите ${italic}"},{name:"Подчеркнутый",legend:"Нажмите ${underline}"},{name:"Гиперссылка",legend:"Нажмите ${link}"},{name:"Свернуть панель инструментов",legend:"Нажмите ${toolbarCollapse}"},{name:"Команды доступа к предыдущему фокусному пространству",legend:'Нажмите ${accessPreviousSpace}, чтобы обратиться к ближайшему недостижимому фокусному пространству перед символом "^", например: два смежных HR элемента. Повторите комбинацию клавиш, чтобы достичь отдаленных фокусных пространств.'},
-{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",
-home:"Home",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert","delete":"Delete",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",
-divide:"Делить",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"});
\ No newline at end of file
+{name:"Команды доступа к следующему фокусному пространству",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Справка по горячим клавишам",legend:"Нажмите ${a11yHelp}"},{name:"Вставить только текст",legend:"Нажмите ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"Стрелка влево",upArrow:"Стрелка вверх",rightArrow:"Стрелка вправо",downArrow:"Стрелка вниз",insert:"Insert",leftWindowKey:"Левая клавиша Windows",rightWindowKey:"Правая клавиша Windows",selectKey:"Выбрать",numpad0:"Цифра 0",numpad1:"Цифра 1",numpad2:"Цифра 2",numpad3:"Цифра 3",numpad4:"Цифра 4",numpad5:"Цифра 5",numpad6:"Цифра 6",numpad7:"Цифра 7",numpad8:"Цифра 8",numpad9:"Цифра 9",multiply:"Умножить",add:"Плюс",subtract:"Вычесть",decimalPoint:"Десятичная точка",divide:"Делить",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Точка с запятой",equalSign:"Равно",comma:"Запятая",dash:"Тире",period:"Точка",forwardSlash:"Наклонная черта",graveAccent:"Апостроф",openBracket:"Открыть скобку",backSlash:"Обратная наклонная черта",closeBracket:"Закрыть скобку",singleQuote:"Одинарная кавычка"});
\ No newline at end of file
index 56b5b92add7c4b7e35078edb5fbeced52029630b..0f21a5fb2f1f0c326756685c1ad3ed7e5e414371 100644 (file)
@@ -1,10 +1,10 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","si",{title:"ළඟා වියහැකි ",contents:"උදව් සඳහා අන්තර්ගතය.නික්මයෙමට ESC බොත්තම ඔබන්න",legend:[{name:"පොදු කරුණු",items:[{name:"සංස්කරණ මෙවලම් ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."},{name:"සංස්කරණ ",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"සංස්කරණ අඩංගුවට ",legend:"ඔබන්න ${අන්තර්ගත මෙනුව} හෝ  APPLICATION KEY  අන්තර්ගත-මෙනුව විවුරතකිරීමට. ඊළඟ මෙනුව-ව්කල්පයන්ට යෑමට TAB හෝ DOWN ARROW බොත්තම ද, පෙර විකල්පයන්ටයෑමට SHIFT+TAB හෝ  UP ARROW බොත්තම ද, මෙනුව-ව්කල්පයන් තේරීමට SPACE හෝ ENTER බොත්තම ද,  දැනට විවුර්තව ඇති උප-මෙනුවක වීකල්ප තේරීමට SPACE හෝ ENTER හෝ RIGHT ARROW ද, නැවත පෙර ප්‍රධාන මෙනුවට යෑමට  ESC හෝ LEFT ARROW බොත්තම ද.  අන්තර්ගත-මෙනුව වැසීමට  ESC බොත්තම ද ඔබන්න."},{name:"සංස්කරණ තේරුම් ",legend:"තේරුම් කොටුව තුළ , ඊළඟ අයිතමයට යෑමට TAB හෝ DOWN ARROW , පෙර අයිතමයට යෑමට SHIFT+TAB හෝ UP ARROW . අයිතම විකල්පයන් තේරීමට SPACE හෝ ENTER ,තේරුම් කොටුව වැසීමට ESC බොත්තම් ද ඔබන්න."},
 {name:"සංස්කරණ අංග සහිත ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT+TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."}]},{name:"විධාන",items:[{name:"විධානය වෙනස් ",legend:"ඔබන්න ${වෙනස් කිරීම}"},{name:"විධාන නැවත් පෙර පරිදිම වෙනස්කර ගැනීම.",legend:"ඔබන්න ${නැවත් පෙර පරිදිම වෙනස්කර ගැනීම}"},{name:"තද අකුරින් විධාන",legend:"ඔබන්න ${තද }"},
-{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර  වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්‍රවේශ ",legend:"ඔබන්න  ${a11y }"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",
-alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",
-numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
+{name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර  වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත්  විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්‍රවේශ ",legend:"ඔබන්න  ${a11y }"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],
+tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",
+add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 6f16ff96453fbdd5513eef4b7fde1be5125b7a63..dc59887d6c1a1ab7f2b575413dcf6668d1e2342c 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","sk",{title:"Inštrukcie prístupnosti",contents:"Pomocný obsah. Pre zatvorenie tohto okna, stlačte ESC.",legend:[{name:"Všeobecne",items:[{name:"Lišta nástrojov editora",legend:"Stlačte ${toolbarFocus} pre navigáciu na lištu nástrojov. Medzi ďalšou a predchádzajúcou lištou nástrojov sa pohybujete s TAB a SHIFT+TAB. Medzi ďalším a predchádzajúcim tlačidlom na lište nástrojov sa pohybujete s pravou šípkou a ľavou šípkou. Stlačte medzerník alebo ENTER pre aktiváciu tlačidla lišty nástrojov."},
-{name:"Editorový dialóg",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."},
+{name:"Editorový dialóg",legend:"V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU."},{name:"Editorové kontextové menu",legend:"Stlačte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ďalšie možnosti menu s TAB alebo dolnou šípkou. Presunte sa k predchádzajúcej možnosti s SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzerníkom, alebo ENTER, alebo pravou šípkou. Vráťte sa späť do položky rodičovského menu s ESC alebo ľavou šípkou. Zatvorte kontextové menu s ESC."},
 {name:"Editorov box zoznamu",legend:"V boxe zoznamu, presuňte sa na ďalšiu položku v zozname s TAB alebo dolnou šípkou. Presuňte sa k predchádzajúcej položke v zozname so SHIFT+TAB alebo hornou šípkou. Stlačte medzerník alebo ENTER pre výber možnosti zoznamu. Stlačte ESC pre zatvorenie boxu zoznamu."},{name:"Editorove pásmo cesty prvku",legend:"Stlačte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. Presuňte sa na tlačidlo ďalšieho prvku s TAB alebo pravou šípkou. Presuňte sa k predchádzajúcemu tlačidlu s SHIFT+TAB alebo ľavou šípkou. Stlačte medzerník alebo ENTER pre výber prvku v editore."}]},
 {name:"Príkazy",items:[{name:"Vrátiť príkazy",legend:"Stlačte ${undo}"},{name:"Nanovo vrátiť príkaz",legend:"Stlačte ${redo}"},{name:"Príkaz na stučnenie",legend:"Stlačte ${bold}"},{name:"Príkaz na kurzívu",legend:"Stlačte ${italic}"},{name:"Príkaz na podčiarknutie",legend:"Stlačte ${underline}"},{name:"Príkaz na odkaz",legend:"Stlačte ${link}"},{name:"Príkaz na zbalenie lišty nástrojov",legend:"Stlačte ${toolbarCollapse}"},{name:"Prejsť na predchádzajúcu zamerateľnú medzeru príkazu",legend:"Stlačte ${accessPreviousSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery pred vsuvkuo. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},
-{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore",pageDown:"Stránka dole",
-end:"End",home:"Home",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert","delete":"Delete",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",
-decimalPoint:"Desatinná čiarka",divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"});
\ No newline at end of file
+{name:"Prejsť na ďalší ",legend:"Stlačte ${accessNextSpace} pre prístup na najbližšie nedosiahnuteľné zamerateľné medzery po vsuvke. Napríklad: dve za sebou idúce horizontálne čiary. Opakujte kombináciu klávesov pre dosiahnutie vzdialených zamerateľných medzier."},{name:"Pomoc prístupnosti",legend:"Stlačte ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Stránka hore",
+pageDown:"Stránka dole",leftArrow:"Šípka naľavo",upArrow:"Šípka hore",rightArrow:"Šípka napravo",downArrow:"Šípka dole",insert:"Insert",leftWindowKey:"Ľavé Windows tlačidlo",rightWindowKey:"Pravé Windows tlačidlo",selectKey:"Tlačidlo Select",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Násobenie",add:"Sčítanie",subtract:"Odčítanie",decimalPoint:"Desatinná čiarka",
+divide:"Delenie",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Bodkočiarka",equalSign:"Rovná sa",comma:"Čiarka",dash:"Pomĺčka",period:"Bodka",forwardSlash:"Lomítko",graveAccent:"Zdôrazňovanie prízvuku",openBracket:"Hranatá zátvorka otváracia",backSlash:"Backslash",closeBracket:"Hranatá zátvorka zatváracia",singleQuote:"Jednoduché úvodzovky"});
\ No newline at end of file
index 0671357d52336a332a34ecfe7df5a975fc33c49b..2df296aa084b71b919b9a85107bc0f8c9516bfad 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila Dostopnosti",contents:"Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Urejevalna Orodna Vrstica",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
-{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Urejevalni Kontekstni Meni",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
+CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Navodila za dostopnost",contents:"Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.",legend:[{name:"Splošno",items:[{name:"Orodna vrstica urejevalnika",legend:"Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice."},
+{name:"Urejevalno Pogovorno Okno",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},{name:"Kontekstni meni urejevalnika",legend:"Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC."},
 {name:"Urejevalno Seznamsko Polje",legend:"Znotraj seznama, se premaknete na naslednji element seznama s tipko TAB ali PUŠČICO DOL. Z SHIFT+TAB ali PUŠČICO GOR se premaknete na prejšnji element seznama. Pritisnite tipko SPACE ali ENTER za izbiro elementa. Pritisnite tipko ESC, da zaprete seznam."},{name:"Urejevalna vrstica poti elementa",legend:"Pritisnite ${elementsPathFocus} za pomikanje po vrstici elementnih poti. S TAB ali DESNA PUŠČICA se premaknete na naslednji gumb elementa. Z SHIFT+TAB ali LEVO PUŠČICO se premaknete na prejšnji gumb elementa. Pritisnite SPACE ali ENTER za izbiro elementa v urejevalniku."}]},
 {name:"Ukazi",items:[{name:"Razveljavi ukaz",legend:"Pritisnite ${undo}"},{name:"Ponovi ukaz",legend:"Pritisnite ${redo}"},{name:"Krepki ukaz",legend:"Pritisnite ${bold}"},{name:"Ležeči ukaz",legend:"Pritisnite ${italic}"},{name:"Poudarni ukaz",legend:"Pritisnite ${underline}"},{name:"Ukaz povezave",legend:"Pritisnite ${link}"},{name:"Skrči Orodno Vrstico Ukaz",legend:"Pritisnite ${toolbarCollapse}"},{name:"Dostop do prejšnjega ukaza ostrenja",legend:"Pritisnite ${accessPreviousSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora pred strešico, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},
-{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč Dostopnosti",legend:"Pritisnite ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",
-home:"Home",leftArrow:"Levo puščica",upArrow:"Gor puščica",rightArrow:"Desno puščica",downArrow:"Dol puščica",insert:"Insert","delete":"Delete",leftWindowKey:"Leva Windows tipka",rightWindowKey:"Desna Windows tipka",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
-divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Oklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
+{name:"Dostop do naslednjega ukaza ostrenja",legend:"Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore."},{name:"Pomoč dostopnosti",legend:"Pritisnite ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
+pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Puščica levo",upArrow:"Puščica gor",rightArrow:"Puščica desno",downArrow:"Puščica dol",insert:"Insert",leftWindowKey:"Leva tipka Windows",rightWindowKey:"Desna tipka Windows",selectKey:"Select tipka",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Zmnoži",add:"Dodaj",subtract:"Odštej",decimalPoint:"Decimalna vejica",
+divide:"Deli",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Podpičje",equalSign:"Enačaj",comma:"Vejica",dash:"Vezaj",period:"Pika",forwardSlash:"Desna poševnica",graveAccent:"Krativec",openBracket:"Oklepaj",backSlash:"Leva poševnica",closeBracket:"Zaklepaj",singleQuote:"Opuščaj"});
\ No newline at end of file
index 8f9d5c782c7ca8d5b8069f1fc21456448a59eac1..77db830b5f567b85a76c161d3b970f3c30da1e62 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","sq",{title:"Udhëzimet e Qasjes",contents:"Përmbajtja ndihmëse. Për ta mbyllur dialogun shtyp ESC.",legend:[{name:"Të përgjithshme",items:[{name:"Shiriti i Redaktuesit",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Dialogu i Redaktuesit",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Komandat",items:[{name:"Rikthe komandën",legend:"Shtyp ${undo}"},{name:"Ribëj komandën",legend:"Shtyp ${redo}"},{name:"Komanda e trashjes së tekstit",legend:"Shtyp ${bold}"},{name:"Komanda kursive",legend:"Shtyp ${italic}"},
 {name:"Komanda e nënvijëzimit",legend:"Shtyp ${underline}"},{name:"Komanda e Nyjes",legend:"Shtyp ${link}"},{name:" Toolbar Collapse command",legend:"Shtyp ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"}]}],backspace:"Prapa",tab:"Fletë",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Shenja majtas",upArrow:"Shenja sipër",rightArrow:"Shenja djathtas",downArrow:"Shenja poshtë",insert:"Shto","delete":"Grise",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:"Ndihmë Qasjeje",legend:"Shtyp ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Fletë",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Shenja majtas",upArrow:"Shenja sipër",rightArrow:"Shenja djathtas",downArrow:"Shenja poshtë",insert:"Shto",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Shto",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Presje",dash:"vizë",period:"Pikë",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Hape kllapën",backSlash:"Backslash",closeBracket:"Mbylle kllapën",singleQuote:"Single Quote"});
\ No newline at end of file
index ee71b676c63bc341f2b28bc350d2fbc936e66aeb..da9a17f3f40dc8b5bce518205c2f2f0020714987 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","sr-latn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Opšte",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index fd04d223c7c578ac71f2aeafb198e8e172948515..7d7c87d84b2884f3ae8a1a639eb22dd34c5bff6f 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","sr",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Опште",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
 legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 751a0751f1018202377fcbc844aa3de27242458c..8180336f390a53864e1db5d1e0b51480e6353eb0 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","sv",{title:"Hjälpmedelsinstruktioner",contents:"Hjälpinnehåll. För att stänga denna dialogruta trycker du på ESC.",legend:[{name:"Allmänt",items:[{name:"Editor verktygsfält",legend:"Tryck på ${toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregående verktygsfältsgrupp med TAB och SHIFT+TAB. Flytta till nästa och föregående knapp i verktygsfältet med HÖGERPIL eller VÄNSTERPIL. Tryck SPACE eller ENTER för att aktivera knappen i verktygsfältet."},
 {name:"Dialogeditor",legend:"Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan, tryck SKIFT+TAB för att flytta till föregående fält, tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT+F10 eller TAB för att navigera till fliklistan. med fliklistan vald flytta till nästa och föregående flik med HÖGER- eller VÄNSTERPIL."},{name:"Editor för innehållsmeny",legend:"Tryck på $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregående alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Öppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÖGERPIL. Gå tillbaka till överordnade menyalternativ med ESC eller VÄNSTERPIL. Stäng snabbmenyn med ESC."},
 {name:"Editor för list-box",legend:"Inuti en list-box, gå till nästa listobjekt med TAB eller NEDPIL. Flytta till föregående listobjekt med SHIFT+TAB eller UPPIL. Tryck SPACE eller ENTER för att välja listan alternativet. Tryck ESC för att stänga list-boxen."},{name:"Editor för elementens sökväg",legend:"Tryck på ${elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÖGERPIL. Flytta till föregående knapp med SKIFT+TAB eller VÄNSTERPIL. Tryck SPACE eller ENTER för att välja element i redigeraren."}]},
 {name:"Kommandon",items:[{name:"Ångra kommando",legend:"Tryck på ${undo}"},{name:"Gör om kommando",legend:"Tryck på ${redo}"},{name:"Kommandot fet stil",legend:"Tryck på ${bold}"},{name:"Kommandot kursiv",legend:"Tryck på ${italic}"},{name:"Kommandot understruken",legend:"Tryck på ${underline}"},{name:"Kommandot länk",legend:"Tryck på ${link}"},{name:"Verktygsfält Dölj kommandot",legend:"Tryck på ${toolbarCollapse}"},{name:"Gå till föregående fokus plats",legend:"Tryck på ${accessPreviousSpace} för att gå till närmast onåbara utrymme före markören, exempel: två intilliggande HR element. Repetera tangentkombinationen för att gå till nästa."},
-{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"}]}],backspace:"Backsteg",tab:"Tab",enter:"Retur",shift:"Skift",ctrl:"Ctrl",alt:"Alt",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up",pageDown:"Sida Ned",end:"Slut",
-home:"Hem",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga","delete":"Radera",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",
-divide:"Dividera",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"});
\ No newline at end of file
+{name:"Tillgå nästa fokuskommandots utrymme",legend:"Tryck ${accessNextSpace} på för att komma åt den närmaste onåbar fokus utrymme efter cirkumflex, till exempel: två intilliggande HR element. Upprepa tangentkombinationen för att nå avlägsna fokus utrymmen."},{name:"Hjälp om tillgänglighet",legend:"Tryck ${a11yHelp}"},{name:"Klistra in som vanlig text",legend:"Tryck ${pastetext}",legendEdge:"Tryck ${pastetext}, följt av ${paste}"}]}],tab:"Tab",pause:"Paus",capslock:"Caps lock",escape:"Escape",pageUp:"Sida Up",
+pageDown:"Sida Ned",leftArrow:"Vänsterpil",upArrow:"Uppil",rightArrow:"Högerpil",downArrow:"Nedåtpil",insert:"Infoga",leftWindowKey:"Vänster Windowstangent",rightWindowKey:"Höger Windowstangent",selectKey:"Välj tangent",numpad0:"Nummer 0",numpad1:"Nummer 1",numpad2:"Nummer 2",numpad3:"Nummer 3",numpad4:"Nummer 4",numpad5:"Nummer 5",numpad6:"Nummer 6",numpad7:"Nummer 7",numpad8:"Nummer 8",numpad9:"Nummer 9",multiply:"Multiplicera",add:"Addera",subtract:"Minus",decimalPoint:"Decimalpunkt",divide:"Dividera",
+f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semikolon",equalSign:"Lika med tecken",comma:"Komma",dash:"Minus",period:"Punkt",forwardSlash:"Snedstreck framåt",graveAccent:"Accent",openBracket:"Öppningsparentes",backSlash:"Snedstreck bakåt",closeBracket:"Slutparentes",singleQuote:"Enkelt Citattecken"});
\ No newline at end of file
index 2499b992fbc44274086d011c717305d5e0ce1c47..c2df8db66041d65756fdaf4270aadefdf6e13ae3 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","th",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ทั่วไป",items:[{name:"แถบเครื่องมือสำหรับเครื่องมือช่วยพิมพ์",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"คำสั่ง",items:[{name:"เลิกทำคำสั่ง",legend:"วาง ${undo}"},{name:"คำสั่งสำหรับทำซ้ำ",legend:"วาง ${redo}"},{name:"คำสั่งสำหรับตัวหนา",legend:"วาง ${bold}"},{name:"คำสั่งสำหรับตัวเอียง",legend:"วาง ${italic}"},{name:"คำสั่งสำหรับขีดเส้นใต้",
 legend:"วาง ${underline}"},{name:"คำสั่งสำหรับลิงก์",legend:"วาง ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert","delete":"Delete",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Left Arrow",upArrow:"Up Arrow",rightArrow:"Right Arrow",downArrow:"Down Arrow",insert:"Insert",leftWindowKey:"Left Windows key",rightWindowKey:"Right Windows key",selectKey:"Select key",numpad0:"Numpad 0",numpad1:"Numpad 1",
 numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Multiply",add:"Add",subtract:"Subtract",decimalPoint:"Decimal Point",divide:"Divide",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Semicolon",equalSign:"Equal Sign",comma:"Comma",dash:"Dash",period:"Period",forwardSlash:"Forward Slash",
 graveAccent:"Grave Accent",openBracket:"Open Bracket",backSlash:"Backslash",closeBracket:"Close Bracket",singleQuote:"Single Quote"});
\ No newline at end of file
index 1eb46ce3988c351c5aed92849ed6c74e588efd28..699f0db0a034c0546ed7e214d4a2e86c4a2611b2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"Erişilebilirlik Talimatları",contents:"Yardım içeriği. Bu pencereyi kapatmak için ESC tuşuna basın.",legend:[{name:"Genel",items:[{name:"Düzenleyici Araç Çubuğu",legend:"Araç çubuğunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT+TAB ile önceki ve sonraki araç çubuğu grubuna taşıyın. SAĞ OK veya SOL OK ile önceki ve sonraki bir araç çubuğu düğmesini hareket ettirin. SPACE tuşuna basın veya araç çubuğu düğmesini etkinleştirmek için ENTER tuşna basın."},
@@ -7,6 +7,6 @@ CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"Erişilebilirlik Talimatları",
 {name:"İçerik Menü Editörü",legend:"İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUŞU'na basın. Daha sonra SEKME veya AŞAĞI OK ile bir sonraki menü seçeneği taşıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneğe gider. Menü seçeneğini seçmek için SPACE veya ENTER tuşuna basın. Seçili seçeneğin alt menüsünü SPACE ya da ENTER veya SAĞ OK açın. Üst menü öğesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile bağlam menüsünü kapatın."},{name:"Liste Kutusu Editörü",legend:"Liste kutusu içinde, bir sonraki liste öğesine SEKME VEYA AŞAĞI OK ile taşıyın. SHIFT+TAB veya YUKARI önceki liste öğesi taşıyın. Liste seçeneği seçmek için SPACE veya ENTER tuşuna basın. Liste kutusunu kapatmak için ESC tuşuna basın."},
 {name:"Element Yol Çubuğu Editörü",legend:"Elementlerin yol çubuğunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAĞ OK ile sonraki element düğmesine taşıyın. SHIFT+TAB veya SOL OK önceki düğmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuşuna basın."}]},{name:"Komutlar",items:[{name:"Komutu geri al",legend:"$(undo)'ya basın"},{name:"Komutu geri al",legend:"${redo} basın"},{name:" Kalın komut",legend:"${bold} basın"},{name:" İtalik komutu",legend:"${italic} basın"},
 {name:" Alttan çizgi komutu",legend:"${underline} basın"},{name:" Bağlantı komutu",legend:"${link} basın"},{name:" Araç çubuğu Toplama komutu",legend:"${toolbarCollapse} basın"},{name:"Önceki komut alanına odaklan",legend:"Düzeltme imleçinden önce, en yakın uzaktaki alana erişmek için ${accessPreviousSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},{name:"Sonraki komut alanına odaklan",legend:"Düzeltme imleçinden sonra, en yakın uzaktaki alana erişmek için ${accessNextSpace} basın, örneğin: iki birleşik HR elementleri. Aynı tuş kombinasyonu tekrarıyla diğer alanlarada ulaşın."},
-{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"}]}],backspace:"Silme",tab:"Sekme tuşu",enter:"Gir tuşu",shift:'"Shift" Kaydırma tuşu',ctrl:'"Ctrl" Kontrol tuşu',alt:'"Alt" Anahtar tuşu',pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",end:"Sona",home:"En başa",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir","delete":"Silme",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",
-selectKey:"Seçme tuşu",numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",
-comma:"Virgül",dash:"Eksi",period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"});
\ No newline at end of file
+{name:"Erişilebilirlik Yardımı",legend:"${a11yHelp}'e basın"},{name:"Düz Metin Olarak Yapıştır",legend:"${pastetext} basın",legendEdge:"Önce ${pastetext} ardından${paste} basın"}]}],tab:"Sekme tuşu",pause:"Durdurma tuşu",capslock:"Büyük harf tuşu",escape:"Vazgeç tuşu",pageUp:"Sayfa Yukarı",pageDown:"Sayfa Aşağı",leftArrow:"Sol ok",upArrow:"Yukarı ok",rightArrow:"Sağ ok",downArrow:"Aşağı ok",insert:"Araya gir",leftWindowKey:"Sol windows tuşu",rightWindowKey:"Sağ windows tuşu",selectKey:"Seçme tuşu",
+numpad0:"Nümerik 0",numpad1:"Nümerik 1",numpad2:"Nümerik 2",numpad3:"Nümerik 3",numpad4:"Nümerik 4",numpad5:"Nümerik 5",numpad6:"Nümerik 6",numpad7:"Nümerik 7",numpad8:"Nümerik 8",numpad9:"Nümerik 9",multiply:"Çarpma",add:"Toplama",subtract:"Çıkarma",decimalPoint:"Ondalık işareti",divide:"Bölme",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lk",scrollLock:"Scr Lk",semiColon:"Noktalı virgül",equalSign:"Eşittir",comma:"Virgül",dash:"Eksi",
+period:"Nokta",forwardSlash:"İleri eğik çizgi",graveAccent:"Üst tırnak",openBracket:"Parantez aç",backSlash:"Ters eğik çizgi",closeBracket:"Parantez kapa",singleQuote:"Tek tırnak"});
\ No newline at end of file
index 40d8b283355e131e8f362b923c7388ded2076107..ff239fdc661de5c767fbd39ab074c3597a1e4678 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","tt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Гомуми",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
 {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Командалар",items:[{name:"Кайтару",legend:"${undo} басыгыз"},{name:"Кабатлау",legend:"${redo} басыгыз"},{name:"Калын",legend:"${bold} басыгыз"},{name:"Курсив",legend:"${italic} басыгыз"},{name:"Астына сызылган",legend:"${underline} басыгыз"},
 {name:"Сылталама",legend:"${link} басыгыз"},{name:" Toolbar Collapse command",legend:"${toolbarCollapse} басыгыз"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
-{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"}]}],backspace:"Кайтару",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү","delete":"Бетерү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0",numpad1:"Numpad 1",
-numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә",forwardSlash:"Кыек сызык",
-graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"});
\ No newline at end of file
+{name:" Accessibility Help",legend:"${a11yHelp} басыгыз"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Тыныш",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Сул якка ук",upArrow:"Өскә таба ук",rightArrow:"Уң якка ук",downArrow:"Аска таба ук",insert:"Өстәү",leftWindowKey:"Сул Windows төймəсе",rightWindowKey:"Уң Windows төймəсе",selectKey:"Select төймəсе",numpad0:"Numpad 0",
+numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Тапкырлау",add:"Кушу",subtract:"Алу",decimalPoint:"Унарлы нокта",divide:"Бүлү",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Нокталы өтер",equalSign:"Тигезлек билгесе",comma:"Өтер",dash:"Сызык",period:"Дәрәҗә",
+forwardSlash:"Кыек сызык",graveAccent:"Гравис",openBracket:"Җәя ачу",backSlash:"Кире кыек сызык",closeBracket:"Җәя ябу",singleQuote:"Бер иңле куштырнаклар"});
\ No newline at end of file
index c7fe6fd2be3307b47f37ac6195523cd2eb4cbbfb..cf81a703946b7095a0273d11955f511b19849331 100644 (file)
@@ -1,12 +1,12 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","ug",{title:"قوشۇمچە چۈشەندۈرۈش",contents:"ياردەم مەزمۇنى. بۇ سۆزلەشكۈنى ياپماقچى بولسىڭىز ESC نى بېسىڭ.",legend:[{name:"ئادەتتىكى",items:[{name:"قورال بالداق تەھرىر",legend:"${toolbarFocus} بېسىلسا قورال بالداققا يېتەكلەيدۇ، TAB ياكى SHIFT+TAB ئارقىلىق قورال بالداق گۇرۇپپىسى تاللىنىدۇ، ئوڭ سول يا ئوقتا توپچا تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تاللانغان توپچىنى قوللىنىدۇ."},{name:"تەھرىرلىگۈچ سۆزلەشكۈسى",legend:"سۆزلەشكۈدە TAB كۇنۇپكىسىدا كېيىنكى سۆز بۆلىكىگە يۆتكىلىدۇ، SHIFT+TAB بىرىكمە كۇنۇپكىسىدا ئالدىنقى سۆز بۆلىكىگە يۆتكىلىدۇ، ENTER كۇنۇپكىسىدا سۆزلەشكۈنى تاپشۇرىدۇ، ESC كۇنۇپكىسى سۆزلەشكۈدىن ۋاز كېچىدۇ. كۆپ بەتكۈچلۈك سۆزلەشكۈگە نىسبەتەن، ALT+F10 دا بەتكۈچ تىزىمىغا يۆتكەيدۇ. ئاندىن TAB كۇنۇپكىسى ياكى ئوڭ يا ئوق كۇنۇپكىسى كېيىنكى بەتكۈچكە يۆتكەيدۇ؛SHIFT+ TAB كۇنۇپكىسى ياكى سول يا ئوق كۇنۇپكىسى ئالدىنقى بەتكۈچكە يۆتكەيدۇ. بوشلۇق كۇنۇپكىسى ياكى ENTER كۇنۇپكىسى بەتكۈچنى تاللايدۇ."},
 {name:"تەھرىرلىگۈچ تىل مۇھىت تىزىملىكى",legend:"${contextMenu} ياكى ئەپ كۇنۇپكىسىدا تىل مۇھىت تىزىملىكىنى ئاچىدۇ. ئاندىن TAB ياكى ئاستى يا ئوق كۇنۇپكىسىدا كېيىنكى تىزىملىك تۈرىگە يۆتكەيدۇ؛ SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسىدا ئالدىنقى تىزىملىك تۈرىگە يۆتكەيدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىملىك تۈرىنى تاللايدۇ. بوشلۇق، ENTER ياكى ئوڭ يا ئوق كۇنۇپكىسىدا تارماق تىزىملىكنى ئاچىدۇ. قايتىش تىزىملىكىگە ESC ياكى سول يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ESC كۇنۇپكىسىدا تىل مۇھىت تىزىملىكى تاقىلىدۇ."},{name:"تەھرىرلىگۈچ تىزىمى",
 legend:"تىزىم قۇتىسىدا، كېيىنكى تىزىم تۈرىگە يۆتكەشتە TAB ياكى ئاستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. ئالدىنقى تىزىم تۈرىگە يۆتكەشتە SHIFT+TAB ياكى ئۈستى يا ئوق كۇنۇپكىسى ئىشلىتىلىدۇ. بوشلۇق ياكى ENTER كۇنۇپكىسىدا تىزىم تۈرىنى تاللايدۇ.ESC كۇنۇپكىسىدا تىزىم قۇتىسىنى يىغىدۇ."},{name:"تەھرىرلىگۈچ ئېلېمېنت يول بالداق",legend:"${elementsPathFocus} بېسىلسا ئېلېمېنت يول بالداققا يېتەكلەيدۇ، TAB ياكى ئوڭ يا ئوقتا كېيىنكى ئېلېمېنت تاللىنىدۇ، SHIFT+TAB ياكى سول يا ئوقتا ئالدىنقى ئېلېمېنت تاللىنىدۇ، بوشلۇق ياكى Enter كۇنۇپكىسىدا تەھرىرلىگۈچتىكى ئېلېمېنت تاللىنىدۇ."}]},
 {name:"بۇيرۇق",items:[{name:"بۇيرۇقتىن يېنىۋال",legend:"${undo} نى بېسىڭ"},{name:"قايتىلاش بۇيرۇقى",legend:"${redo} نى بېسىڭ"},{name:"توملىتىش بۇيرۇقى",legend:"${bold} نى بېسىڭ"},{name:"يانتۇ بۇيرۇقى",legend:"${italic} نى بېسىڭ"},{name:"ئاستى سىزىق بۇيرۇقى",legend:"${underline} نى بېسىڭ"},{name:"ئۇلانما بۇيرۇقى",legend:"${link} نى بېسىڭ"},{name:"قورال بالداق قاتلاش بۇيرۇقى",legend:"${toolbarCollapse} نى بېسىڭ"},{name:"ئالدىنقى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessPreviousSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ ئالدىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},
-{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Escape",
-pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر","delete":"ئۆچۈر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8",numpad9:"سان تاختا 9",
-multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق",closeBracket:"يېپىلغان تىرناق",
-singleQuote:"يالاڭ پەش"});
\ No newline at end of file
+{name:"كېيىنكى فوكۇس نۇقتىسىنى زىيارەت قىلىدىغان بۇيرۇق",legend:"${accessNextSpace} بېسىپ ^ بەلگىسىگە ئەڭ يېقىن زىيارەت قىلغىلى بولمايدىغان فوكۇس نۇقتا رايونىنىڭ كەينىنى زىيارەت قىلىدۇ، مەسىلەن: ئۆز ئارا قوشنا ئىككى HR ئېلېمېنت. بۇ بىرىكمە كۇنۇپكا تەكرارلانسا يىراقتىكى فوكۇس نۇقتا رايونىغا يەتكىلى بولىدۇ."},{name:"توسالغۇسىز لايىھە چۈشەندۈرۈشى",legend:"${a11yHelp} نى بېسىڭ"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",
+pause:"Pause",capslock:"Caps Lock",escape:"Escape",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"سول يا ئوق",upArrow:"ئۈستى يا ئوق",rightArrow:"ئوڭ يا ئوق",downArrow:"ئاستى يا ئوق",insert:"قىستۇر",leftWindowKey:"سول Windows كۇنۇپكىسى",rightWindowKey:"ئوڭ Windows كۇنۇپكىسى",selectKey:"تاللاش كۇنۇپكىسى",numpad0:"سان تاختا 0",numpad1:"سان تاختا 1",numpad2:"سان تاختا 2",numpad3:"سان تاختا 3",numpad4:"سان تاختا 4",numpad5:"سان تاختا 5",numpad6:"سان تاختا 6",numpad7:"سان تاختا 7",numpad8:"سان تاختا 8",
+numpad9:"سان تاختا 9",multiply:"يۇلتۇز كۇنۇپكىسى",add:"قوشۇش",subtract:"ئېلىش",decimalPoint:"كەسىر چېكىت",divide:"بۆلۈش",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"سان قۇلۇپ كۇنۇپكىسى",scrollLock:"سۈرگۈچ قۇلۇپ كۇنۇپكىسى",semiColon:"چېكىتلىك پەش",equalSign:"تەڭلىك بەلگىسى",comma:"پەش",dash:"سىزىقچە",period:"چېكىت",forwardSlash:"سولغا يانتۇ سىزىق",graveAccent:"ئۇرغۇ بەلگىسى",openBracket:"ئېچىلغان تىرناق",backSlash:"ئوڭغا يانتۇ سىزىق",
+closeBracket:"يېپىلغان تىرناق",singleQuote:"يالاڭ پەش"});
\ No newline at end of file
index c7aac2bf554ff157330e31eb29a84d82a2f7d439..1bed30b7e523e22e70a4edb2f4fe8bed130f1e78 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","uk",{title:"Спеціальні Інструкції",contents:"Довідка. Натисніть ESC і вона зникне.",legend:[{name:"Основне",items:[{name:"Панель Редактора",legend:"Натисніть ${toolbarFocus} для переходу до панелі інструментів. Для переміщення між групами панелі інструментів використовуйте TAB і SHIFT+TAB. Для переміщення між кнопками панелі іструментів використовуйте кнопки СТРІЛКА ВПРАВО або ВЛІВО. Натисніть ПРОПУСК або ENTER для запуску кнопки панелі інструментів."},{name:"Діалог Редактора",
@@ -7,6 +7,6 @@ legend:'Усередині діалогу, натисніть TAB щоб пер
 {name:"Контекстне Меню Редактора",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Потім перейдіть до наступного пункту меню за допомогою TAB або СТРІЛКИ ВНИЗ. Натисніть ПРОПУСК або ENTER для вибору параметру меню. Відкрийте підменю поточного параметру, натиснувши ПРОПУСК або ENTER або СТРІЛКУ ВПРАВО. Перейдіть до батьківського елемента меню, натиснувши ESC або СТРІЛКУ ВЛІВО. Закрийте контекстне меню, натиснувши ESC."},{name:"Скринька Списків Редактора",legend:"Усередині списку, перехід до наступного пункту списку виконується клавішею TAB або СТРІЛКА ВНИЗ. Перехід до попереднього елемента списку клавішею SHIFT+TAB або СТРІЛКА ВГОРУ. Натисніть ПРОПУСК або ENTER, щоб вибрати параметр списку. Натисніть клавішу ESC, щоб закрити список."},
 {name:"Шлях до елемента редактора",legend:"Натисніть ${elementsPathFocus} для навігації між елементами панелі. Перейдіть до наступного елемента кнопкою TAB або СТРІЛКА ВПРАВО. Перейдіть до попереднього елемента кнопкою SHIFT+TAB або СТРІЛКА ВЛІВО. Натисніть ПРОПУСК або ENTER для вибору елемента в редакторі."}]},{name:"Команди",items:[{name:"Відмінити команду",legend:"Натисніть ${undo}"},{name:"Повторити",legend:"Натисніть ${redo}"},{name:"Жирний",legend:"Натисніть ${bold}"},{name:"Курсив",legend:"Натисніть ${italic}"},
 {name:"Підкреслений",legend:"Натисніть ${underline}"},{name:"Посилання",legend:"Натисніть ${link}"},{name:"Згорнути панель інструментів",legend:"Натисніть ${toolbarCollapse}"},{name:"Доступ до попереднього місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування перед кареткою, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},{name:"Доступ до наступного місця фокусування",legend:"Натисніть ${accessNextSpace} для доступу до найближчої недосяжної області фокусування після каретки, наприклад: два сусідні елементи HR. Повторіть комбінацію клавіш для досягнення віддалених областей фокусування."},
-{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"}]}],backspace:"Backspace",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити","delete":"Видалити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",numpad0:"Numpad 0",
+{name:"Допомога з доступності",legend:"Натисніть ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",leftArrow:"Ліва стрілка",upArrow:"Стрілка вгору",rightArrow:"Права стрілка",downArrow:"Стрілка вниз",insert:"Вставити",leftWindowKey:"Ліва клавіша Windows",rightWindowKey:"Права клавіша Windows",selectKey:"Виберіть клавішу",numpad0:"Numpad 0",
 numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"Множення",add:"Додати",subtract:"Віднімання",decimalPoint:"Десяткова кома",divide:"Ділення",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Крапка з комою",equalSign:"Знак рівності",comma:"Кома",dash:"Тире",period:"Період",
 forwardSlash:"Коса риска",graveAccent:"Гравіс",openBracket:"Відкрити дужку",backSlash:"Зворотна коса риска",closeBracket:"Закрити дужку",singleQuote:"Одинарні лапки"});
\ No newline at end of file
index 18ba88260c64a0f2f4796ba60b884843f574dae7..de188615bf3e615de5cea908e108182da83a47ff 100644 (file)
@@ -1,11 +1,11 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","vi",{title:"Hướng dẫn trợ năng",contents:"Nội dung Hỗ trợ. Nhấn ESC để đóng hộp thoại.",legend:[{name:"Chung",items:[{name:"Thanh công cụ soạn thảo",legend:"Nhấn ${toolbarFocus} để điều hướng đến thanh công cụ. Nhấn TAB và SHIFT+TAB để chuyển đến nhóm thanh công cụ khác. Nhấn MŨI TÊN PHẢI hoặc MŨI TÊN TRÁI để chuyển sang nút khác trên thanh công cụ. Nhấn PHÍM CÁCH hoặc ENTER để kích hoạt nút trên thanh công cụ."},{name:"Hộp thoại Biên t",legend:"Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively."},
 {name:"Trình đơn Ngữ cảnh cBộ soạn thảo",legend:"Nhấn ${contextMenu} hoặc PHÍM ỨNG DỤNG để mở thực đơn ngữ cảnh. Sau đó nhấn TAB hoặc MŨI TÊN XUỐNG để di chuyển đến tuỳ chọn tiếp theo của thực đơn. Nhấn SHIFT+TAB hoặc MŨI TÊN LÊN để quay lại tuỳ chọn trước. Nhấn DẤU CÁCH hoặc ENTER để chọn tuỳ chọn của thực đơn. Nhấn DẤU CÁCH hoặc ENTER hoặc MŨI TÊN SANG PHẢI để mở thực đơn con của tuỳ chọn hiện tại. Nhấn ESC hoặc MŨI TÊN SANG TRÁI để quay trở lại thực đơn gốc. Nhấn ESC để đóng thực đơn ngữ cảnh."},
 {name:"Hộp danh sách trình biên tập",legend:"Trong một danh sách chọn, di chuyển đối tượng tiếp theo với phím TAB hoặc phím mũi tên hướng xuống. Di chuyển đến đối tượng trước đó bằng cách nhấn tổ hợp phím SHIFT+TAB hoặc mũi tên hướng lên. Phím khoảng cách hoặc phím ENTER để chọn các tùy chọn trong danh sách. Nhấn phím ESC để đóng lại danh sách chọn."},{name:"Thanh đường dẫn các đối tượng",legend:"Nhấn ${elementsPathFocus} để điều hướng các đối tượng trong thanh đường dẫn. Di chuyển đến đối tượng tiếp theo bằng phím TAB hoặc phím mũi tên bên phải. Di chuyển đến đối tượng trước đó bằng tổ hợp phím SHIFT+TAB hoặc phím mũi tên bên trái. Nhấn phím khoảng cách hoặc ENTER để chọn đối tượng trong trình soạn thảo."}]},
 {name:"Lệnh",items:[{name:"Làm lại lện",legend:"Ấn ${undo}"},{name:"Làm lại lệnh",legend:"Ấn ${redo}"},{name:"Lệnh in đậm",legend:"Ấn ${bold}"},{name:"Lệnh in nghiêng",legend:"Ấn ${italic}"},{name:"Lệnh gạch dưới",legend:"Ấn ${underline}"},{name:"Lệnh liên kết",legend:"Nhấn ${link}"},{name:"Lệnh hiển thị thanh công cụ",legend:"Nhấn${toolbarCollapse}"},{name:"Truy cập đến lệnh tập trung vào khoảng cách trước đó",legend:"Ấn ${accessPreviousSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},
-{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"}]}],backspace:"Phím Backspace",tab:"Phím Tab",enter:"Phím Tab",shift:"Phím Shift",ctrl:"Phím Ctrl",alt:"Phím Alt",pause:"Phím Pause",capslock:"Phím Caps Lock",
-escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",end:"Phím End",home:"Phím Home",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn","delete":"Xóa",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",
-multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân",divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"});
\ No newline at end of file
+{name:"Truy cập phần đối tượng lệnh khoảng trống",legend:"Ấn ${accessNextSpace} để truy cập đến phần tập trung khoảng cách sau phần còn sót lại của khoảng cách gần nhất vốn không tác động đến được , thí dụ: hai yếu tố điều chỉnh HR. Lặp lại các phím kết họep này để vươn đến phần khoảng cách."},{name:"Trợ giúp liên quan",legend:"Nhấn ${a11yHelp}"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Phím Tab",pause:"Phím Pause",capslock:"Phím Caps Lock",
+escape:"Phím Escape",pageUp:"Phím Page Up",pageDown:"Phím Page Down",leftArrow:"Phím Left Arrow",upArrow:"Phím Up Arrow",rightArrow:"Phím Right Arrow",downArrow:"Phím Down Arrow",insert:"Chèn",leftWindowKey:"Phím Left Windows",rightWindowKey:"Phím Right Windows ",selectKey:"Chọn phím",numpad0:"Phím 0",numpad1:"Phím 1",numpad2:"Phím 2",numpad3:"Phím 3",numpad4:"Phím 4",numpad5:"Phím 5",numpad6:"Phím 6",numpad7:"Phím 7",numpad8:"Phím 8",numpad9:"Phím 9",multiply:"Nhân",add:"Thêm",subtract:"Trừ",decimalPoint:"Điểm số thập phân",
+divide:"Chia",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"Dấu chấm phẩy",equalSign:"Đăng nhập bằng",comma:"Dấu phẩy",dash:"Dấu gạch ngang",period:"Phím .",forwardSlash:"Phím /",graveAccent:"Phím `",openBracket:"Open Bracket",backSlash:"Dấu gạch chéo ngược",closeBracket:"Gần giá đỡ",singleQuote:"Trích dẫn"});
\ No newline at end of file
index b63d413b740131222b90031a61504a38e3273790..5c78983304ac24e3a990c226c6100f5f7504f686 100644 (file)
@@ -1,9 +1,9 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"辅助功能说明",contents:"帮助内容。要关闭此对话框请按 ESC 键。",legend:[{name:"常规",items:[{name:"编辑器工具栏",legend:"按 ${toolbarFocus} 切换到工具栏,使用 TAB 键和 SHIFT+TAB 组合键移动到上一个和下一个工具栏组。使用左右箭头键移动到上一个或下一个工具栏按钮。按空格键或回车键以选中工具栏按钮。"},{name:"编辑器对话框",legend:"在对话框内,按 TAB 键移动到下一个字段,按 SHIFT + TAB 组合键移动到上一个字段,按 ENTER 键提交对话框,按 ESC 键取消对话框。对于有多选项卡的对话框,可以按 ALT + F10 直接切换到或者按 TAB 键逐步移到选项卡列表,当焦点移到选项卡列表时可以用左右箭头键来移动到前后的选项卡。"},{name:"编辑器上下文菜单",legend:"用 ${contextMenu} 或者“应用程序键”打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。"},
 {name:"编辑器列表框",legend:"在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT+TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。"},{name:"编辑器元素路径栏",legend:"按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。"}]},{name:"命令",items:[{name:" 撤消命令",legend:"按 ${undo}"},{name:" 重做命令",legend:"按 ${redo}"},{name:" 加粗命令",legend:"按 ${bold}"},{name:" 倾斜命令",legend:"按 ${italic}"},{name:" 下划线命令",legend:"按 ${underline}"},{name:" 链接命令",legend:"按 ${link}"},{name:" 工具栏折叠命令",legend:"按 ${toolbarCollapse}"},
-{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"}]}],backspace:"退格键",tab:"Tab 键",enter:"回车键",shift:"Shift 键",ctrl:"Ctrl 键",alt:"Alt 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",end:"行尾键",home:"行首键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",
-insert:"插入键","delete":"删除键",leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",
-semiColon:"分号键",equalSign:"等号键",comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"});
\ No newline at end of file
+{name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"},{name:"粘贴为纯文本",legend:"按 ${pastetext}",legendEdge:"按 ${pastetext},然后再按 ${paste}"}]}],tab:"Tab 键",pause:"暂停键",capslock:"大写锁定键",escape:"Esc 键",pageUp:"上翻页键",pageDown:"下翻页键",leftArrow:"向左箭头键",upArrow:"向上箭头键",rightArrow:"向右箭头键",downArrow:"向下箭头键",insert:"插入键",
+leftWindowKey:"左 WIN 键",rightWindowKey:"右 WIN 键",selectKey:"选择键",numpad0:"小键盘 0 键",numpad1:"小键盘 1 键",numpad2:"小键盘 2 键",numpad3:"小键盘 3 键",numpad4:"小键盘 4 键",numpad5:"小键盘 5 键",numpad6:"小键盘 6 键",numpad7:"小键盘 7 键",numpad8:"小键盘 8 键",numpad9:"小键盘 9 键",multiply:"星号键",add:"加号键",subtract:"减号键",decimalPoint:"小数点键",divide:"除号键",f1:"F1 键",f2:"F2 键",f3:"F3 键",f4:"F4 键",f5:"F5 键",f6:"F6 键",f7:"F7 键",f8:"F8 键",f9:"F9 键",f10:"F10 键",f11:"F11 键",f12:"F12 键",numLock:"数字锁定键",scrollLock:"滚动锁定键",semiColon:"分号键",equalSign:"等号键",
+comma:"逗号键",dash:"短划线键",period:"句号键",forwardSlash:"斜杠键",graveAccent:"重音符键",openBracket:"左中括号键",backSlash:"反斜杠键",closeBracket:"右中括号键",singleQuote:"单引号键"});
\ No newline at end of file
index 3305d9c60c1e11ee4b31d16a17c1e9697981088f..10bf41c0ab564580f0ab6dc5334acebf3963aa68 100644 (file)
@@ -1,9 +1,9 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 CKEDITOR.plugins.setLang("a11yhelp","zh",{title:"輔助工具指南",contents:"說明內容。若要關閉此對話框請按「ESC」。",legend:[{name:"一般",items:[{name:"編輯器工具列",legend:"請按 ${toolbarFocus} 以導覽到工具列。利用 TAB 或 SHIFT+TAB 以便移動到下一個及前一個工具列群組。利用右方向鍵或左方向鍵以便移動到下一個及上一個工具列按鈕。按下空白鍵或 ENTER 鍵啟用工具列按鈕。"},{name:"編輯器對話方塊",legend:"在對話框中,按下 TAB 鍵以導覽到下一個對話框元素,按下 SHIFT+TAB 以移動到上一個對話框元素,按下 ENTER 以遞交對話框,按下 ESC 以取消對話框。當對話框有多個分頁時,可以使用 ALT+F10 或是在對話框分頁順序中的一部份按下 TAB 以使用分頁列表。焦點在分頁列表上時,分別使用右方向鍵及左方向鍵移動到下一個及上一個分頁。"},{name:"編輯器內容功能表",legend:"請按下「${contextMenu}」或是「應用程式鍵」以開啟內容選單。以「TAB」或是「↓」鍵移動到下一個選單選項。以「SHIFT + TAB」或是「↑」鍵移動到上一個選單選項。按下「空白鍵」或是「ENTER」鍵以選取選單選項。以「空白鍵」或「ENTER」或「→」開啟目前選項之子選單。以「ESC」或「←」回到父選單。以「ESC」鍵關閉內容選單」。"},
 {name:"編輯器清單方塊",legend:"在清單方塊中,使用 TAB 或下方向鍵移動到下一個列表項目。使用 SHIFT+TAB 或上方向鍵移動到上一個列表項目。按下空白鍵或 ENTER 以選取列表選項。按下 ESC 以關閉清單方塊。"},{name:"編輯器元件路徑工具列",legend:"請按 ${elementsPathFocus} 以瀏覽元素路徑列。利用 TAB 或右方向鍵以便移動到下一個元素按鈕。利用 SHIFT 或左方向鍵以便移動到上一個按鈕。按下空白鍵或 ENTER 鍵來選取在編輯器中的元素。"}]},{name:"命令",items:[{name:"復原命令",legend:"請按下「${undo}」"},{name:"重複命令",legend:"請按下「 ${redo}」"},{name:"粗體命令",legend:"請按下「${bold}」"},{name:"斜體",legend:"請按下「${italic}」"},{name:"底線命令",legend:"請按下「${underline}」"},{name:"連結",legend:"請按下「${link}」"},
-{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"}]}],backspace:"退格鍵",tab:"Tab",enter:"Enter",shift:"Shift",ctrl:"Ctrl",alt:"Alt",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",pageDown:"Page Down",end:"End",home:"Home",
-leftArrow:"向左箭號",upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入","delete":"刪除",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",f10:"F10",
-f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"});
\ No newline at end of file
+{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"},{name:" Paste as plain text",legend:"Press ${pastetext}",legendEdge:"Press ${pastetext}, followed by ${paste}"}]}],tab:"Tab",pause:"Pause",capslock:"Caps Lock",escape:"Esc",pageUp:"Page Up",
+pageDown:"Page Down",leftArrow:"向左箭號",upArrow:"向上鍵號",rightArrow:"向右鍵號",downArrow:"向下鍵號",insert:"插入",leftWindowKey:"左方 Windows 鍵",rightWindowKey:"右方 Windows 鍵",selectKey:"選擇鍵",numpad0:"Numpad 0",numpad1:"Numpad 1",numpad2:"Numpad 2",numpad3:"Numpad 3",numpad4:"Numpad 4",numpad5:"Numpad 5",numpad6:"Numpad 6",numpad7:"Numpad 7",numpad8:"Numpad 8",numpad9:"Numpad 9",multiply:"乘號",add:"新增",subtract:"減號",decimalPoint:"小數點",divide:"除號",f1:"F1",f2:"F2",f3:"F3",f4:"F4",f5:"F5",f6:"F6",f7:"F7",f8:"F8",f9:"F9",
+f10:"F10",f11:"F11",f12:"F12",numLock:"Num Lock",scrollLock:"Scroll Lock",semiColon:"分號",equalSign:"等號",comma:"逗號",dash:"虛線",period:"句點",forwardSlash:"斜線",graveAccent:"抑音符號",openBracket:"左方括號",backSlash:"反斜線",closeBracket:"右方括號",singleQuote:"單引號"});
\ No newline at end of file
index 26c2feb304d72da0bf6895c4abb2444ad336eea6..5c35976dfa035340f9ddbacb53c1202348684cd9 100644 (file)
@@ -1,4 +1,4 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
diff --git a/release/plugins/html5video/dialogs/html5video.js b/release/plugins/html5video/dialogs/html5video.js
new file mode 100644 (file)
index 0000000..dd32471
--- /dev/null
@@ -0,0 +1,5 @@
+CKEDITOR.dialog.add("html5video",function(b){return{title:b.lang.html5video.title,minWidth:500,minHeight:100,contents:[{id:"info",label:b.lang.html5video.infoLabel,elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["365px","110px"],align:"right",children:[{type:"text",id:"url",label:b.lang.html5video.allowed,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(b.lang.html5video.urlMissing),setup:function(a){this.setValue(a.data.src)},commit:function(a){a.setData("src",this.getValue())}},
+{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:b.lang.common.browseServer,hidden:!0,filebrowser:"info:url"}]}]},{type:"checkbox",id:"responsive",label:b.lang.html5video.responsive,setup:function(a){this.setValue(a.data.responsive)},commit:function(a){a.setData("responsive",this.getValue()?"true":"")}},{type:"hbox",id:"size",children:[{type:"text",id:"width",label:b.lang.common.width,setup:function(a){a.data.width&&this.setValue(a.data.width)},commit:function(a){a.setData("width",
+this.getValue())}},{type:"text",id:"height",label:b.lang.common.height,setup:function(a){a.data.height&&this.setValue(a.data.height)},commit:function(a){a.setData("height",this.getValue())}}]},{type:"hbox",id:"alignment",children:[{type:"radio",id:"align",label:b.lang.common.align,items:[[b.lang.common.alignCenter,"center"],[b.lang.common.alignLeft,"left"],[b.lang.common.alignRight,"right"],[b.lang.common.alignNone,"none"]],"default":"center",setup:function(a){a.data.align&&this.setValue(a.data.align)},
+commit:function(a){a.setData("align",this.getValue())}}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:b.lang.html5video.upload,elements:[{type:"file",id:"upload",label:b.lang.html5video.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:url",label:b.lang.html5video.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:b.lang.html5video.advanced,elements:[{type:"vbox",padding:0,children:[{type:"hbox",children:[{type:"radio",id:"autoplay",
+label:b.lang.html5video.autoplay,items:[[b.lang.html5video.yes,"yes"],[b.lang.html5video.no,"no"]],"default":"no",setup:function(a){a.data.autoplay&&this.setValue(a.data.autoplay)},commit:function(a){a.setData("autoplay",this.getValue())}}]}]}]}]}});
\ No newline at end of file
index 6b315f9238eed5322893f6396fe1b0dfde0abb92..ab7c411d1ae876805db07b71e5297bd5cfe3d02f 100644 (file)
Binary files a/release/plugins/icons.png and b/release/plugins/icons.png differ
index 4f3073de2f6a6d0a8f231c016e7b070c6bebc5cf..2516678db8a1d7523cc342c58a801b3d0c3b17cb 100644 (file)
Binary files a/release/plugins/icons_hidpi.png and b/release/plugins/icons_hidpi.png differ
index 9c811a0af0b40bd8359a04f9ff9f2d1abbd60c53..d431e5f4f624ae57e39588648234660b71f72ddc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 (function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}};
index 18185792477defd577658ea0c4031d66b6ee7db6..ad47e6b68651e323cf76844aa1bad6fedfff535a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 (function(){var v=function(d,l){function v(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function k(a){if(!w){w=1;var b=this.getDialog(),c=b.imageElement;if(c){this.commit(1,c);a=[].concat(a);for(var d=a.length,f,g=0;g<d;g++)(f=b.getContentElement.apply(b,a[g].split(":")))&&f.setup(1,c)}w=0}}var m=/^\s*(\d+)((px)|\%)?\s*$/i,z=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,r=/^\d+px$/,
@@ -8,35 +8,35 @@ b){if(!a.getContentElement("info","ratioLock"))return null;var c=a.originalEleme
 d.removeClass("cke_btn_unlocked"):d.addClass("cke_btn_unlocked");d.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&d.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"■":"▣":CKEDITOR.env.ie?"□":"▢");return a.lockRatio},B=function(a,b){var c=a.originalElement;if("true"==c.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),f=a.getContentElement("info","txtHeight"),g;b?c=g=0:(g=c.$.width,c=c.$.height);d&&d.setValue(g);f&&f.setValue(c)}e(a)},C=function(a,b){function c(a,b){var c=
 a.match(m);return c?("%"==c[2]&&(c[1]+="%",n(d,!1)),c[1]):b}if(1==a){var d=this.getDialog(),f="",g="txtWidth"==this.id?"width":"height",e=b.getAttribute(g);e&&(f=c(e,f));f=c(b.getStyle(g),f);this.setValue(f)}},x,u=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.setCustomData("isReady","true");a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);b&&b.setStyle("display","none");this.dontResetSize||B(this,!1===d.config.image_prefillDimensions);this.firstLoad&&
 CKEDITOR.tools.setTimeout(function(){n(this,"check")},0,this);this.dontResetSize=this.firstLoad=!1;e(this)},h=function(){var a=this.originalElement,b=CKEDITOR.document.getById(p);a.removeListener("load",u);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);b&&b.setStyle("display","none");n(this,!1)},q=function(a){return CKEDITOR.tools.getNextId()+"_"+a},t=q("btnLockSizes"),
-y=q("btnResetSize"),p=q("ImagePreviewLoader"),E=q("previewLink"),D=q("previewImage");return{title:d.lang.image["image"==l?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),c=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1),d=CKEDITOR.document.getById(p);
-d&&d.setStyle("display","none");x=new CKEDITOR.dom.element("img",a.document);this.preview=CKEDITOR.document.getById(D);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");c&&(this.linkElement=c,this.addLink=this.linkEditMode=!0,a=c.getChildren(),1==a.count()&&(d=a.getItem(0),d.type==CKEDITOR.NODE_ELEMENT&&(d.is("img")||d.is("input"))&&(this.imageElement=a.getItem(0),this.imageElement.is("img")?this.imageEditMode=
-"img":this.imageElement.is("input")&&(this.imageEditMode="input"))),"image"==l&&this.setupContent(2,c));if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode&&(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,
-!0),this.setupContent(1,this.imageElement));n(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==l&&"input"==a&&confirm(d.lang.image.button2Img)?(this.imageElement=d.document.createElement("img"),this.imageElement.setAttribute("alt",""),d.insertElement(this.imageElement)):"image"!=l&&"img"==a&&confirm(d.lang.image.img2Button)?(this.imageElement=
-d.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),d.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==l?this.imageElement=d.document.createElement("img"):(this.imageElement=d.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=d.document.createElement("a"));this.commitContent(1,this.imageElement);
-this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(d.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(d.getSelection().selectElement(this.linkElement),d.insertElement(this.imageElement)):this.addLink?this.linkEditMode?this.linkElement.equals(d.getSelection().getSelectedElement())?(this.linkElement.setHtml(""),this.linkElement.append(this.imageElement,
-!1)):d.insertElement(this.imageElement):(d.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement)},onLoad:function(){"image"!=l&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(y),5),this.addFocusable(a.getById(t),5));this.commitContent=v},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",
-u),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:d.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"txtUrl",type:"text",label:d.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),
-c=a.originalElement;a.preview&&a.preview.removeStyle("display");c.setCustomData("isReady","false");var d=CKEDITOR.document.getById(p);d&&d.setStyle("display","");c.on("load",u,a);c.on("error",h,a);c.on("abort",h,a);c.setAttribute("src",b);a.preview&&(x.setAttribute("src",b),a.preview.setAttribute("src",x.$.src),e(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(1==a){var c=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=
-!0;this.setValue(c);this.setInitValue()}},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(d.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",align:"center",label:d.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:d.lang.image.alt,
-accessKey:"T","default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",
-id:"txtWidth",label:d.lang.common.width,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidWidth);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(c)):b.removeStyle("width"),b.removeAttribute("width")):4==a?c.match(m)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):
-(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("width",c.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:d.lang.common.height,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidHeight);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?
-b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),b.removeAttribute("height")):4==a?c.match(m)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("height",c.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(y),b=CKEDITOR.document.getById(t);
-a&&(a.on("click",function(a){B(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){n(this);var b=this.originalElement,d=this.getValueOf("info","txtWidth");"true"==b.getCustomData("isReady")&&d&&(b=b.$.height/b.$.width*d,isNaN(b)||(this.setValueOf("info","txtHeight",Math.round(b)),e(this)));a.data&&a.data.preventDefault()},this.getDialog()),
-b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"'+t+'" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.resetSize+
-'" class\x3d"cke_btn_reset" id\x3d"'+y+'" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:d.lang.image.border,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateBorder),setup:function(a,b){if(1==
-a){var c;c=(c=(c=b.getStyle("border-width"))&&c.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(c[1],10);isNaN(parseInt(c,10))&&(c=b.getAttribute("border"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),1==a&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),
-b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:d.lang.image.hSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateHSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-left");d=b.getStyle("margin-right");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;
-isNaN(parseInt(c,10))&&(c=b.getAttribute("hspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",
-requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:d.lang.image.vSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateVSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-top");d=b.getStyle("margin-bottom");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},
-commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",
-label:d.lang.common.align,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.alignLeft,"left"],[d.lang.common.alignRight,"right"]],onChange:function(){e(this.getDialog());k.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(1==a){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b){var c=this.getValue();if(1==a||4==a){if(c?b.setStyle("float",c):b.removeStyle("float"),1==a)switch(c=
-(b.getAttribute("align")||"").toLowerCase(),c){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"\x3cdiv\x3e"+CKEDITOR.tools.htmlEncode(d.lang.common.preview)+'\x3cbr\x3e\x3cdiv id\x3d"'+p+'" class\x3d"ImagePreviewLoader" style\x3d"display:none"\x3e\x3cdiv class\x3d"loading"\x3e\x26nbsp;\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"ImagePreviewBox"\x3e\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3ca href\x3d"javascript:void(0)" target\x3d"_blank" onclick\x3d"return false;" id\x3d"'+
+y=q("btnResetSize"),p=q("ImagePreviewLoader"),E=q("previewLink"),D=q("previewImage");return{title:d.lang.image["image"==l?"title":"titleButton"],minWidth:"moono-lisa"==(CKEDITOR.skinName||d.config.skin)?500:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),c=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",
+1),d=CKEDITOR.document.getById(p);d&&d.setStyle("display","none");x=new CKEDITOR.dom.element("img",a.document);this.preview=CKEDITOR.document.getById(D);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");c&&(this.linkElement=c,this.addLink=this.linkEditMode=!0,a=c.getChildren(),1==a.count()&&(d=a.getItem(0),d.type==CKEDITOR.NODE_ELEMENT&&(d.is("img")||d.is("input"))&&(this.imageElement=a.getItem(0),
+this.imageElement.is("img")?this.imageEditMode="img":this.imageElement.is("input")&&(this.imageEditMode="input"))),"image"==l&&this.setupContent(2,c));if(this.customImageElement)this.imageEditMode="img",this.imageElement=this.customImageElement,delete this.customImageElement;else if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode&&(this.cleanImageElement=this.imageElement,
+this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(1,this.imageElement));n(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display","none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==l&&"input"==a&&confirm(d.lang.image.button2Img)?(this.imageElement=d.document.createElement("img"),this.imageElement.setAttribute("alt",""),d.insertElement(this.imageElement)):"image"!=l&&"img"==
+a&&confirm(d.lang.image.img2Button)?(this.imageElement=d.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),d.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==l?this.imageElement=d.document.createElement("img"):(this.imageElement=d.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=d.document.createElement("a"));
+this.commitContent(1,this.imageElement);this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(d.insertElement(this.linkElement),this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(d.getSelection().selectElement(this.linkElement),d.insertElement(this.imageElement)):this.addLink?this.linkEditMode?this.linkElement.equals(d.getSelection().getSelectedElement())?
+(this.linkElement.setHtml(""),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement):(d.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):d.insertElement(this.imageElement)},onLoad:function(){"image"!=l&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(y),5),this.addFocusable(a.getById(t),5));this.commitContent=v},onHide:function(){this.preview&&this.commitContent(8,
+this.preview);this.originalElement&&(this.originalElement.removeListener("load",u),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:d.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px","110px"],align:"right",className:"cke_dialog_image_url",children:[{id:"txtUrl",type:"text",label:d.lang.common.url,
+required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),c=a.originalElement;a.preview&&a.preview.removeStyle("display");c.setCustomData("isReady","false");var d=CKEDITOR.document.getById(p);d&&d.setStyle("display","");c.on("load",u,a);c.on("error",h,a);c.on("abort",h,a);c.setAttribute("src",b);a.preview&&(x.setAttribute("src",b),a.preview.setAttribute("src",x.$.src),e(a))}else a.preview&&(a.preview.removeAttribute("src"),a.preview.setStyle("display",
+"none"))},setup:function(a,b){if(1==a){var c=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(c);this.setInitValue()}},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(d.lang.image.urlMissing)},{type:"button",id:"browse",style:"display:inline-block;margin-top:14px;",
+align:"center",label:d.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:d.lang.image.alt,accessKey:"T","default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",
+requiredContent:"img{width,height}",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"45px",id:"txtWidth",label:d.lang.common.width,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||alert(d.lang.common.invalidWidth);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("width",CKEDITOR.tools.cssLength(c)):
+b.removeStyle("width"),b.removeAttribute("width")):4==a?c.match(m)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("width",c.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"45px",label:d.lang.common.height,onKeyUp:A,onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(z);(a=!(!a||0===parseInt(a[1],10)))||
+alert(d.lang.common.invalidHeight);return a},setup:C,commit:function(a,b){var c=this.getValue();1==a?(c&&d.activeFilter.check("img{width,height}")?b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),b.removeAttribute("height")):4==a?c.match(m)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(c=this.getDialog().originalElement,"true"==c.getCustomData("isReady")&&b.setStyle("height",c.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",
+type:"html",className:"cke_dialog_image_ratiolock",style:"margin-top:30px;width:40px;height:40px;",onLoad:function(){var a=CKEDITOR.document.getById(y),b=CKEDITOR.document.getById(t);a&&(a.on("click",function(a){B(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){n(this);var b=this.originalElement,d=this.getValueOf("info","txtWidth");"true"==
+b.getCustomData("isReady")&&d&&(b=b.$.height/b.$.width*d,isNaN(b)||(this.setValueOf("info","txtHeight",Math.round(b)),e(this)));a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'\x3cdiv\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.lockRatio+'" class\x3d"cke_btn_locked" id\x3d"'+t+'" role\x3d"checkbox"\x3e\x3cspan class\x3d"cke_icon"\x3e\x3c/span\x3e\x3cspan class\x3d"cke_label"\x3e'+
+d.lang.image.lockRatio+'\x3c/span\x3e\x3c/a\x3e\x3ca href\x3d"javascript:void(0)" tabindex\x3d"-1" title\x3d"'+d.lang.image.resetSize+'" class\x3d"cke_btn_reset" id\x3d"'+y+'" role\x3d"button"\x3e\x3cspan class\x3d"cke_label"\x3e'+d.lang.image.resetSize+"\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",requiredContent:"img{border-width}",width:"60px",label:d.lang.image.border,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,
+"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateBorder),setup:function(a,b){if(1==a){var c;c=(c=(c=b.getStyle("border-width"))&&c.match(/^(\d+px)(?: \1 \1 \1)?$/))&&parseInt(c[1],10);isNaN(parseInt(c,10))&&(c=b.getAttribute("border"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style",
+"solid")),1==a&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",requiredContent:"img{margin-left,margin-right}",width:"60px",label:d.lang.image.hSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateHSpace),setup:function(a,b){if(1==a){var c,
+d;c=b.getStyle("margin-left");d=b.getStyle("margin-right");c=c&&c.match(r);d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("hspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("hspace")):
+8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",requiredContent:"img{margin-top,margin-bottom}",width:"60px",label:d.lang.image.vSpace,"default":"",onKeyUp:function(){e(this.getDialog())},onChange:function(){k.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(d.lang.image.validateVSpace),setup:function(a,b){if(1==a){var c,d;c=b.getStyle("margin-top");d=b.getStyle("margin-bottom");c=c&&c.match(r);
+d=d&&d.match(r);c=parseInt(c,10);d=parseInt(d,10);c=c==d&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b){var c=parseInt(this.getValue(),10);1==a||4==a?(isNaN(c)?!c&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):(b.setStyle("margin-top",CKEDITOR.tools.cssLength(c)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(c))),1==a&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},
+{id:"cmbAlign",requiredContent:"img{float}",type:"select",widths:["35%","65%"],style:"width:90px",label:d.lang.common.align,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.alignLeft,"left"],[d.lang.common.alignRight,"right"]],onChange:function(){e(this.getDialog());k.call(this,"advanced:txtdlgGenStyle")},setup:function(a,b){if(1==a){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,
+b){var c=this.getValue();if(1==a||4==a){if(c?b.setStyle("float",c):b.removeStyle("float"),1==a)switch(c=(b.getAttribute("align")||"").toLowerCase(),c){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",id:"htmlPreview",style:"width:95%;",html:"\x3cdiv\x3e"+CKEDITOR.tools.htmlEncode(d.lang.common.preview)+'\x3cbr\x3e\x3cdiv id\x3d"'+p+'" class\x3d"ImagePreviewLoader" style\x3d"display:none"\x3e\x3cdiv class\x3d"loading"\x3e\x26nbsp;\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"ImagePreviewBox"\x3e\x3ctable\x3e\x3ctr\x3e\x3ctd\x3e\x3ca href\x3d"javascript:void(0)" target\x3d"_blank" onclick\x3d"return false;" id\x3d"'+
 E+'"\x3e\x3cimg id\x3d"'+D+'" alt\x3d"" /\x3e\x3c/a\x3e'+(d.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
 "\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e"}]}]}]},{id:"Link",requiredContent:"a[href]",label:d.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:d.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var c=this.getValue();b.data("cke-saved-href",c);b.setAttribute("href",c);this.getValue()||
-!d.config.image_removeLinkByEmptyURL?this.getDialog().addLink=!0:this.getDialog().addLink=!1}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:d.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:d.lang.common.target,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.targetNew,"_blank"],[d.lang.common.targetTop,"_top"],[d.lang.common.targetSelf,
-"_self"],[d.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:d.lang.image.upload,elements:[{type:"file",id:"upload",label:d.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:d.lang.image.btnUpload,"for":["Upload",
-"upload"]}]},{id:"advanced",label:d.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:d.lang.common.id,setup:function(a,b){1==a&&this.setValue(b.getAttribute("id"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:d.lang.common.langDir,"default":"",items:[[d.lang.common.notSet,
+!d.config.image_removeLinkByEmptyURL?this.getDialog().addLink=!0:this.getDialog().addLink=!1}}},{type:"button",id:"browse",className:"cke_dialog_image_browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:d.lang.common.browseServer},{id:"cmbTarget",type:"select",requiredContent:"a[target]",label:d.lang.common.target,"default":"",items:[[d.lang.common.notSet,""],[d.lang.common.targetNew,"_blank"],[d.lang.common.targetTop,
+"_top"],[d.lang.common.targetSelf,"_self"],[d.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:d.lang.image.upload,elements:[{type:"file",id:"upload",label:d.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:d.lang.image.btnUpload,
+"for":["Upload","upload"]}]},{id:"advanced",label:d.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],children:[{type:"text",id:"linkId",requiredContent:"img[id]",label:d.lang.common.id,setup:function(a,b){1==a&&this.setValue(b.getAttribute("id"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",requiredContent:"img[dir]",style:"width : 100px;",label:d.lang.common.langDir,"default":"",items:[[d.lang.common.notSet,
 ""],[d.lang.common.langDirLtr,"ltr"],[d.lang.common.langDirRtl,"rtl"]],setup:function(a,b){1==a&&this.setValue(b.getAttribute("dir"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",requiredContent:"img[lang]",label:d.lang.common.langCode,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},
 {type:"text",id:"txtGenLongDescr",requiredContent:"img[longdesc]",label:d.lang.common.longDescr,setup:function(a,b){1==a&&this.setValue(b.getAttribute("longDesc"))},commit:function(a,b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",requiredContent:"img(cke-xyz)",label:d.lang.common.cssClass,"default":"",setup:function(a,b){1==a&&this.setValue(b.getAttribute("class"))},commit:function(a,
 b){1==a&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",requiredContent:"img[title]",label:d.lang.common.advisoryTitle,"default":"",onChange:function(){e(this.getDialog())},setup:function(a,b){1==a&&this.setValue(b.getAttribute("title"))},commit:function(a,b){1==a?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",
index 63372eb57a949fbd2a77fdbf22311b2828c759e6..50677e167e3f92b6d86b802fb53a6c124378ff37 100644 (file)
@@ -1,7 +1,8 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)):
-this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c);
-if(e){this._.selectedElement=e;var f=e.data("cke-saved-name");this.setValueOf("info","txtName",f||"");!d&&a.selectElement(e);b&&(this._.selectedElement=b)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}});
\ No newline at end of file
+CKEDITOR.dialog.add("anchor",function(c){function e(b,a){return b.createFakeElement(b.document.createElement("a",{attributes:a}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var b=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:b,name:b,"data-cke-saved-name":b};this._.selectedElement?this._.selectedElement.data("cke-realelement")?(b=e(c,a),b.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(b)):this._.selectedElement.setAttributes(a):
+(b=(b=c.getSelection())&&b.getRanges()[0],b.collapsed?(a=e(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,a.applyToRange(b)))},onHide:function(){delete this._.selectedElement},onShow:function(){var b=c.getSelection(),a;a=b.getRanges()[0];var d=b.getSelectedElement();a.shrink(CKEDITOR.SHRINK_ELEMENT);a=(d=a.getEnclosedNode())&&d.type===CKEDITOR.NODE_ELEMENT&&("anchor"===d.data("cke-real-element-type")||
+d.is("a"))?d:void 0;var f=(d=a&&a.data("cke-realelement"))?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,a):CKEDITOR.plugins.link.getSelectedLink(c);if(f){this._.selectedElement=f;var e=f.data("cke-saved-name");this.setValueOf("info","txtName",e||"");!d&&b.selectElement(f);a&&(this._.selectedElement=a)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?
+!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}});
\ No newline at end of file
index fcb4b64e218a0b9aa8b1edb7d048b24cfea6e3f1..e8581a779a65f7ef78a6e54ebfb7136002c9e8f1 100644 (file)
@@ -1,26 +1,28 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-(function(){CKEDITOR.dialog.add("link",function(g){var n=CKEDITOR.plugins.link,p=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),m=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),m){case "frame":a.setLabel(g.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(g.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(m),a.getElement().hide()}},
-f=function(a){a.target&&this.setValue(a.target[this.id]||"")},h=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},l=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},c=g.lang.common,b=g.lang.link,d;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],
-[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],m=this.getValue(),e=a.definition.getContents("upload"),e=e&&e.hidden;"url"==m?(g.config.linkShowTargetTab&&a.showPage("target"),e||a.showPage("upload")):(a.hidePage("target"),e||a.hidePage("upload"));for(e=0;e<b.length;e++){var c=a.getContentElement("info",b[e]);c&&(c=c.getElement().getParent().getParent(),b[e]==m+"Options"?c.show():c.hide())}a.layout()},setup:function(a){this.setValue(a.type||
-"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:c.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:c.url,required:!0,onLoad:function(){this.allowOnChange=
-!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),m=/^((javascript:)|[#\/\.\?])/i,c=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);c?(this.setValue(b.substr(c[0].length)),a.setValue(c[0].toLowerCase())):m.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")?
-!0:!g.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(c.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",
-id:"browse",hidden:"true",filebrowser:"info:url",label:c.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(){d=n.getEditorAnchors(g);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=
-0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor||
-(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",
-id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"email"==a.getValueOf("info","linkType")?CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this):!0},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",
-label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,
-title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:c.target,"default":"notSet",style:"width : 100%;",items:[[c.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[c.targetNew,"_blank"],[c.targetTop,"_top"],[c.targetSelf,"_self"],[c.targetParent,"_parent"]],onChange:p,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");p.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",
-id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:f,commit:k},{type:"checkbox",id:"status",label:b.popupStatusBar,
-setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:f,commit:k},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:f,commit:k},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:f,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:f,commit:k},{type:"checkbox",id:"dependent",label:b.popupDependent,
-setup:f,commit:k}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:c.width,id:"width",setup:f,commit:k},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:f,commit:k}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:c.height,id:"height",setup:f,commit:k},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:f,commit:k}]}]}]}]},{id:"upload",
-label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:c.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:c.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:h,commit:l},{type:"select",id:"advLangDir",
-requiredContent:"a[dir]",label:b.langDir,"default":"",style:"width:110px",items:[[c.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:h,commit:l},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:h,commit:l}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:h,commit:l},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px",
-"default":"",setup:h,commit:l},{type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:h,commit:l}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:h,commit:l},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:h,commit:l}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",
-label:b.cssClasses,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:h,commit:l},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:h,commit:l}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:h,commit:l},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(g.lang.common.invalidInlineStyle),
-setup:h,commit:l}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=null;(c=n.getSelectedLink(a))&&c.hasAttribute("href")?b.getSelectedElement()||b.selectElement(c):c=null;a=n.parseLinkAttributes(a,c);this._.selectedElement=c;this.setupContent(a)},onOk:function(){var a={};this.commitContent(a);var b=g.getSelection(),c=n.getLinkAttributes(g,a);if(this._.selectedElement){var e=this._.selectedElement,d=e.data("cke-saved-href"),f=e.getHtml();e.setAttributes(c.set);e.removeAttributes(c.removed);
-if(d==f||"email"==a.type&&-1!=f.indexOf("@"))e.setHtml("email"==a.type?a.email.address:c.set["data-cke-saved-href"]),b.selectElement(e);delete this._.selectedElement}else b=b.getRanges()[0],b.collapsed&&(a=new CKEDITOR.dom.text("email"==a.type?a.email.address:c.set["data-cke-saved-href"],g.document),b.insertNode(a),b.selectNodeContents(a)),c=new CKEDITOR.style({element:"a",attributes:c.set}),c.type=CKEDITOR.STYLE_INLINE,c.applyToRange(b,g),b.select()},onLoad:function(){g.config.linkShowAdvancedTab||
-this.hidePage("advanced");g.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})();
\ No newline at end of file
+(function(){CKEDITOR.dialog.add("link",function(c){function t(a,b){var c=a.createRange();c.setStartBefore(b);c.setEndAfter(b);return c}var n=CKEDITOR.plugins.link,q,r=function(){var a=this.getDialog(),b=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),p=this.getValue();if(b&&a)switch(b=b.getElement(),b.hide(),a.setValue(""),p){case "frame":a.setLabel(c.lang.link.targetFrameName);a.getElement().show();break;case "popup":b.show();a.setLabel(c.lang.link.targetPopupName);
+a.getElement().show();break;default:a.setValue(p),a.getElement().hide()}},l=function(a){a.target&&this.setValue(a.target[this.id]||"")},e=function(a){a.advanced&&this.setValue(a.advanced[this.id]||"")},k=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||""},m=function(a){a.advanced||(a.advanced={});a.advanced[this.id]=this.getValue()||""},g=c.lang.common,b=c.lang.link,d;return{title:b.title,minWidth:"moono-lisa"==(CKEDITOR.skinName||c.config.skin)?450:350,minHeight:240,contents:[{id:"info",
+label:b.info,title:b.info,elements:[{type:"text",id:"linkDisplayText",label:b.displayText,setup:function(){this.enable();this.setValue(c.getSelection().getSelectedText());q=this.getValue()},commit:function(a){a.linkText=this.isEnabled()?this.getValue():""}},{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],p=this.getValue(),f=a.definition.getContents("upload"),
+f=f&&f.hidden;"url"==p?(c.config.linkShowTargetTab&&a.showPage("target"),f||a.showPage("upload")):(a.hidePage("target"),f||a.hidePage("upload"));for(f=0;f<b.length;f++){var h=a.getContentElement("info",b[f]);h&&(h=h.getElement().getParent().getParent(),b[f]==p+"Options"?h.show():h.hide())}a.layout()},setup:function(a){this.setValue(a.type||"url")},commit:function(a){a.type=this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",
+label:g.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){a.url||(a.url={});a.url.protocol=this.getValue()}},{type:"text",id:"url",label:g.url,required:!0,onLoad:function(){this.allowOnChange=!0},onKeyUp:function(){this.allowOnChange=!1;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),c=/^((javascript:)|[#\/\.\?])/i,
+f=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);f?(this.setValue(b.substr(f[0].length)),a.setValue(f[0].toLowerCase())):c.test(b)&&a.setValue("");this.allowOnChange=!0},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"url"!=a.getValueOf("info","linkType")?!0:!c.config.linkJavaScriptLinksAllowed&&/javascript\:/.test(this.getValue())?(alert(g.invalidValue),!1):this.getDialog().fakeObj?!0:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},
+setup:function(a){this.allowOnChange=!1;a.url&&this.setValue(a.url.url);this.allowOnChange=!0},commit:function(a){this.onChange();a.url||(a.url={});a.url.url=this.getValue();this.allowOnChange=!1}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:g.browseServer}]},{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",
+label:b.selectAnchor,setup:function(){d=n.getEditorAnchors(c);this.getElement()[d&&d.length?"show":"hide"]()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].name&&this.add(d[b].name);a.anchor&&this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.focus()},commit:function(a){a.anchor||
+(a.anchor={});a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");if(d)for(var b=0;b<d.length;b++)d[b].id&&this.add(d[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){a.anchor||(a.anchor={});a.anchor.id=this.getValue()}}],setup:function(){this.getElement()[d&&d.length?"show":"hide"]()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'\x3cdiv role\x3d"note" tabIndex\x3d"-1"\x3e'+
+CKEDITOR.tools.htmlEncode(b.noAnchors)+"\x3c/div\x3e",focus:!0,setup:function(){this.getElement()[d&&d.length?"hide":"show"]()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return a.getContentElement("info","linkType")&&"email"==a.getValueOf("info","linkType")?CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this):
+!0},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&"email"==a.getValue()&&this.select()},commit:function(a){a.email||(a.email={});a.email.address=this.getValue()}},{type:"text",id:"emailSubject",label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){a.email||(a.email={});a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&
+this.setValue(a.email.body)},commit:function(a){a.email||(a.email={});a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:g.target,"default":"notSet",style:"width : 100%;",items:[[g.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[g.targetNew,
+"_blank"],[g.targetTop,"_top"],[g.targetSelf,"_self"],[g.targetParent,"_parent"]],onChange:r,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");r.call(this)},commit:function(a){a.target||(a.target={});a.target.type=this.getValue()}},{type:"text",id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){a.target||(a.target={});a.target.name=this.getValue().replace(/([^\x00-\x7F]|\s)/gi,"")}}]},{type:"vbox",
+width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:l,commit:k},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:l,commit:k},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",
+label:b.popupMenuBar,setup:l,commit:k},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:l,commit:k}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:l,commit:k},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:l,commit:k}]},{type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:g.width,id:"width",setup:l,commit:k},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",
+setup:l,commit:k}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:g.height,id:"height",setup:l,commit:k},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:l,commit:k}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:g.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:g.uploadSubmit,filebrowser:"info:url","for":["upload",
+"upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:e,commit:m},{type:"select",id:"advLangDir",requiredContent:"a[dir]",label:b.langDir,"default":"",style:"width:110px",items:[[g.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:e,commit:m},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,
+maxLength:1,setup:e,commit:m}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:e,commit:m},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:e,commit:m},{type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:e,commit:m}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,
+requiredContent:"a[title]","default":"",id:"advTitle",setup:e,commit:m},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:e,commit:m},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",
+label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:e,commit:m},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),setup:e,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"checkbox",id:"download",requiredContent:"a[download]",label:b.download,setup:function(a){void 0!==a.download&&this.setValue("checked","checked")},commit:function(a){this.getValue()&&(a.download=
+this.getValue())}}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=this.getContentElement("info","linkDisplayText").getElement().getParent().getParent(),f=n.getSelectedLink(a,!0),h=f[0]||null;h&&h.hasAttribute("href")&&(b.getSelectedElement()||b.isInTable()||b.selectElement(h));b=n.parseLinkAttributes(a,h);1>=f.length&&n.showDisplayTextForElement(h,a)?c.show():c.hide();this._.selectedElements=f;this.setupContent(b)},onOk:function(){var a={};this.commitContent(a);if(this._.selectedElements.length){var b=
+this._.selectedElements,g=n.getLinkAttributes(c,a),f=[],h,d,l,e,k;for(k=0;k<b.length;k++){h=b[k];d=h.data("cke-saved-href");l=h.getHtml();h.setAttributes(g.set);h.removeAttributes(g.removed);if(a.linkText&&q!=a.linkText)e=a.linkText;else if(d==l||"email"==a.type&&-1!=l.indexOf("@"))e="email"==a.type?a.email.address:g.set["data-cke-saved-href"];e&&h.setText(e);f.push(t(c,h))}c.getSelection().selectRanges(f);delete this._.selectedElements}else{b=n.getLinkAttributes(c,a);g=c.getSelection().getRanges();
+f=new CKEDITOR.style({element:"a",attributes:b.set});h=[];f.type=CKEDITOR.STYLE_INLINE;for(l=0;l<g.length;l++){d=g[l];d.collapsed?(e=new CKEDITOR.dom.text(a.linkText||("email"==a.type?a.email.address:b.set["data-cke-saved-href"]),c.document),d.insertNode(e),d.selectNodeContents(e)):q!==a.linkText&&(e=new CKEDITOR.dom.text(a.linkText,c.document),d.shrink(CKEDITOR.SHRINK_TEXT),c.editable().extractHtmlFromRange(d),d.insertNode(e));e=d._find("a");for(k=0;k<e.length;k++)e[k].remove(!0);f.applyToRange(d,
+c);h.push(d)}c.getSelection().selectRanges(h)}},onLoad:function(){c.config.linkShowAdvancedTab||this.hidePage("advanced");c.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");a&&"url"==a.getValue()&&(a=this.getContentElement("info","url"),a.select())}}})})();
\ No newline at end of file
index 6d861a0e7a5cbd98d5cd3264c5fdb6009d43362b..d94adb41306ffd96741ae5e5ca1e8d749853f3fb 100644 (file)
Binary files a/release/plugins/link/images/anchor.png and b/release/plugins/link/images/anchor.png differ
index f5048430d57dcf0170a2df9e48ba25a58ba18ef9..186c3e916512175f0d6ab12d8eacfe9f320314db 100644 (file)
Binary files a/release/plugins/link/images/hidpi/anchor.png and b/release/plugins/link/images/hidpi/anchor.png differ
index b984cbbb7874541817868934f775ebdcd12021f3..3d5a56f531b4afa2e8430b6828bad043f352ac95 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 (function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){a=
diff --git a/release/plugins/oembed/LICENSE.md b/release/plugins/oembed/LICENSE.md
new file mode 100644 (file)
index 0000000..be0064f
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License (MIT)\r
+\r
+Copyright (c) Ingo Herbote\r
+\r
+Permission is hereby granted, free of charge, to any person obtaining a copy\r
+of this software and associated documentation files (the "Software"), to deal\r
+in the Software without restriction, including without limitation the rights\r
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+copies of the Software, and to permit persons to whom the Software is\r
+furnished to do so, subject to the following conditions:\r
+\r
+The above copyright notice and this permission notice shall be included in all\r
+copies or substantial portions of the Software.\r
+\r
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+SOFTWARE.\r
diff --git a/release/plugins/oembed/README.md b/release/plugins/oembed/README.md
new file mode 100644 (file)
index 0000000..64c729c
--- /dev/null
@@ -0,0 +1,201 @@
+CKEditor-oEmbed-Plugin\r
+======================\r
+\r
+oEmbed Plugin for CKEditor\r
+\r
+This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest.\r
+\r
+This Plugin uses the jquery-oembed-all Plugin  located at https://github.com/starfishmod/jquery-oembed-all.\r
+\r
+####Demo\r
+\r
+http://w8tcha.github.com/CKEditor-oEmbed-Plugin/\r
+\r
+####Currently Supported Sites...\r
+\r
+###Video\r
+* Youtube - oembed - YQL\r
+* Blip - oEmbed\r
+* Hulu - oEmbed\r
+* Vimeo - oEmbed\r
+* National film board of Canada - oEmbed\r
+* Qik - oEmbed\r
+* Dotsub - oEmbed\r
+* Clikthrough - oEmbed\r
+* Kino Map - oEmbed\r
+* Funny Or Die - Embedded\r
+* College Humour - Embedded\r
+* Metacafe - Embedded\r
+* embedr - Embedded\r
+* 5min - oEmbed is XML only - using YQL to translate it\r
+* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it\r
+* viddler - OGP\r
+* twitvid - Embedded\r
+* bambuser - Embedded\r
+* xtranormal - Embedded\r
+* Gametrailers - Embedded\r
+* Vzarr - Embedded\r
+* VHX - oembed\r
+* bambuser - oembed\r
+* dailymotion.com - oembed\r
+* animoto - oembed\r
+* justin.tv - YQL JSON\r
+* livestream - OGP\r
+* scivee - embedded\r
+* veoh - embedded\r
+* minoto-video - oembed using YQL\r
+* TrailerAddict - OGP\r
+* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display\r
+* fora.tv -OGP YQL\r
+* TED - OGP YQL\r
+* Aniboom - embedded\r
+* Comedy Central - OGP\r
+* snotr - embedded\r
+* zapiks - OGP\r
+* youku - embedded\r
+* wistia - Oembed\r
+\r
+###Audio\r
+* Soundcloud - oEmbed\r
+* HuffDuffer - oEmbed\r
+* BandCamp - YQL and Embedded\r
+* podomatic - OGP\r
+* rdio.com - oEmbed\r
+* hark.com - OGP\r
+* chirb.it - YQL and oembed\r
+* official.fm - YQL and oembed\r
+* mixcloud - YQL and oembed\r
+* shoudio - oembed\r
+* audioboo.fm - OGP\r
+* Spotify - OGP YQL\r
+\r
+###Photo\r
+* flickr - oEmbed\r
+* photobucket - oEmbed\r
+* instagram - oEmbed\r
+* yfrog - oEmbed\r
+* 23HQ - oEmbed\r
+* Smugmug - oEmbed\r
+* twitpic - OGP YQL\r
+* 500px.com - OGP\r
+* visual.ly - YQL Lookup\r
+* img.ly - Thumbnail view\r
+* imgur.com - Thumbnail view\r
+* twitgoo.com - Thumbnail view\r
+* gravatar - Thumbnail view when using mailto\r
+* pintrest - YQL - Embedded view of a sort.\r
+* circuitlab - image view\r
+* skitch - YQL oembed\r
+* graphic.ly  - OGP\r
+* dribble - jsonp lookup\r
+* Lockerz - YQL lookup\r
+* AsciiArtFarts - YQL Lookup\r
+* lego cusoo - OGP over YQL\r
+* plannary - OGP over YQL\r
+* propic - OGP\r
+* avairy.com - OGP\r
+* lomography - ogp\r
+* weheartit - ogp\r
+* glogster - ogp\r
+* chart.ly - embedded\r
+* twitrpix - OGP\r
+* chictopia - OGP\r
+\r
+###Rich\r
+* Meetup - oEmbed\r
+* gigapans - Embedded\r
+* Slideshare - oEmbed\r
+* ebay - Embedded\r
+* scribd - Embedded\r
+* screenr - Embedded\r
+* tumblr- JSONP lookup\r
+* imdb - JSONP lookup via imdbapi.com\r
+* wikipedia- JSONP lookup\r
+* github- JSONP lookup (CSS)\r
+* eventful - OGP\r
+* myspace - OGP\r
+* live Journal - JSONP Lookup (CSS)\r
+* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well.\r
+* circuitbee -Embedded\r
+* stack overflow - JSONP Lookup (CSS)\r
+* Facebook - JSONP Lookup (CSS)\r
+* Pastebin - Embedded\r
+* Pastie - YQL lookup\r
+* kickstarter - Embedded\r
+* issuu - OGP\r
+* reelapp.com - Embedded\r
+* Etsy - OGP over YQL\r
+* Amazon - Embedded - Requires Affiliate code\r
+* linkedin - Embedded IFRAME - found a link that works :)\r
+* Lanyrd - YQL (CSS)\r
+* twitter - Oembed - status only - but that is ok I think\r
+* github gist - oembed\r
+* speakerdeck - yql oembed\r
+* dipity - yql oembed\r
+* dailymile - oembed\r
+* deviantart - oembed\r
+* Roomshare Japan - oembed\r
+* mobypictures - oembed\r
+* prezi - embedded\r
+* popplet - embedded\r
+* authorstream - OGP\r
+* googlecalendar - Iframe\r
+* cacoo - oembed\r
+* pearltrees - embedded\r
+* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue??\r
+* jotform - embedded\r
+* Urban Dictionary - YQL lookup\r
+* Ars Technica - YQL Lookup\r
+* Eventbrite - OGP YQL\r
+* last.fm OGP YQL\r
+* Rotten Tomatoes - OGP YQL\r
+* iFixit - OGP\r
+* qwiki - OGP\r
+* brighttalk - Meta info\r
+* tinychat - OGP\r
+* tourwrist - embedded\r
+* bnter - OGP\r
+* bigthink - OGP\r
+* wirewax - OGP\r
+* whosay - OGP\r
+* timetoast - embedded\r
+* tripline - OGP\r
+* jsfiddle - embedded\r
+\r
+\r
+####License\r
+\r
+Licensed under the terms of the MIT License.\r
+\r
+####Dependencies\r
+This Plugin requires the following plugins to work: Widget, Dialog.\r
+\r
+####Installation\r
+\r
+ 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget\r
+ 2. Extract the contents of the file into the "plugins" folder of CKEditor.\r
+ 3. In the CKEditor configuration file (config.js) add the following code:\r
+\r
+````js\r
+config.extraPlugins = 'oembed,widget';\r
+````\r
+\r
+2a. Additionally you can also set the default values vor the Max. Width/Height Values\r
+\r
+````js\r
+config.oembed_maxWidth = '560';\r
+config.oembed_maxHeight = '315';\r
+````\r
+\r
+and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined\r
+\r
+````js\r
+config.oembed_WrapperClass = 'embededContent';\r
+````\r
+\r
+\r
+3. and also include the plugin in the toolbar\r
+\r
+````js\r
+toolbar :[ ... ['oembed']...]\r
+````\r
diff --git a/release/plugins/oembed/libs/jquery.oembed.min.js b/release/plugins/oembed/libs/jquery.oembed.min.js
new file mode 100644 (file)
index 0000000..5a64c0d
--- /dev/null
@@ -0,0 +1,71 @@
+(function(b){function m(){return"file:"===window.location.protocol?"http://":"//"}function o(a,b){return b=b?b:"",a?o(--a,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(60*Math.random()))+b):b}function q(a,b){var h=a.apiendpoint,d="",c,h=h+(0>=h.indexOf("?")?"?":"&"),h=h.replace("#","%23");null!==a.maxWidth&&("undefined"==typeof a.params.maxwidth||null===a.params.maxwidth)&&(a.params.maxwidth=a.maxWidth);null!==a.maxHeight&&("undefined"==typeof a.params.maxheight||
+null===a.params.maxheight)&&(a.params.maxheight=a.maxHeight);for(c in a.params)c!=a.callbackparameter&&null!==a.params[c]&&(d+="&"+escape(c)+"="+a.params[c]);return h+="format="+a.format+"&url="+escape(b)+d,"json"!=a.dataType&&(h+="&"+a.callbackparameter+"=?"),h}function n(a,l,h){b("#jqoembeddata").data(l,a.code);j.beforeEmbed.call(h,a);j.onEmbed.call(h,a);j.afterEmbed.call(h,a)}function e(a,l,h){var d,c,f;if(void 0!=b("#jqoembeddata").data(l)&&"iframe"!=h.embedtag.tag)c={code:b("#jqoembeddata").data(l)},
+n(c,l,a);else if(h.yql){c=h.yql.from||"htmlstring";var g=h.yql.url?h.yql.url(l):l;f="SELECT * FROM "+c+' WHERE url="'+g+'" and '+(/html/.test(c)?"xpath":"itemPath")+"='"+(h.yql.xpath||"/")+"'";"html"==c&&(f+=" and compat='html5'");f=b.extend({url:m()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:f,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(c){var d,f,e,k,j;if(h.yql.xpath&&"//meta|//title|//link"==h.yql.xpath){d={};null==c.query.results&&
+(c.query.results={meta:[]});e=0;for(k=c.query.results.meta.length;e<k;e++)(f=c.query.results.meta[e].name||c.query.results.meta[e].property||null,null!=f)&&(d[f.toLowerCase()]=c.query.results.meta[e].content);if(d.hasOwnProperty("title")&&d.hasOwnProperty("og:title")||null!=c.query.results.title&&(d.title=c.query.results.title),!d.hasOwnProperty("og:image")&&c.query.results.hasOwnProperty("link")){e=0;for(k=c.query.results.link.length;e<k;e++)c.query.results.link[e].hasOwnProperty("rel")&&"apple-touch-icon"==
+c.query.results.link[e].rel&&(d["og:image"]="/"==c.query.results.link[e].href.charAt(0)?g.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1]+c.query.results.link[e].href:c.query.results.link[e].href)}c=h.yql.datareturn(d)}else c=h.yql.datareturn?h.yql.datareturn(c.query.results):c.query.results.result;!1!==c&&(j=b.extend({},c),j.code=c,n(j,l,a))},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{});b.ajax(f)}else if(h.templateRegex)if(""!==h.embedtag.tag){c=h.embedtag.flashvars||"";f=h.embedtag.tag||
+"embed";d=h.embedtag.width||"auto";var e=h.embedtag.height||"auto",p=l.replace(h.templateRegex,h.apiendpoint);if(h.nocache||(p+="&jqoemcache="+o(5)),h.apikey&&(p=p.replace("_APIKEY_",j.apikeys[h.name])),j.maxHeight&&j.maxWidth)if(j.useResponsiveResize){var r=0,s=d,t=e;d>j.maxWidth&&(r=j.maxWidth/d,s=j.maxWidth,t=e*r,e*=r,d*=r);e>j.maxHeight&&(r=j.maxHeight/e,t=j.maxHeight,s=d*r,d*=r);e=t;d=s}else e=j.maxHeight,d=j.maxWidth;d=b("<"+f+"/>").attr("src",p).attr("width",d).attr("height",e).attr("allowfullscreen",
+h.embedtag.allowfullscreen||"true").attr("allowscriptaccess",h.embedtag.allowfullscreen||"always").css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto");"embed"==f&&d.attr("type",h.embedtag.type||"application/x-shockwave-flash").attr("flashvars",l.replace(h.templateRegex,c));"iframe"==f&&d.attr("scrolling",h.embedtag.scrolling||"no").attr("frameborder",h.embedtag.frameborder||"0");c={code:d};n(c,l,a)}else h.apiendpoint?(h.apikey&&(h.apiendpoint=h.apiendpoint.replace("_APIKEY_",
+j.apikeys[h.name])),f=b.extend({url:l.replace(h.templateRegex,h.apiendpoint),dataType:"jsonp",success:function(c){var d=b.extend({},c);d.code=h.templateData(c);n(d,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)):(c={code:l.replace(h.templateRegex,h.template)},n(c,l,a));else c=q(h,l),f=b.extend({url:c,dataType:h.dataType||"jsonp",success:function(c){c=b.extend({},c);switch(c.type){case "file":case "photo":c.code=b.fn.oembed.getPhotoCode(l,c);break;case "link":c.code="Flickr"==
+c.provider_name?b.fn.oembed.getPhotoCode(l,c):b.fn.oembed.getGenericCode(l,c);break;case "video":case "rich":c.code=b.fn.oembed.getRichCode(l,c);break;default:c.code=b.fn.oembed.getGenericCode(l,c)}n(c,l,a)},error:function(){j.onError.call(a,l,h)}},j.ajaxOptions||{}),b.ajax(f)}function p(a){if(null===a)return null;var b,e={};for(b in a)null!==b&&(e[b.toLowerCase()]=a[b]);return e}b.fn.oembed=function(a,l,h){j=b.extend(!0,b.fn.oembed.defaults,l);var d="0rz.tw 1link.in 1url.com 2.gp 2big.at 2tu.us 3.ly 307.to 4ms.me 4sq.com 4url.cc 6url.com 7.ly a.gg a.nf aa.cx abcurl.net ad.vu adf.ly adjix.com afx.cc all.fuseurl.com alturl.com amzn.to ar.gy arst.ch atu.ca azc.cc b23.ru b2l.me bacn.me bcool.bz binged.it bit.ly bizj.us bloat.me bravo.ly bsa.ly budurl.com canurl.com chilp.it chzb.gr cl.lk cl.ly clck.ru cli.gs cliccami.info clickthru.ca clop.in conta.cc cort.as cot.ag crks.me ctvr.us cutt.us dai.ly decenturl.com dfl8.me digbig.com http://digg.com/[^/]+$ disq.us dld.bz dlvr.it do.my doiop.com dopen.us easyuri.com easyurl.net eepurl.com eweri.com fa.by fav.me fb.me fbshare.me ff.im fff.to fire.to firsturl.de firsturl.net flic.kr flq.us fly2.ws fon.gs freak.to fuseurl.com fuzzy.to fwd4.me fwib.net g.ro.lt gizmo.do gl.am go.9nl.com go.ign.com go.usa.gov goo.gl goshrink.com gurl.es hex.io hiderefer.com hmm.ph href.in hsblinks.com htxt.it huff.to hulu.com hurl.me hurl.ws icanhaz.com idek.net ilix.in is.gd its.my ix.lt j.mp jijr.com kl.am klck.me korta.nu krunchd.com l9k.net lat.ms liip.to liltext.com linkbee.com linkbun.ch liurl.cn ln-s.net ln-s.ru lnk.gd lnk.ms lnkd.in lnkurl.com lru.jp lt.tl lurl.no macte.ch mash.to merky.de migre.me miniurl.com minurl.fr mke.me moby.to moourl.com mrte.ch myloc.me myurl.in n.pr nbc.co nblo.gs nn.nf not.my notlong.com nsfw.in nutshellurl.com nxy.in nyti.ms o-x.fr oc1.us om.ly omf.gd omoikane.net on.cnn.com on.mktw.net onforb.es orz.se ow.ly ping.fm pli.gs pnt.me politi.co post.ly pp.gg profile.to ptiturl.com pub.vitrue.com qlnk.net qte.me qu.tc qy.fi r.ebay.com r.im rb6.me read.bi readthis.ca reallytinyurl.com redir.ec redirects.ca redirx.com retwt.me ri.ms rickroll.it riz.gd rt.nu ru.ly rubyurl.com rurl.org rww.tw s4c.in s7y.us safe.mn sameurl.com sdut.us shar.es shink.de shorl.com short.ie short.to shortlinks.co.uk shorturl.com shout.to show.my shrinkify.com shrinkr.com shrt.fr shrt.st shrten.com shrunkin.com simurl.com slate.me smallr.com smsh.me smurl.name sn.im snipr.com snipurl.com snurl.com sp2.ro spedr.com srnk.net srs.li starturl.com stks.co su.pr surl.co.uk surl.hu t.cn t.co t.lh.com ta.gd tbd.ly tcrn.ch tgr.me tgr.ph tighturl.com tiniuri.com tiny.cc tiny.ly tiny.pl tinylink.in tinyuri.ca tinyurl.com tk. tl.gd tmi.me tnij.org tnw.to tny.com to.ly togoto.us totc.us toysr.us tpm.ly tr.im tra.kz trunc.it twhub.com twirl.at twitclicks.com twitterurl.net twitterurl.org twiturl.de twurl.cc twurl.nl u.mavrev.com u.nu u76.org ub0.cc ulu.lu updating.me ur1.ca url.az url.co.uk url.ie url360.me url4.eu urlborg.com urlbrief.com urlcover.com urlcut.com urlenco.de urli.nl urls.im urlshorteningservicefortwitter.com urlx.ie urlzen.com usat.ly use.my vb.ly vevo.ly vgn.am vl.am vm.lc w55.de wapo.st wapurl.co.uk wipi.es wp.me x.vu xr.com xrl.in xrl.us xurl.es xurl.jp y.ahoo.it yatuc.com ye.pe yep.it yfrog.com yhoo.it yiyd.com youtu.be yuarel.com z0p.de zi.ma zi.mu zipmyurl.com zud.me zurl.ws zz.gd zzang.kr ›.ws ✩.ws ✿.ws ❥.ws ➔.ws ➞.ws ➡.ws ➨.ws ➯.ws ➹.ws ➽.ws".split(" ");
+return 0===b("#jqoembeddata").length&&b('<span id="jqoembeddata"></span>').appendTo("body"),this.each(function(){var c=b(this),f=a&&(!a.indexOf("http://")||!a.indexOf("https://"))?a:c.attr("href"),g,l,m,n,o;if(h?j.onEmbed=h:j.onEmbed||(j.onEmbed=function(a){b.fn.oembed.insertCode(this,j.embedMethod,a)}),null!==f&&void 0!==f){l=0;for(m=d.length;l<m;l++)if(n=RegExp("://"+d[l]+"/","i"),null!==f.match(n))return o=b.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:f,format:"json"},
+success:function(a){f=a["long-url"];g=b.fn.oembed.getOEmbedProvider(a["long-url"]);null!==g?(g.params=p(j[g.name])||{},g.maxWidth=j.maxWidth,g.maxHeight=j.maxHeight,e(c,f,g)):j.onProviderNotFound.call(c,f)}},j.ajaxOptions||{}),b.ajax(o),c;g=b.fn.oembed.getOEmbedProvider(f);null!==g?(g.params=p(j[g.name])||{},g.maxWidth=j.maxWidth,g.maxHeight=j.maxHeight,e(c,f,g)):j.onProviderNotFound.call(c,f)}return c})};var j;b.fn.oembed.defaults={maxWidth:null,maxHeight:null,useResponsiveResize:!1,includeHandle:!0,
+embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{timeout:2E3}};b.fn.oembed.insertCode=function(a,l,e){if(null!==e)switch("auto"==l&&null!==a.attr("href")?l="append":"auto"==l&&(l="replace"),l){case "replace":a.replaceWith(e.code);break;case "fill":a.html(e.code);break;case "append":a.wrap('<div class="oembedall-container"></div>');l=a.parent();j.includeHandle&&b('<span class="oembedall-closehide">&darr;</span>').insertBefore(a).click(function(){var a=
+encodeURIComponent(b(this).text());b(this).html("%E2%86%91"==a?"&darr;":"&uarr;");b(this).parent().children().last().toggle()});l.append("<br/>");try{e.code.clone().appendTo(l)}catch(d){l.append(e.code)}}};b.fn.oembed.getPhotoCode=function(a,b){var e,d=b.title?b.title:"",c;return d+=b.author_name?" - "+b.author_name:"",d+=b.provider_name?" - "+b.provider_name:"",b.url?e='<div><a href="'+a+"\" target='_blank'><img src=\""+b.url+'" alt="'+d+'"/></a></div>':b.thumbnail_url?(c=b.thumbnail_url.replace("_s",
+"_b"),e='<div><a href="'+a+"\" target='_blank'><img src=\""+c+'" alt="'+d+'"/></a></div>'):e="Flickr"==b.provider_name?'<p><a href="'+a+"\" target='_blank'>"+a+"</a></p>":"<div>Error loading this picture</div>",e};b.fn.oembed.getRichCode=function(a,b){return b.html};b.fn.oembed.getGenericCode=function(a,b){var e='<a href="'+a+'">'+(null!==b.title?b.title:a)+"</a>";return b.html&&(e+="<div>"+b.html+"</div>"),e};b.fn.oembed.getOEmbedProvider=function(a){for(var e,h,d,c=0;c<b.fn.oembed.providers.length;c++){e=
+0;for(h=b.fn.oembed.providers[c].urlschemes.length;e<h;e++)if(d=RegExp(b.fn.oembed.providers[c].urlschemes[e],"i"),null!==a.match(d))return b.fn.oembed.providers[c]}return null};b.fn.oembed.OEmbedProvider=function(a,e,h,d,c){this.name=a;this.type=e;this.urlschemes=h;this.apiendpoint=d;this.maxWidth=500;this.maxHeight=400;c=c||{};c.useYQL&&(c.yql="xml"==c.useYQL?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=xml&url="+a},datareturn:function(a){return a.html.replace(/.*\[CDATA\[(.*)\]\]>$/,
+"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(a){return this.apiendpoint+"?format=json&url="+a},datareturn:function(a){var c,d,e;if("video"!=a.json.type&&(a.json.url||a.json.thumbnail_url)&&!a.json.html.indexOf("iframe"))return'<img src="'+(a.json.url||a.json.thumbnail_url)+'"  />';if(a.json.html.indexOf("iframe")){a.json.html.indexOf("allowfullscreen>")&&(a.json.html=a.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var a=b.parseHTML(a.json.html),f=a[0].width,
+l=a[0].height;return j.maxHeight&&j.maxWidth&&(j.useResponsiveResize?(d=f,e=l,f>j.maxWidth&&(c=j.maxWidth/f,d=j.maxWidth,e=l*c,l*=c,f*=c),l>j.maxHeight&&(c=j.maxHeight/l,e=j.maxHeight,d=f*c),l=e,f=d):(l=j.maxHeight,f=j.maxWidth)),a[0].width=f,a[0].height=l,a[0].outerHTML}return a.json.html||""}},this.apiendpoint=null);for(var f in c)this[f]=c[f];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};b.fn.updateOEmbedProvider=
+function(a,e,h,d,c){for(var f,g=0;g<b.fn.oembed.providers.length;g++)if(b.fn.oembed.providers[g].name===a&&(null!==e&&(b.fn.oembed.providers[g].type=e),null!==h&&(b.fn.oembed.providers[g].urlschemes=h),null!==d&&(b.fn.oembed.providers[g].apiendpoint=d),null!==c))for(f in b.fn.oembed.providers[g].extraSettings=c,c)null!==c[f]&&(b.fn.oembed.providers[g][f]=c[f])};b.fn.oembed.providers=[new b.fn.oembed.OEmbedProvider("youtube","video",["youtube\\.com/watch.+v=[\\w-]+&?","youtu\\.be/[\\w-]+","youtube.com/embed"],
+m()+"www.youtube.com/embed/$1?wmode=transparent",{templateRegex:/.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new b.fn.oembed.OEmbedProvider("youtubeiframe","video",["youtube.com/embed"],"$1?wmode=transparent",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new b.fn.oembed.OEmbedProvider("wistia","video",["wistia.com/m/.+","wistia.com/embed/.+","wi.st/m/.+","wi.st/embed/.+"],"http://fast.wistia.com/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("xtranormal",
+"video",["xtranormal\\.com/watch/.+"],"http://www.xtranormal.com/xtraplayr/$1/$2",{templateRegex:/.*com\/watch\/([\w\-]+)\/([\w\-]+).*/,embedtag:{tag:"iframe",width:"320",height:"269"}}),new b.fn.oembed.OEmbedProvider("scivee","video",["scivee.tv/node/.+"],"http://www.scivee.tv/flash/embedCast.swf?",{templateRegex:/.*tv\/node\/(.+)/,embedtag:{width:"480",height:"400",flashvars:"id=$1&type=3"}}),new b.fn.oembed.OEmbedProvider("veoh","video",["veoh.com/watch/.+"],"http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous",
+{templateRegex:/.*watch\/([^\?]+).*/,embedtag:{width:"410",height:"341"}}),new b.fn.oembed.OEmbedProvider("gametrailers","video",["gametrailers\\.com/video/.+"],"http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2",{templateRegex:/.*com\/video\/([\w\-]+)\/([\w\-]+).*/,embedtag:{width:"512",height:"288"}}),new b.fn.oembed.OEmbedProvider("funnyordie","video",["funnyordie\\.com/videos/.+"],"http://player.ordienetworks.com/flash/fodplayer.swf?",{templateRegex:/.*videos\/([^\/]+)\/([^\/]+)?/,
+embedtag:{width:512,height:328,flashvars:"key=$1"}}),new b.fn.oembed.OEmbedProvider("colledgehumour","video",["collegehumor\\.com/video/.+"],"http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1",{templateRegex:/.*video\/([^\/]+).*/,embedtag:{width:600,height:338}}),new b.fn.oembed.OEmbedProvider("metacafe","video",["metacafe\\.com/watch/.+"],"http://www.metacafe.com/fplayer/$1/$2.swf",{templateRegex:/.*watch\/(\d+)\/(\w+)\/.*/,embedtag:{width:400,height:345}}),
+new b.fn.oembed.OEmbedProvider("bambuser","video",["bambuser\\.com/channel/.*/broadcast/.*"],"http://static.bambuser.com/r/player.swf?vid=$1",{templateRegex:/.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/,embedtag:{width:512,height:339}}),new b.fn.oembed.OEmbedProvider("twitvid","video",["twitvid\\.com/.+"],"http://www.twitvid.com/embed.php?guid=$1&autoplay=0",{templateRegex:/.*twitvid\.com\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360}}),new b.fn.oembed.OEmbedProvider("aniboom","video",
+["aniboom\\.com/animation-video/.+"],"http://api.aniboom.com/e/$1",{templateRegex:/.*animation-video\/(\d+).*/,embedtag:{width:594,height:334}}),new b.fn.oembed.OEmbedProvider("vzaar","video",["vzaar\\.com/videos/.+","vzaar.tv/.+"],"http://view.vzaar.com/$1/player?",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:576,height:324}}),new b.fn.oembed.OEmbedProvider("snotr","video",["snotr\\.com/video/.+"],"http://www.snotr.com/embed/$1",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:400,
+height:330,nocache:1}}),new b.fn.oembed.OEmbedProvider("youku","video",["v.youku.com/v_show/id_.+"],"http://player.youku.com/player.php/sid/$1/v.swf",{templateRegex:/.*id_(.+)\.html.*/,embedtag:{width:480,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("tudou","video",["tudou.com/programs/view/.+/"],"http://www.tudou.com/v/$1/v.swf",{templateRegex:/.*view\/(.+)\//,embedtag:{width:480,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("embedr","video",["embedr\\.com/playlist/.+"],"http://embedr.com/swf/slider/$1/425/520/default/false/std?",
+{templateRegex:/.*playlist\/([^\/]+).*/,embedtag:{width:425,height:520}}),new b.fn.oembed.OEmbedProvider("blip","video",["blip\\.tv/.+"],"http://blip.tv/oembed/"),new b.fn.oembed.OEmbedProvider("minoto-video","video",["http://api.minoto-video.com/publishers/.+/videos/.+","http://dashboard.minoto-video.com/main/video/details/.+","http://embed.minoto-video.com/.+"],"http://api.minoto-video.com/services/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("animoto","video",["animoto.com/play/.+"],
+"http://animoto.com/services/oembed"),new b.fn.oembed.OEmbedProvider("hulu","video",["hulu\\.com/watch/.*"],"http://www.hulu.com/api/oembed.json"),new b.fn.oembed.OEmbedProvider("ustream","video",["ustream\\.tv/recorded/.*"],"http://www.ustream.tv/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("videojug","video",["videojug\\.com/(film|payer|interview).*"],"http://www.videojug.com/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("sapo","video",["videos\\.sapo\\.pt/.*"],"http://videos.sapo.pt/oembed",
+{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("vodpod","video",["vodpod.com/watch/.*"],"http://vodpod.com/oembed.js",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("vimeo","video",["www.vimeo.com/groups/.*/videos/.*","www.vimeo.com/.*","vimeo.com/groups/.*/videos/.*","vimeo.com/.*"],"//vimeo.com/api/oembed.json"),new b.fn.oembed.OEmbedProvider("dailymotion","video",["dailymotion\\.com/.+"],"http://www.dailymotion.com/services/oembed"),new b.fn.oembed.OEmbedProvider("5min","video",["www\\.5min\\.com/.+"],
+"http://api.5min.com/oembed.xml",{useYQL:"xml"}),new b.fn.oembed.OEmbedProvider("National Film Board of Canada","video",["nfb\\.ca/film/.+"],"http://www.nfb.ca/remote/services/oembed/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("qik","video",["qik\\.com/\\w+"],"http://qik.com/api/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("revision3","video",["revision3\\.com"],"http://revision3.com/api/oembed/"),new b.fn.oembed.OEmbedProvider("dotsub","video",["dotsub\\.com/view/.+"],"http://dotsub.com/services/oembed",
+{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("clikthrough","video",["clikthrough\\.com/theater/video/\\d+"],"http://clikthrough.com/services/oembed"),new b.fn.oembed.OEmbedProvider("Kinomap","video",["kinomap\\.com/.+"],"http://www.kinomap.com/oembed"),new b.fn.oembed.OEmbedProvider("VHX","video",["vhx.tv/.+"],"http://vhx.tv/services/oembed.json"),new b.fn.oembed.OEmbedProvider("bambuser","video",["bambuser.com/.+"],"http://api.bambuser.com/oembed/iframe.json"),new b.fn.oembed.OEmbedProvider("justin.tv",
+"video",["justin.tv/.+"],"http://api.justin.tv/api/embed/from_url.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("official.fm","rich",["official.fm/.+"],"http://official.fm/services/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("chirbit","rich",["chirb.it/.+"],"http://chirb.it/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("Huffduffer","rich",["huffduffer.com/[-.\\w@]+/\\d+"],"http://huffduffer.com/oembed"),new b.fn.oembed.OEmbedProvider("Spotify","rich",["open.spotify.com/(track|album|user)/"],
+"https://embed.spotify.com/oembed/"),new b.fn.oembed.OEmbedProvider("shoudio","rich",["shoudio.com/.+","shoud.io/.+"],"http://shoudio.com/api/oembed"),new b.fn.oembed.OEmbedProvider("mixcloud","rich",["mixcloud.com/.+"],m()+"www.mixcloud.com/oembed/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("rdio.com","rich",["rd.io/.+","rdio.com"],m()+"www.rdio.com/api/oembed/"),new b.fn.oembed.OEmbedProvider("Soundcloud","rich",["soundcloud.com/.+","snd.sc/.+"],m()+"soundcloud.com/oembed",{format:"js"}),
+new b.fn.oembed.OEmbedProvider("bandcamp","rich",["bandcamp\\.com/album/.+"],null,{yql:{xpath:"//meta[contains(@content, \\'EmbeddedPlayer\\')]",from:"html",datareturn:function(a){return a.meta?'<iframe width="400" height="100" src="'+a.meta.content+'" allowtransparency="true" frameborder="0"></iframe>':!1}}}),new b.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new b.fn.oembed.OEmbedProvider("skitch",
+"photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(a){return"http://skitch.com/oembed/?format=json&url="+a},datareturn:function(a){return b.fn.oembed.getPhotoCode(a.json.url,a.json)}}}),new b.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new b.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new b.fn.oembed.OEmbedProvider("photobucket",
+"photo",["photobucket\\.com/(albums|groups)/.+"],m()+"photobucket.com/oembed/"),new b.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],m()+"api.instagram.com/oembed"),new b.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new b.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(a){return a.image_teaser_url?
+'<img src="'+a.image_teaser_url+'"/>':!1}}),new b.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],
+"http://www.23hq.com/23/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],m()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,
+embedtag:{tag:"img"},nocache:1}),new b.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new b.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(a,b){return'<img src="http://gravatar.com/avatar/'+b.md5()+'.jpg" alt="on Gravtar" class="jqoaImg">'}}),new b.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="),
+new b.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new b.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new b.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new b.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new b.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],
+"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new b.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),
+new b.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&amp;embedId=pt-embed-$1-693&amp;treeId=$1&amp;pearlId=$2&amp;treeTitle=Diagrams%2FVisualization&amp;site=www.pearltrees.com%2FF"}}),new b.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,
+height:400,flashvars:"prezi_id=$1&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"}}),new b.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(a,b){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2E3),"<div id='"+b+"' class='tourwrist-tour-embed direct'></div> <script type='text/javascript' src='http://tourwrist.com/tour_embed.js'><\/script>"}}),new b.fn.oembed.OEmbedProvider("meetup","rich",
+["meetup\\.(com|ps)/.+"],m()+"api.meetup.com/oembed"),new b.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],m()+"togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new b.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json&section=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,
+templateData:function(a){if(!a.parse)return!1;var b=a.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'<div id="content"><h3><a class="nav-link" href="http://en.wikipedia.org/wiki/'+a.parse.displaytitle+'">'+a.parse.displaytitle+"</a></h3>"+b+"</div>"}}),new b.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(a){return a.Title?'<div id="content"><h3><a class="nav-link" href="http://imdb.com/title/'+
+a.ID+'/">'+a.Title+"</a> ("+a.Year+")</h3><p>Starring: "+a.Actors+'</p><div id="photo-wrap" style="margin: auto;width:600px;height:450px;"><img class="photo" id="photo-display" src="'+a.Poster+'" alt="'+a.Title+'"></div>  <div id="view-photo-caption">'+a.Plot+"</div></div>":!1}}),new b.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(a){return!!a.username&&
+'<div><img src="'+a.image+'" align="left" style="margin-right: 1em;" /><span class="oembedall-ljuser"><a href="http://'+a.username+'.livejournal.com/profile"><img src="http://www.livejournal.com/img/userinfo.gif" alt="[info]" width="17" height="17" /></a><a href="http://'+a.username+'.livejournal.com/">'+a.username+"</a></span><br />"+a.name+"</div>"}}),new b.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",
+{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new b.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new b.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new b.fn.oembed.OEmbedProvider("jsbin",
+"rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new b.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new b.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new b.fn.oembed.OEmbedProvider("linkedin",
+"rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new b.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new b.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],
+"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new b.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new b.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new b.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],
+"https://github.com/api/oembed"),new b.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(a){return a.data.html_url?'<div class="oembedall-githubrepos"><ul class="oembedall-repo-stats"><li>'+a.data.language+'</li><li class="oembedall-watchers"><a title="Watchers" href="'+a.data.html_url+'/watchers">&#x25c9; '+a.data.watchers+'</a></li><li class="oembedall-forks"><a title="Forks" href="'+
+a.data.html_url+'/network">&#x0265; '+a.data.forks+'</a></li></ul><h3><a href="'+a.data.html_url+'">'+a.data.name+'</a></h3><div class="oembedall-body"><p class="oembedall-description">'+a.data.description+'</p><p class="oembedall-updated-at">Last updated: '+a.data.pushed_at+"</p></div></div>":!1}}),new b.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,
+templateData:function(a){if(!a.id)return!1;var b='<div class="oembedall-facebook1"><div class="oembedall-facebook2"><a href="http://www.facebook.com/">facebook</a> ';return b+=a.from?'<a href="http://www.facebook.com/'+a.from.id+'">'+a.from.name+"</a>":a.link?'<a href="'+a.link+'">'+a.name+"</a>":a.username?'<a href="http://www.facebook.com/'+a.username+'">'+a.name+"</a>":'<a href="http://www.facebook.com/'+a.id+'">'+a.name+"</a>",b+='</div><div class="oembedall-facebookBody"><div class="contents">',
+b+=a.picture?'<a href="'+a.link+'"><img src="'+a.picture+'"></a>':'<img src="https://graph.facebook.com/'+a.id+'/picture">',a.from&&(b+='<a href="'+a.link+'">'+a.name+"</a>"),a.founded&&(b+="Founded: <strong>"+a.founded+"</strong><br>"),a.category&&(b+="Category: <strong>"+a.category+"</strong><br>"),a.website&&(b+='Website: <strong><a href="'+a.website+'">'+a.website+"</a></strong><br>"),a.gender&&(b+="Gender: <strong>"+a.gender+"</strong><br>"),a.description&&(b+=a.description+"<br>"),b+"</div></div>"}}),
+new b.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(a){if(!a.questions)return!1;var a=a.questions[0],e=b(a.body).text(),e='<div class="oembedall-stoqembed"><div class="oembedall-statscontainer"><div class="oembedall-statsarrow"></div><div class="oembedall-stats"><div class="oembedall-vote"><div class="oembedall-votes"><span class="oembedall-vote-count-post"><strong>'+
+(a.up_vote_count-a.down_vote_count)+'</strong></span><div class="oembedall-viewcount">vote(s)</div></div></div><div class="oembedall-status"><strong>'+a.answer_count+'</strong>answer</div></div><div class="oembedall-views">'+a.view_count+' view(s)</div></div><div class="oembedall-summary"><h3><a class="oembedall-question-hyperlink" href="http://stackoverflow.com/questions/'+a.question_id+'/">'+a.title+'</a></h3><div class="oembedall-excerpt">'+e.substring(0,100)+'...</div><div class="oembedall-tags">';
+for(i in a.tags)e+='<a title="" class="oembedall-post-tag" href="http://stackoverflow.com/questions/tagged/'+a.tags[i]+'">'+a.tags[i]+"</a>";return e+('</div><div class="oembedall-fr"><div class="oembedall-user-info"><div class="oembedall-user-gravatar32"><a href="http://stackoverflow.com/users/'+a.owner.user_id+"/"+a.owner.display_name+'"><img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/'+a.owner.email_hash+'?s=32&amp;d=identicon&amp;r=PG"></a></div><div class="oembedall-user-details"><a href="http://stackoverflow.com/users/'+
+a.owner.user_id+"/"+a.owner.display_name+'">'+a.owner.display_name+'</a><br><span title="reputation score" class="oembedall-reputation-score">'+a.owner.reputation+"</span></div></div></div></div></div>")}}),new b.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new b.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",
+{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new b.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new b.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],m()+"www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",
+width:"100%",height:600}}),new b.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new b.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],m()+"rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,
+embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new b.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],m()+"www.slideshare.net/api/oembed/2",{format:"jsonp"}),new b.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new b.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(a){return a.result?'<div class="oembedall-lanyard">'+
+a.result+"</div>":!1}}}),new b.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(a){return a.result?'<pre style="background-color:000;">'+a.result+"</div>":!1}}}),new b.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(a){var e,h,d;return(!a["og:title"]&&a.title&&a.description&&(a["og:title"]=a.title),!a["og:title"]&&!a.title)?
+!1:(e=b("<p/>"),a["og:video"]?(h=b('<embed src="'+a["og:video"]+'"/>'),h.attr("type",a["og:video:type"]||"application/x-shockwave-flash").css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto"),a["og:video:width"]&&h.attr("width",a["og:video:width"]),a["og:video:height"]&&h.attr("height",a["og:video:height"]),e.append(h)):a["og:image"]&&(d=b('<img src="'+a["og:image"]+'">'),d.css("max-height",j.maxHeight||"auto").css("max-width",j.maxWidth||"auto"),a["og:image:width"]&&d.attr("width",
+a["og:image:width"]),a["og:image:height"]&&d.attr("height",a["og:image:height"]),e.append(d)),a["og:title"]&&e.append("<b>"+a["og:title"]+"</b><br/>"),a["og:description"]?e.append(a["og:description"]+"<br/>"):a.description&&e.append(a.description+"<br/>"),e)}}})]})(jQuery);
+String.prototype.md5=function(){var b=function(b,m){var j=(b&65535)+(m&65535);return(b>>16)+(m>>16)+(j>>16)<<16|j&65535},m=function(e,m,j,a,l,h){e=b(b(m,e),b(a,h));return b(e<<l|e>>>32-l,j)},o=function(b,p,j,a,l,h,d){return m(p&j|~p&a,b,p,l,h,d)},q=function(b,p,j,a,l,h,d){return m(p&a|j&~a,b,p,l,h,d)},n=function(b,p,j,a,l,h,d){return m(j^(p|~a),b,p,l,h,d)};return function(b){for(var m="",j=4*b.length,a=0;a<j;a++)m+="0123456789abcdef".charAt(b[a>>2]>>8*(a%4)+4&15)+"0123456789abcdef".charAt(b[a>>2]>>
+8*(a%4)&15);return m}(function(e){for(var p,j,a,l,h=e.length,d=1732584193,c=-271733879,f=-1732584194,g=271733878,k=0;k<h;k+=16)p=d,j=c,a=f,l=g,d=o(d,c,f,g,e[k+0],7,-680876936),g=o(g,d,c,f,e[k+1],12,-389564586),f=o(f,g,d,c,e[k+2],17,606105819),c=o(c,f,g,d,e[k+3],22,-1044525330),d=o(d,c,f,g,e[k+4],7,-176418897),g=o(g,d,c,f,e[k+5],12,1200080426),f=o(f,g,d,c,e[k+6],17,-1473231341),c=o(c,f,g,d,e[k+7],22,-45705983),d=o(d,c,f,g,e[k+8],7,1770035416),g=o(g,d,c,f,e[k+9],12,-1958414417),f=o(f,g,d,c,e[k+10],
+17,-42063),c=o(c,f,g,d,e[k+11],22,-1990404162),d=o(d,c,f,g,e[k+12],7,1804603682),g=o(g,d,c,f,e[k+13],12,-40341101),f=o(f,g,d,c,e[k+14],17,-1502002290),c=o(c,f,g,d,e[k+15],22,1236535329),d=q(d,c,f,g,e[k+1],5,-165796510),g=q(g,d,c,f,e[k+6],9,-1069501632),f=q(f,g,d,c,e[k+11],14,643717713),c=q(c,f,g,d,e[k+0],20,-373897302),d=q(d,c,f,g,e[k+5],5,-701558691),g=q(g,d,c,f,e[k+10],9,38016083),f=q(f,g,d,c,e[k+15],14,-660478335),c=q(c,f,g,d,e[k+4],20,-405537848),d=q(d,c,f,g,e[k+9],5,568446438),g=q(g,d,c,f,e[k+
+14],9,-1019803690),f=q(f,g,d,c,e[k+3],14,-187363961),c=q(c,f,g,d,e[k+8],20,1163531501),d=q(d,c,f,g,e[k+13],5,-1444681467),g=q(g,d,c,f,e[k+2],9,-51403784),f=q(f,g,d,c,e[k+7],14,1735328473),c=q(c,f,g,d,e[k+12],20,-1926607734),d=m(c^f^g,d,c,e[k+5],4,-378558),g=m(d^c^f,g,d,e[k+8],11,-2022574463),f=m(g^d^c,f,g,e[k+11],16,1839030562),c=m(f^g^d,c,f,e[k+14],23,-35309556),d=m(c^f^g,d,c,e[k+1],4,-1530992060),g=m(d^c^f,g,d,e[k+4],11,1272893353),f=m(g^d^c,f,g,e[k+7],16,-155497632),c=m(f^g^d,c,f,e[k+10],23,-1094730640),
+d=m(c^f^g,d,c,e[k+13],4,681279174),g=m(d^c^f,g,d,e[k+0],11,-358537222),f=m(g^d^c,f,g,e[k+3],16,-722521979),c=m(f^g^d,c,f,e[k+6],23,76029189),d=m(c^f^g,d,c,e[k+9],4,-640364487),g=m(d^c^f,g,d,e[k+12],11,-421815835),f=m(g^d^c,f,g,e[k+15],16,530742520),c=m(f^g^d,c,f,e[k+2],23,-995338651),d=n(d,c,f,g,e[k+0],6,-198630844),g=n(g,d,c,f,e[k+7],10,1126891415),f=n(f,g,d,c,e[k+14],15,-1416354905),c=n(c,f,g,d,e[k+5],21,-57434055),d=n(d,c,f,g,e[k+12],6,1700485571),g=n(g,d,c,f,e[k+3],10,-1894986606),f=n(f,g,d,c,
+e[k+10],15,-1051523),c=n(c,f,g,d,e[k+1],21,-2054922799),d=n(d,c,f,g,e[k+8],6,1873313359),g=n(g,d,c,f,e[k+15],10,-30611744),f=n(f,g,d,c,e[k+6],15,-1560198380),c=n(c,f,g,d,e[k+13],21,1309151649),d=n(d,c,f,g,e[k+4],6,-145523070),g=n(g,d,c,f,e[k+11],10,-1120210379),f=n(f,g,d,c,e[k+2],15,718787259),c=n(c,f,g,d,e[k+9],21,-343485551),d=b(d,p),c=b(c,j),f=b(f,a),g=b(g,l);return[d,c,f,g]}(function(b){for(var m=(b.length+8>>6)+1,j=[],a=16*m,l=b.length,h=0;h<a;h++)j.push(0);for(a=0;a<l;a++)j[a>>2]|=(b.charCodeAt(a)&
+255)<<8*(a%4);return j[a>>2]|=128<<8*(a%4),j[16*m-2]=8*l,j}(this)))};
\ No newline at end of file
diff --git a/release/plugins/widget/images/handle.png b/release/plugins/widget/images/handle.png
new file mode 100644 (file)
index 0000000..ba8cda5
Binary files /dev/null and b/release/plugins/widget/images/handle.png differ
index 43e597392e5608c2d5fe60252411c5cd78e15353..f1973d0ffe6561da95413ee6736f72a6d6002a09 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 @media (max-width: 900px) {\r
@@ -136,7 +136,7 @@ html {
 }\r
 .navigation-a {\r
   height: 30px;\r
-  background: #3d3d3d;\r
+  background: #3D3D3D;\r
   position: absolute;\r
   left: 0;\r
   right: 0;\r
@@ -197,14 +197,14 @@ html {
   line-height: 1.13rem;\r
   line-height: 30px;\r
   float: left;\r
-  color: #dddddd;\r
+  color: #ddd;\r
   font-weight: bold;\r
   text-decoration: none;\r
   text-transform: uppercase;\r
 }\r
 .navigation-a ul li a:hover {\r
   cursor: pointer;\r
-  color: #ffffff;\r
+  color: #fff;\r
 }\r
 .icon-navigation-a-github:before,\r
 .icon-navigation-a-github:after {\r
@@ -282,9 +282,9 @@ html {
   color: #8a8a8a;\r
 }\r
 .footer-a a {\r
-  color: #27c0d8;\r
+  color: #27C0D8;\r
   text-decoration: none;\r
-  border-bottom: 1px dotted #27c0d8;\r
+  border-bottom: 1px dotted #27C0D8;\r
 }\r
 .footer-a a:hover {\r
   color: #23adc2;\r
@@ -333,7 +333,7 @@ html {
 .content blockquote,\r
 .content pre {\r
   background: none;\r
-  border-left: 4px solid #27c0d8;\r
+  border-left: 4px solid #27C0D8;\r
   padding: 1.5em 2.25em;\r
 }\r
 .content p a,\r
@@ -345,9 +345,9 @@ html {
 .content h3 a,\r
 .content h4 a,\r
 .content h5 a {\r
-  color: #27c0d8;\r
+  color: #27C0D8;\r
   text-decoration: none;\r
-  border-bottom: 1px dotted #27c0d8;\r
+  border-bottom: 1px dotted #27C0D8;\r
 }\r
 .content p a:hover,\r
 .content ul a:hover,\r
@@ -422,7 +422,7 @@ html {
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);\r
   font: inherit;\r
   color: inherit;\r
-  border: 1px solid #d9d9d9;\r
+  border: 1px solid #D9D9D9;\r
   padding: .2em .5em;\r
 }\r
 .content input:focus,\r
@@ -489,7 +489,7 @@ html {
 }\r
 .content hr {\r
   border: 0;\r
-  border-top: 4px solid #d9d9d9;\r
+  border-top: 4px solid #D9D9D9;\r
   margin: 1.5em 0;\r
 }\r
 .content input[type="text"] {\r
@@ -508,9 +508,9 @@ html {
   line-height: 1.35rem;\r
   font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;\r
   padding: 2px 6px;\r
-  -webkit-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
-  -moz-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
-  box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;\r
+  -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
+  -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
+  box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;\r
 }\r
 .content p img {\r
   vertical-align: middle;\r
@@ -704,7 +704,7 @@ body a.navigation-b ul li a:hover,
 body button.navigation-b ul li a:hover,\r
 body input.navigation-b ul li a:hover {\r
   color: #fff;\r
-  background: #27c0d8;\r
+  background: #27C0D8;\r
 }\r
 body a.button-a-background:active,\r
 body button.button-a-background:active,\r
@@ -826,7 +826,7 @@ body input.navigation-b ul li a:hover:hover {
   line-height: 25.2px;\r
   line-height: 1.57rem;\r
   font-weight: bold;\r
-  background-color: #27c0d8;\r
+  background-color: #27C0D8;\r
   overflow: hidden;\r
   display: inline-block;\r
   padding: 0.75em 0.25em;\r
@@ -1004,10 +1004,10 @@ footer > div {
   margin-top: 30px;\r
 }\r
 .footer-a {\r
-  border-top: 1px solid #d9d9d9;\r
+  border-top: 1px solid #D9D9D9;\r
 }\r
 .adjoined-top {\r
-  background-color: #27c0d8;\r
+  background-color: #27C0D8;\r
   color: #fff;\r
 }\r
 .adjoined-top .content h1,\r
@@ -1040,7 +1040,7 @@ footer > div {
 }\r
 .adjoined-top .content code {\r
   font-size: inherit;\r
-  color: #27c0d8;\r
+  color: #27C0D8;\r
 }\r
 .adjoined-bottom {\r
   position: relative;\r
@@ -1048,7 +1048,7 @@ footer > div {
 .adjoined-bottom:before {\r
   z-index: -1;\r
   content: '';\r
-  background: #27c0d8;\r
+  background: #27C0D8;\r
   position: absolute;\r
   top: 0;\r
   left: 0;\r
@@ -1091,15 +1091,7 @@ main .grid-container.freed-width {
 #main #editor {\r
   background: #FFF;\r
   padding: 2% 4%;\r
-  border: dashed 5px #27c0d8;\r
-}\r
-div.cke a.cke_button,\r
-div.cke .cke_combo_button {\r
-  border-bottom: none;\r
-}\r
-div.cke a.cke_button.cke_combo_button,\r
-div.cke .cke_combo_button.cke_combo_button {\r
-  border-bottom: 1px solid #a6a6a6;\r
+  border: dashed 5px #27C0D8;\r
 }\r
 #main .adjoined-top:before {\r
   height: 335px;\r
@@ -1313,7 +1305,7 @@ div.toolbarModifier .empty > p {
 div.toolbarModifier > ul {\r
   padding: 0;\r
   margin: 0;\r
-  border-top: 1px solid #cccccc;\r
+  border-top: 1px solid #ccc;\r
   width: 100%;\r
 }\r
 div.toolbarModifier > ul[data-type="table-header"] {\r
@@ -1336,7 +1328,7 @@ div.toolbarModifier > ul > li[data-type="header"] {
 }\r
 div.toolbarModifier > ul > li[data-type="group"],\r
 div.toolbarModifier > ul > li[data-type="separator"] {\r
-  border-bottom: 1px solid #cccccc;\r
+  border-bottom: 1px solid #ccc;\r
 }\r
 div.toolbarModifier > ul > li[data-type="subgroup"] {\r
   border-top: 1px solid #eee;\r
@@ -1425,7 +1417,7 @@ div.toolbarModifier > ul > li ul li {
   line-height: 1;\r
 }\r
 div.toolbarModifier > ul > li ul li[data-type="subgroup"] {\r
-  border-top: 1px solid #dddddd;\r
+  border-top: 1px solid #ddd;\r
 }\r
 div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {\r
   border-top: 0;\r
@@ -1491,7 +1483,7 @@ div.toolbarModifier-hints h3 {
   line-height: 2.03rem;\r
   padding: 0.36em 1.5em;\r
   background: #f5f5f5;\r
-  border-bottom: 1px solid #dddddd;\r
+  border-bottom: 1px solid #ddd;\r
   margin-top: 0;\r
   margin-bottom: 1.2em;\r
 }\r
@@ -1512,7 +1504,7 @@ div.toolbarModifier-hints dl dt {
   width: 9em;\r
   clear: both;\r
   text-align: right;\r
-  border-top: 1px solid #dddddd;\r
+  border-top: 1px solid #ddd;\r
   padding-left: 1.5em;\r
   padding-right: .1em;\r
   -webkit-box-sizing: border-box;\r
@@ -1637,4 +1629,4 @@ div.toolbarModifier-hints dl dd:after {
 #help-content {\r
   display: none;\r
 }\r
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBR2pDLFNJM0NDO0lBSUUsa0JBQUE7OztBQVZILFNBTUMsZUFPQztFQUNDLG1CQUFBOztBQ1ZIO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7O0FMcUNELFFBSGlDO0VBR2pDO0lLbENFLGtCQUFBOzs7QUFYRixhQWNDO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7O0FBakJGLGFBY0MsR0FLQztBQW5CRixhQWNDLEdBS0ssR0FBRztFQUNOLHFCQUFBOztBTHlCSCxRQUhpQztFQUdqQyxhSy9CQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFDQztJQUlDLGdCQUFBOzs7QUFJRixhQTlCRixHQXFCRSxhQVNDO0VBQ0EsaUJBQUE7O0FMQUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFTQztJQUlDLGtCQUFBOzs7QUFNRixhQXhDRixHQXVDQyxHQUNHO0VBQ0QsaUJBQUE7O0FBdkRKLGFBY0MsR0F1Q0MsR0FLQztFTHhDRixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VLdUNHLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7O0FBRUEsYUFyREgsR0F1Q0MsR0FLQyxFQVNFO0VBQ0EsZUFBQTtFQUNBLGNBQUE7O0FBUUoseUJBQUM7QUFBUyx5QkFBQztFQUNWLHNCQUFrQixxckJBQWxCOztBQ3BGRjtFQUNDLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTs7QU5nREQsUUFIaUM7RUFHakM7SU03Q0Usa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQUdqQyxhTXRDQztJQVdFLGNBQUE7SUFDQSxXQUFBO0lBQ0EscUJBQUE7OztBTnlCSCxRQUhpQztFQUdqQyxhTXRDQyxHQWdCQztJQUVFLGtCQUFBOzs7QUFHRCxhQXJCRixHQWdCQyxHQUtHO0VBQ0QsaUJBQUE7O0FOZ0JKLFFBSGlDO0VBR2pDLGFNdENDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQUdqQyxhTXRDQyxHQWdCQyxHQWFDO0lBT0UsV0FBQTtJSHFPSCx3QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyxxQkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixnQkFBQTtJQUF5Qiw0QkFBQTs7O0FJeFIzQjtFUHdCQyxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VPeEJBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBTkQsU1A0RUM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxTQU5ELEVBTUU7RUFDQSxjQUFBOztBT25GSCxTQVFDO0VBQ0MsU0FBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7O0FDWEY7RVJ3QkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUXpCQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBSkQsUUFTQztFQUNDLGdCQUFBOztBQVZGLFFBYUM7QUFiRCxRQWFLO0FBYkwsUUFhUztBQWJULFFBYWM7QUFiZCxRQWEwQixTQUFRLElBQUk7QUFidEMsUUFhd0Q7RUFDdEQsaUJBQUE7O0FBZEYsUUFpQkM7QUFqQkQsUUFpQk87RUxxUUwsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUtyUXpCLGdCQUFBOztBQW5CRixRQXNCQztBQXRCRCxRQXNCTTtBQXRCTixRQXNCWTtBQXRCWixRQXNCaUI7RUFDZixtQkFBQTs7QUF2QkYsUUEwQkM7QUExQkQsUUEwQmE7RUFDWCxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7O0FBN0JGLFFBb0NDLEVSd0NBO0FRNUVELFFBb0NJLEdSd0NIO0FRNUVELFFBb0NRLEdSd0NQO0FRNUVELFFBb0NZLFdSd0NYO0FRNUVELFFBb0N3QixHUndDdkI7QVE1RUQsUUFvQzRCLEdSd0MzQjtBUTVFRCxRQW9DZ0MsR1J3Qy9CO0FRNUVELFFBb0NvQyxHUndDbkM7QVE1RUQsUUFvQ3dDLEdSd0N2QztFQUNDLGNBQUE7RUFDQSxxQkFBQTtFQUVBLGlDQUFBOztBQUVBLFFROUNELEVSd0NBLEVBTUU7QUFBRCxRUTlDRSxHUndDSCxFQU1FO0FBQUQsUVE5Q00sR1J3Q1AsRUFNRTtBQUFELFFROUNVLFdSd0NYLEVBTUU7QUFBRCxRUTlDc0IsR1J3Q3ZCLEVBTUU7QUFBRCxRUTlDMEIsR1J3QzNCLEVBTUU7QUFBRCxRUTlDOEIsR1J3Qy9CLEVBTUU7QUFBRCxRUTlDa0MsR1J3Q25DLEVBTUU7QUFBRCxRUTlDc0MsR1J3Q3ZDLEVBTUU7RUFDQSxjQUFBOztBUW5GSCxRQXdDQztBQXhDRCxRQXdDSztBQXhDTCxRQXdDUztBQXhDVCxRQXdDYTtBQXhDYixRQXdDaUI7RUFDZixXQUFBO0VBQ0EsZ0JBQUE7O0FBMUNGLFFBd0NDLEdBS0M7QUE3Q0YsUUF3Q0ssR0FLSDtBQTdDRixRQXdDUyxHQUtQO0FBN0NGLFFBd0NhLEdBS1g7QUE3Q0YsUUF3Q2lCLEdBS2Y7QUE3Q0YsUUF3Q0MsR0FLTztBQTdDUixRQXdDSyxHQUtHO0FBN0NSLFFBd0NTLEdBS0Q7QUE3Q1IsUUF3Q2EsR0FLTDtBQTdDUixRQXdDaUIsR0FLVDtFQUNMLGtCQUFBOztBQTlDSCxRQXdDQyxHQVVDLEVBQUM7QUFsREgsUUF3Q0ssR0FVSCxFQUFDO0FBbERILFFBd0NTLEdBVVAsRUFBQztBQWxESCxRQXdDYSxHQVVYLEVBQUM7QUFsREgsUUF3Q2lCLEdBVWYsRUFBQztFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTs7QUFHRCxRQWpCRCxHQWlCRSxNQUNBLEVBQUM7QUFERixRQWpCRyxHQWlCRixNQUNBLEVBQUM7QUFERixRQWpCTyxHQWlCTixNQUNBLEVBQUM7QUFERixRQWpCVyxHQWlCVixNQUNBLEVBQUM7QUFERixRQWpCZSxHQWlCZCxNQUNBLEVBQUM7RUFDQSxVQUFBOztBQUlGLFFBdkJELEdBdUJFLE9BQ0E7QUFERCxRQXZCRyxHQXVCRixPQUNBO0FBREQsUUF2Qk8sR0F1Qk4sT0FDQTtBQURELFFBdkJXLEdBdUJWLE9BQ0E7QUFERCxRQXZCZSxHQXVCZCxPQUNBO0VMOERELDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxxREFBQTtFQUNBLGtEQUFBO0VLL0RFLFVBQUE7O0FBbEVKLFFBdUVDO0FBdkVELFFBdUVRO0FBdkVSLFFBdUVnQixTQUFRLElBQUk7RUwrTTFCLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VBbUJ6Qix1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7RUtsT0EsYUFBQTtFQUNBLGNBQUE7RUFFQSx5QkFBQTtFQUNBLGtCQUFBOztBQUVBLFFBVkQsTUFVRTtBQUFELFFBVk0sT0FVTDtBQUFELFFBVmMsU0FBUSxJQUFJLGdCQVV6QjtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTHdORCx3RUFBQTtFQUNBLHFFQUFBO0VBQ0EsZ0VBQUE7O0FLN1NGLFFBOEZDO0VBQ0MsOEJBQUE7RUFDQSxlQUFBOztBQWhHRixRQW1HQztFQUNDLGtCQUFBO0VBQ0EsNkJSbkcyQyx3QlFtRzNDO0VSN0VELGVBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTs7QVEzQkQsUUF5R0M7RUFDQyxrQkFBQTs7QUExR0YsUUE2R0M7RVJyRkEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW9GQyxtQkFBQTs7QUEvR0YsUUFrSEM7RVIxRkEsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVF5RkMsaUJBQUE7O0FBcEhGLFFBdUhDO0VSL0ZBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RVE4RkMsZ0JBQUE7RUFDQSxrQkFBQTs7QUExSEYsUUE2SEM7RVJyR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVFvR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUFoSUYsUUFtSUM7RVIzR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVEwR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUF0SUYsUUF5SUM7RUFDQyxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBOztBQUlBLFFBREQsTUFDRTtFQUNBLGFBQUE7RUFDQSxrQkFBQTs7QUFHRCxRQU5ELE1BTUU7RUxpREQsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBOztBS3hNRixRQTRKQztFUnBJQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRbUlDLG9CUjdKOEIsdUNRNko5QjtFQUNBLGdCQUFBO0VMNElBLDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxrREFBQTs7QUs3U0YsUUF1S0MsRUFDQztFQUNDLHNCQUFBOztBQXpLSCxRQXVLQyxFQUtDO0VBQ0MsY0FBQTs7QUE3S0gsUUFpTEM7RUFDQyxVQUFBO0VBQ0EsU0FBQTtFQUVBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7O0FBdkxGLFFBMExDO0FBMUxELFFBMExNO0VSbEtMLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRa0tDLGdKQUFBOztBQTdMRixRQTBMQyxJQUtDO0FBL0xGLFFBMExNLEtBS0o7RUFDQyxTQUFBOztBQWhNSCxRQXFNQyxJQUFJO0VBQ0gsZUFBQTtFQUNBLGNBQUE7O0FBdk1GLFFBME1DO0VBQ0MsV0FBQTs7QUEzTUYsUUE4TUMsR0FFQztBQWhORixRQThNSyxHQUVIO0FBaE5GLFFBOE1DLEdBRUs7QUFoTk4sUUE4TUssR0FFQztFQUNILGdCQUFBOztBQWpOSCxRQThNQyxHQU1DO0FBcE5GLFFBOE1LLEdBTUg7RVI1TEQsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTs7QVEzQkQsUUEwTkMsU0FBUSxJQUFJO0VBQ1gsV0FBQTs7QUEzTkYsUUE4TkMsSUFBRztFQUNGLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBOzs7QUFHQSxRQU5ELElBQUcsS0FNRDtFQUNBLFNBQVMsTUFBVDtFQUNBLGlCQUFBOztBQ2pPRCxJQURELEVBQ0U7QUFBRCxJQURFLE9BQ0Q7QUFBRCxJQURVLE1BQ1Q7RU5pUkQsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUhoUTFCLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVNuQkUsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBSUEsYUFBQTtFQUdBLHVCQUFBOztBQUVBLElBdkJGLEVBQ0UsU0FzQkM7QUFBRCxJQXZCQyxPQUNELFNBc0JDO0FBQUQsSUF2QlMsTUFDVCxTQXNCQztFQUNBLGtCQUFBOztBQUdELElBM0JGLEVBQ0UsU0EwQkM7QUFBRCxJQTNCQyxPQUNELFNBMEJDO0FBQUQsSUEzQlMsTUFDVCxTQTBCQztFQUNBLG1CQUFBOztBQW9CRCxJQWhERixFQUNFLFNBK0NDO0FBQUQsSUFoREMsT0FDRCxTQStDQztBQUFELElBaERTLE1BQ1QsU0ErQ0M7RU5rT0YsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RU1uUHZCLFdBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7O0FBRUEsSUF4Q0gsRUFDRSxTQStDQyxpQkFSQztBQUFELElBeENBLE9BQ0QsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDUSxNQUNULFNBK0NDLGlCQVJDO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBOztBVEdMLFFBSGlDO0VBR2pDLElTL0NDLEVBQ0UsU0FtREM7RVRMSixJUy9DSSxPQUNELFNBbURDO0VUTEosSVMvQ1ksTUFDVCxTQW1EQztJTjhORiw0QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyx5QkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixvQkFBQTtJQUF5Qiw0QkFBQTtJTW5QdkIsV0FBQTtJQUNBLFVBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSxrQkFBQTs7RUFFQSxJQXhDSCxFQUNFLFNBbURDLDBCQVpDO0VBQUQsSUF4Q0EsT0FDRCxTQW1EQywwQkFaQztFQUFELElBeENRLE1BQ1QsU0FtREMsMEJBWkM7SUFDQSxrQkFBQTtJQUNBLFNBQUE7SUFDQSxRQUFBO0lBQ0EscUJBQUE7O0VBSkQsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOzs7QUFjRixJQTFERixFQUNFLFNBeURDO0FBQUQsSUExREMsT0FDRCxTQXlEQztBQUFELElBMURTLE1BQ1QsU0F5REM7QUFDRCxJQTNERixFQUNFLFNBMERDO0FBQUQsSUEzREMsT0FDRCxTQTBEQztBQUFELElBM0RTLE1BQ1QsU0EwREM7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FBR0QsSUFoRUYsRUFDRSxTQStEQztBQUFELElBaEVDLE9BQ0QsU0ErREM7QUFBRCxJQWhFUyxNQUNULFNBK0RDO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VOcU9GLHlFQUFBO0VBQ0Esc0VBQUE7RUFDQSxpRUFBQTs7QU01TkEsSUE3RUQsRUE2RUU7QUFBRCxJQTdFRSxPQTZFRDtBQUFELElBN0VVLE1BNkVUO0VBQ0EsbUJBQUE7O0FBRUEsSUFoRkYsRUE2RUUsY0FHQztBQUFELElBaEZDLE9BNkVELGNBR0M7QUFBRCxJQWhGUyxNQTZFVCxjQUdDO0FBQ0QsSUFqRkYsRUE2RUUsY0FJQztBQUFELElBakZDLE9BNkVELGNBSUM7QUFBRCxJQWpGUyxNQTZFVCxjQUlDO0VBQ0EsY0FBQTtFQUNBLG1CQUFBOztBQUlGLElBdkZELEVBdUZFO0FBQUQsSUF2RkUsT0F1RkQ7QUFBRCxJQXZGVSxNQXVGVDtBQUFELElBdkZELEVIaURHLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtBR3NDSCxJQXZGRSxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RlUsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0VHdUNGLFdBQUE7RUFDQSxtQkFBQTs7QUFFQSxJQTNGRixFQXVGRSxvQkFJQztBQUFELElBM0ZDLE9BdUZELG9CQUlDO0FBQUQsSUEzRlMsTUF1RlQsb0JBSUM7QUFDRCxJQTVGRixFQXVGRSxvQkFLQztBQUFELElBNUZDLE9BdUZELG9CQUtDO0FBQUQsSUE1RlMsTUF1RlQsb0JBS0M7QUFERCxJQTNGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFDRCxJQTVGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FDaEdKO0VWc0JDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUcyUEMsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RU9uUjFCLGdDQUFBO0VBRUEsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTs7QUFFQSxVQUFDO0VBQ0EsY0FBQTs7QUFHRCxVQUFDO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSx5REFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxXQUFBOztBQ3ZERixjQUFjO0FBQ2QsZUFBZTtFQUNkLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLDRCQUFBOztBQUdELGNBQWM7RUFDYixrQkFBQTs7QUFHRCxlQUFlO0VBQ2QsaUJBQUE7O0FBSUEsY0FBQztBQUFTLGNBQUM7RUFDVixzQkFBa0IsNmNBQWxCOztBQUtELG1CQUFDO0FBQVMsbUJBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUFLRCxXQUFDO0FBQVMsV0FBQztFQUNWLHNCQUFrQiw2aUJBQWxCOztBQzVCRixJQUFLLFFBRUo7RUFDQyxzQkFBQTs7QUFIRixJQUFLLFFBTUosTUFBSztFQUNKLGdCQUFBO0VBQ0EscUJBQUE7O0FBUkYsSUFBSyxRQVdKO0VBQ0MseUJBQUE7RUFDQSwwQkFBQTs7QUFFQSxJQWZHLFFBV0osTUFJRTtFQUNBLFdBQUE7O0FBR0QsSUFuQkcsUUFXSixNQVFFO0VBQ0EsWUFBQTs7QUFwQkgsSUFBSyxRQXdCSjtFQUNDLGFBQUE7O0FBSUY7RVpaQyxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VZV0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RVQyT0MsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RVMzTzFCLGtCQUFBOztBQVRELE9BV0MsTUFBSztFQUNKLGFBQUE7O0FBWkYsT0FlQztFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7O0FBRUEsT0FQRCxNQU9FO0VBQ0EsMEJBQUE7O0FBdkJILE9BMkJDO0VBQ0MsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RVRpTkEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7O0FTcFAzQixPQTJCQyxjQVNDO0VBQ0MsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VUd01ELDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3ZNeEIsT0FsQkYsY0FTQyxTQVNFO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsT0FBQTtFQUVBLHlCQUFBO0VUc0tGLHdDQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTtFQUtBLHlDQUFBO0VBQThDLG9DQUFBO0VBQzlDLHFDQUFBO0VBQTBDLDZCQUFBO0VBQzFDLGlDQUFBO0VBQXNDLDRCQUFBOztBU3ZLdkMsT0FBQyxNQUNBLGNBQWMsU0FBUTtFQUNyQixtQkFBQTs7QUFoRUgsT0FvRUMsTUFBSyxjQUFnQixRQUVwQixnQkFBZ0I7RUFDZixpQkFBQTs7QUF2RUgsT0FvRUMsTUFBSyxjQUFnQixRQVNwQixRQUFPO0VBQ04sc0JBQUE7RUFDQSxzQkFBQTs7QUEvRUgsT0FtRkMsTUFBSyxjQUFnQixRQUFTLFFBQU87RUFDcEMscUJBQUE7RUFDQSxxQkFBQTs7QUN6SEY7RVZrM0JFLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBOztBVXIzQkYsUUFHQztFQUNDLGVBQUE7O0FBSkYsUUFNQztFQUNDLGdCQUFBOztBQVBGLFFBVUM7RUFDQyxhQUFBOztBQUdELFFBQUMsVUFDQTtFQUNDLGFBQUE7O0FBRkYsUUFBQyxVQUtBO0VBQ0MsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTs7QUFFQSxrQkFBQztFQUNBLFNBQUE7O0FBTUQsc0JBQUM7QUFBRCx1QkFBQztBQUFTLHNCQUFDO0FBQUQsdUJBQUM7RUFDVixzQkFBa0IseXNCQUFsQjs7QUFJQSxzQkFEQSxXQUNDO0FBQUQsdUJBREEsV0FDQztBQUFTLHNCQURWLFdBQ1c7QUFBRCx1QkFEVixXQUNXO0VBQ1Ysc0JBQWtCLHF0QkFBbEI7O0FBTUYsc0JBQUM7QUFDRCxzQkFBQztFQUNBLDZCQUFBOztBQUtELHVCQUFDO0FBQ0QsdUJBQUM7RUFDQSxnQ0FBQTs7QUN0REY7RUFDQyxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0VYNFNDLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFV3pTRCxxQkFBQTtFQUNBLG1CQUFBO0VYZ3ZCQyx3Q0FBQTtFQUNBLHFDQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLGdDQUFBOztBV2p2QkQsTUFBQztFWHVRQSw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTtFV3ZRekIsZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7O0FDekJGLElBQUs7QUFDTCxNQUFPO0FBQ1AsYUFBYztBQUNkLE1BQU87RUFDTixnQkFBQTs7QUFJRDtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsNkJBQUE7O0FDWEEsU0FBQztFQUNBLHlCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQUFDLElBSUEsU0FDQztBQUxGLFNBQUMsSUFJQSxTQUNLO0FBTE4sU0FBQyxJQUlBLFNBQ1M7QUFMVixTQUFDLElBSUEsU0FDYTtBQUxkLFNBQUMsSUFJQSxTQUNpQjtFQUNmLFdBQUE7O0FBTkgsU0FBQyxJQUlBLFNBS0M7RWhCWUYsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFZ0JiRyxnQkFBQTs7QUFYSCxTQUFDLElBSUEsU0FLQyxFQUlDO0VBQ0MscUJBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7O0FBRUEsU0FsQkgsSUFJQSxTQUtDLEVBSUMsRUFLRTtFQUNBLGNBQUE7O0FBbkJMLFNBQUMsSUFJQSxTQW9CQztFQUNDLFdBQUE7O0FBekJILFNBQUMsSUFJQSxTQXdCQztFQUNDLFdBQUE7O0FBN0JILFNBQUMsSUFJQSxTQTRCQztFQUNDLGtCQUFBO0VBQ0EsY0FBQTs7QUFLSCxTQUFDO0VBQ0Esa0JBQUE7O0FBRUEsU0FIQSxPQUdDO0VBQ0EsV0FBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxXQUFBOztBQ3hESCxJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04saUJBQUE7O0FBR0QsSUFBSyxnQkFBZTtFQUNuQixlQUFBOztBQUdEO0VBQ0MsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7O0FBSEQsT0FNQztFQUVDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNEJBQUE7O0FBRUEsT0FYRCxXQVdFO0VBQ0EseURBQUE7O0FBS0gsUUFBUztFQUNSLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLHdCQUFBOztBQUVBLFFBTFEsbUJBS1A7RUFDQSxZQUFBOztBQUtGLEtBQU07RUFDTCxnQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTs7QUFJRCxHQUFHLElBQUssRUFBQztBQUNULEdBQUcsSUFBSztFQUNQLG1CQUFBOztBQUVBLEdBSkUsSUFBSyxFQUFDLFdBSVA7QUFBRCxHQUhFLElBQUssa0JBR047RUFDQSxnQ0FBQTs7QUFJRixLQUFNLGNBQWE7RUFDbEIsYUFBQTs7QUFJQSxRQURRLGNBQ1A7RUFDQSxhQUFBOztBQUZGLFFBQVMsY0FLUjtFQUNDLGFBQUE7O0FBSUYsUUFDQztFQUNDLGlCQUFBOztBQUlGO0VBQ0MsaUJBQUE7O0FBREQsU0FHQztFQUNDLFdBQUE7RUFDQSxpQkFBQTs7QUFMRixTQUdDLE1BSUM7RUFDQyxnQkFBQTs7QUFFQSxTQVBGLE1BSUMsU0FHRTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQVBGLE1BSUMsU0FHRSxNQUlBO0VBQ0MsMEJBQUE7O0FBZkwsU0FHQyxNQWlCQztFQUNDLFdBQUE7RUFDQSxhQUFBOztBQUdELFNBdEJELE1Bc0JFO0VBQ0EsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7O0FBRUEsdUJBQUM7RUFDQSxZQUFBO0VBQ0EsVUFBQTs7QUFLRjtFQUNDLGlCQUFBOztBQURELE1BR0MsSUFBRztFQUNGLGlCQUFBOztBQUpGLE1BT0M7RUFDQyxpQkFBQTs7QUFSRixNQU9DLGNBR0M7RUFDQyxpQkFBQTs7QUFYSCxNQU9DLGNBT0M7RUFFQyxrQkFBQTs7QUFoQkgsTUFvQkM7RUFDQyxrQkFBQTtFQUNBLFNBQUE7RUFFQSxTQUFBO0VBQ0Esa0JBQUE7O0FqQmhHRixRQUhpQztFQUdqQyxNaUIyRkM7SUFVRSxVQUFBO0lBQ0EsaUJBQUE7SUFFQSxVQUFBO0lBQ0EsbUJBQUE7O0VBRUEsTUFoQkYsV0FnQkc7SUFDQSxVQUFBO0lBQ0EsV0FBQTs7O0FqQjdHSixRQUhpQztFQUdqQyxNaUIyRkM7SUF3QkUsYUFBQTs7O0FDeEpILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSxnQ0FBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSw2QkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdDQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */\r
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */\r
index f8ca889fc68b2b86a2507caf5c9418e02917011a..663fc179847490a1c8f8bca5718e335022a92e85 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -18,7 +18,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
        <div class="grid-container">\r
                <ul class="navigation-a-left grid-width-70">\r
                        <li><a href="http://ckeditor.com">Project Homepage</a></li>\r
-                       <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>\r
+                       <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>\r
                        <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>\r
                </ul>\r
                <ul class="navigation-a-right grid-width-30">\r
@@ -116,7 +116,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p class="grid-width-100" id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.\r
                </p>\r
        </div>\r
 </footer>\r
index 80f1c2b89d944fadcfdcaf4e05179c1efa2709af..f0cd93913d5eed5000b67164e966d91ce2fc8d69 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 72edbdebba63f19747fd90010fd09c4f5731cf61..69dd77d21a960316e4b30e16785a4fc41aa2dc72 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 var SF=function(){function d(a){return(a=a.attributes?a.attributes.getNamedItem("class"):null)?a.value.split(" "):[]}function c(a){var e=document.createAttribute("class");e.value=a.join(" ");return e}var b={attachListener:function(a,e,b){if(a.addEventListener)a.addEventListener(e,b,!1);else if(a.attachEvent)a.attachEvent("on"+e,function(){b.apply(a,arguments)});else throw Error("Could not attach event.");}};b.indexOf=function(){var a=Array.prototype.indexOf;return"function"===a?function(e,b){return a.call(e,
index 57accf5c2833bbe033a29da598202ee55514ae84..3ca07c216cbc29c600d883e2d7d640b7a02cd718 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -77,7 +77,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index e3cdc3eca235c0c1eb27c0f317bcfa454399e885..88a4b065d4bfa3497c706e7f86f1879238f4bb72 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -202,7 +202,7 @@ Second line of text preceded by two line breaks.</textarea>
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 26e0b6b22f087e7f1a40b1be2781ae498763a6fa..dbabf750aba5a092c64581d5ba369112bcd034d8 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -51,7 +51,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 09ca0485a80025467f688a5903391f98687f676f..fbcc767f415dcffcf63498b3ec29f8dd95834976 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  *\r
  * Styles used by the XHTML 1.1 sample page (xhtml.html).\r
index 568dbfb89de41c44e34c9869fa9ae6fd3db43573..bb4dd9435d70cea3608c27b5076f57b1ec2318da 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE html>\r
 <?php\r
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 ?>\r
@@ -52,7 +52,7 @@ if (!empty($_POST))
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
                </p>\r
        </div>\r
 </body>\r
index 3bd12482824c48f6f22736c7f31d3020ac1ff875..3208ff4c5e5115d8ff08520f26c6ced6c445b385 100644 (file)
@@ -1,7 +1,7 @@
 /*
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.md or http://ckeditor.com/license
 */
-var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",
-hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",
-ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name<b.name?-1:1});return b}();
\ No newline at end of file
+var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",az:"Azerbaijani",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish","es-mx":"Spanish (Mexico)",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",
+gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",oc:"Occitan",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",
+sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name<b.name?-1:1});return b}();
\ No newline at end of file
index f5f31f82d285ef688bfb8ca04dc1bb93fd077985..637c17be72d5d2920305cb325c3c5fd8adf0a224 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -399,7 +399,7 @@ CKEDITOR.replace( 'editor4', {
                <div class="description">\r
                        <p>\r
                                This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.\r
-                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">\r
+                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">\r
                                Disallowed Content</a> property of the filter to eliminate all <code>title</code> attributes.\r
                        </p>\r
 \r
@@ -454,7 +454,7 @@ CKEDITOR.replace( 'editor6', {
                <div class="description">\r
                        <p>\r
                                This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.\r
-                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">\r
+                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">\r
                                Disallowed Content</a> property of the filter to eliminate all <code>a</code> and <code>img</code> tags,\r
                                while allowing all other tags.\r
                        </p>\r
@@ -500,7 +500,7 @@ CKEDITOR.replace( 'editor7', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index f85af788beddaa8d15ab761a71ca5c18cfd01583..fcd1a4313c1af7ff057ea895f4a0f41179659beb 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 7fda2bb83326b759f1869b4f1fc7bbb64ce7fb2c..0f22a1ac428189457b89f473ec61cb255c2f60fa 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -182,7 +182,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 3fdb9b2312b13099476e5efffe958355516ce334..c6724f09c2a8647fb4f47ac3c1a1a9adef56052b 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -136,7 +136,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 6b78e06c533fbc0f9c225fefe672c5bc982207c9..79afee3e27d96725fa8a1e5eb73a3b0193e9414b 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -98,7 +98,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index a4318f3e9b89b59e89012cb9b77b9aba7b2021d4..f72616d6256d1b5ff6b8be6061aaf0f7965f046f 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -275,7 +275,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index f7123a168e6217927c5af69cde1a1d672b8ffdb0..a4330252374fcb58d3dd35d672cacd48c83920f2 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -216,7 +216,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 8e20ea902247526a332bd021d5b0989c465a1573..f4f795bb6bebde9b6c8b24768768245357c2536a 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -124,7 +124,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.\r
                </p>\r
        </div>\r
 </body>\r
index 8f99705dec394aad145ead87217b9a49e621a00a..e0241e87a6593f481770092dfecf5959a019271f 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -306,7 +306,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        http://ckeditor.com</a>\r
        </p>\r
        <p id="copy">\r
-               Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+               Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
                - Frederico Knabben. All rights reserved.\r
        </p>\r
 </div>\r
index edbec8a753159a8901e94586d137dd9f451318e1..339be0cd21aa25ff8b5b2b88d30db80912e7e396 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -116,7 +116,7 @@ var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
                                http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
                        - Frederico Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index ff55bf45a4362428c8466760b39d0e0ef6910a39..504d181b337f65e4a4a23902bf26f831c23223e4 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -105,7 +105,7 @@ var editor = CKEDITOR.inline( 'article-body' );
                                http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>\r
                        - Frederico Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 6df9a6430cfe45b8065a16171ccd07af17a5daa7..95e43eaa7827bdc56eb779be619b5932c0f51057 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -95,7 +95,7 @@ $( document ).ready( function() {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index af8d17a2d380d64567be2ddeabf754efeed835ef..8fff40e7bff2a4377df8ac82dcbba3bc5f845b5a 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -201,7 +201,7 @@ CKEDITOR.replace( 'editor2', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 14c32b5b2c362a7cccc36a8a0d807ca1b7230750..edd1118939304f110ee578626c22e378ac17c150 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -68,7 +68,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 839b31e681dae879185d35c8a4cdb43f7369d504..2edbf49349f783e5187806058183a831014bc943 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -52,7 +52,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index bfd8c050819a7f085dde47d8fd4a3b05d1dfb14e..36ace8b180951911cff62e45502eb6d949f8b420 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -51,7 +51,7 @@ CKEDITOR.replace( '<em>textarea_id</em>' )
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index dee88556ce68c7ee72322a7e4bf63a47ee448657..af866fe24d3a784a5542e94a8c1bf6608ca3e308 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index ebc077f84f3cfca1657606d6bb579b94f3c78fae..59b64eee2fc50b87215d2befeea84c94a08a0c57 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 1146c91e09e204cc658a4f69f449d4c610e94bc4..866867e70a11b29188a10f84745091e019da6973 100644 (file)
@@ -9,7 +9,7 @@
   To save the content created with CKEditor you need to read the POST data on the server\r
   side and write it to a file or the database.\r
 \r
-  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+  Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
   For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -------------------------------------------------------------------------------------------\r
 \r
index bd4799a99876dd80f275cfafafd9417a631a28c9..82ed647bd2e2bb136628902392861642801eee3d 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -70,7 +70,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 2d3d25fed1343944311f88899c16f88f94631c69..e40d2a19441cf228b9e93759b3da50220d95e723 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -227,7 +227,7 @@ CKEDITOR.replace( <em>'textarea_id'</em>, {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index f50320414ddaf058c81b6a31ee09fb61a970ccd6..bff1b9638047c4106273b1b0df3319751471cd9b 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -64,7 +64,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index ef6dbb3611ed8ae4cc9d22ca57626af7b6236b1d..9c1d0b8428675cadd8cf766043184868e6dd3ab2 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -114,7 +114,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 341a4e7e2c37698f4be6efd497a8e06b6950067e..bb3193af1fadb3ce3921ad07dec2d658a1910121 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -72,7 +72,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 2d67fb08dd1c24c1c9fc5abf2e963a752cdd5008..daf5879589210c6c8afb646a33c6f995850a67c1 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -226,7 +226,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 4c9057badf0313d55828864f5766e6876e1348fc..5c06a0fbea4d5835627c5b94e2e1b980de44f017 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <!--[if IE 8]><html class="ie8"><![endif]-->\r
@@ -26,7 +26,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
        <div class="grid-container">\r
                <ul class="navigation-a-left grid-width-70">\r
                        <li><a href="http://ckeditor.com">Project Homepage</a></li>\r
-                       <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>\r
+                       <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>\r
                        <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>\r
                </ul>\r
                <ul class="navigation-a-right grid-width-30">\r
@@ -136,7 +136,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
        </p>\r
        <p class="grid-width-100" id="copy">\r
-               Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.\r
+               Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.\r
        </p>\r
 </footer>\r
 \r
index a787e39927102d4e422e126769d2e75b1007cbce..e17ab78d935901f1156efbdec2d7f38018696e90 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
\ No newline at end of file
index e41c10b4373481a7bde246fb9ecf6164ee1425c2..41a820093f2df1e086ef08e9b36c44d1f3454f57 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
\ No newline at end of file
index 61f8e11211339dc29720ea53f0db6a88d74e2eff..fdfe1d5a706342af151f97462c2068de8d2100d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
\ No newline at end of file
index cae1188e0a4d9d394f43c80208d7183f5bf92730..9cf4b57d10988bb9f79955c4e70313ba2a861f43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
\ No newline at end of file
index 133fdc08b5f7f32c78dbc5497c8bd1ccf402c08c..661e8ebe071f11bee3cb3bfba0dfde0d4637222e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus,{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border-top:2px solid rgba(102,102,102,0.2);border-right:2px solid rgba(102,102,102,0.2);border-bottom:2px solid rgba(102,102,102,0.2);border-left:2px solid rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:linear-gradient(to bottom,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fafafa',endColorstr='#ededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover,a.cke_dialog_tab:focus{background:#ebebeb;background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{background:#ededed;background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:4px;z-index:5;opacity:.8;filter:alpha(opacity = 80)}.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}.cke_hidpi .cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}span.cke_dialog_ui_button{padding:0 10px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:18px;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:linear-gradient(to bottom,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#9ad717',endColorstr='#69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button_ok.cke_disabled{border-color:#7d9f51;background:#8dad62;background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3d271),to(#8dad62));background-image:-webkit-linear-gradient(top,#b3d271,#8dad62);background-image:-o-linear-gradient(top,#b3d271,#8dad62);background-image:linear-gradient(to bottom,#b3d271,#8dad62);background-image:-moz-linear-gradient(top,#b3d271,#8dad62);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#B3D271',endColorstr='#8DAD62')}a.cke_dialog_ui_button_ok.cke_disabled span{color:#e0e8d1}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:3px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok.cke_disabled:focus,a.cke_dialog_ui_button_ok.cke_disabled:active{border-color:#6f8c49}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:25px;line-height:25px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:3px 3px 3px 6px;outline:0;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""}
\ No newline at end of file
index 52cccd7d3a9e863ccadac0e700879b1c15650feb..6583b5b7ec10c3059ffd654c399f7989f67cc43d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index 24fac1de9892a65d999a57581fe3871c9cdc08ba..d7f9e07e03e40bfe23ac090d400c3f4fb186959a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index 04ab0d80c62190099bafa93042d0fbb19bdfcb33..0c93719d99b8b6740e39c05d48b42a4c53d1cb09 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index bcb9e3d759505cf677bd5175bc548a13aa138fe2..1a305f7f3176096fa65506857fc209c072bb11ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index 5e36aeb92d1e31f5628e9bf2735b2e510462fac5..4bc5ea57c28e071203ad448f7e4130db8f057c36 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index 4379131f8ac3c5d6d3d71cc1e8214bf7a7984ad1..589c1491597758711a7d9c878c60ba689d3974a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
-.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__bold_icon {background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png) no-repeat 0 -672px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png) no-repeat 0 -672px !important;background-size: 16px !important;}
\ No newline at end of file
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ebebeb',endColorstr='#cfd1cf')}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;border-radius:2px 2px 0 0;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:linear-gradient(to bottom,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f5f5f5',endColorstr='#cfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_ltr .cke_button:last-child,.cke_rtl .cke_button:first-child{border-radius:0 2px 2px 0}.cke_ltr .cke_button:first-child,.cke_rtl .cke_button:last-child{border-radius:2px 0 0 2px}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}a.cke_button_on{box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_on{border:1px solid #dedede;background-color:#f2f2f2;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;border-radius:3px;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:linear-gradient(to bottom,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffff',endColorstr='#e4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:linear-gradient(to bottom,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#f2f2f2',endColorstr='#cccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:linear-gradient(to bottom,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#aaaaaa',endColorstr='#cacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;border-radius:3px;text-align:center;opacity:.95;filter:alpha(opacity = 95);box-shadow:2px 2px 3px 0 rgba(50,50,50,0.3);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__bold_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -0px !important;}.cke_button__italic_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -24px !important;}.cke_button__strike_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -48px !important;}.cke_button__subscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -72px !important;}.cke_button__superscript_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -96px !important;}.cke_button__underline_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -120px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -144px !important;}.cke_button__iframe_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -168px !important;}.cke_button__image_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -192px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -216px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -240px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -264px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -288px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -312px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -336px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -360px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -384px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -408px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -432px !important;}.cke_button__link_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -456px !important;}.cke_button__unlink_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -480px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -504px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -528px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -552px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -576px !important;}.cke_button__maximize_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -600px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -624px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -648px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -672px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -696px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -720px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -744px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -768px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -792px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -816px !important;}.cke_button__oembed_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -840px !important;}.cke_button__html5video_icon {background: url(icons.png?t=dee99e2) no-repeat 0 -864px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_button__oembed_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__html5video_icon {background: url(icons_hidpi.png?t=dee99e2) no-repeat 0 -1728px !important;}
\ No newline at end of file
index 6b315f9238eed5322893f6396fe1b0dfde0abb92..f538d21e4289f490714050e6f5ba4972ca6adb0d 100644 (file)
Binary files a/release/skins/moono/icons.png and b/release/skins/moono/icons.png differ
index 4f3073de2f6a6d0a8f231c016e7b070c6bebc5cf..73478be5c8e0bcd2d46f7cc381642a46dbcb7144 100644 (file)
Binary files a/release/skins/moono/icons_hidpi.png and b/release/skins/moono/icons_hidpi.png differ
diff --git a/release/skins/moono/images/anchor.png b/release/skins/moono/images/anchor.png
new file mode 100644 (file)
index 0000000..1c802f5
Binary files /dev/null and b/release/skins/moono/images/anchor.png differ
index 6a04ab5275b321ce911c4e1416df7e0184d05f51..2d0297731b2551c8463233b7190f92f01682f0e8 100644 (file)
Binary files a/release/skins/moono/images/close.png and b/release/skins/moono/images/close.png differ
diff --git a/release/skins/moono/images/hidpi/anchor.png b/release/skins/moono/images/hidpi/anchor.png
new file mode 100644 (file)
index 0000000..17cca97
Binary files /dev/null and b/release/skins/moono/images/hidpi/anchor.png differ
index e406c2c35ba11a410291fe484d5bb406657b62eb..de4eedf6572063a79d9a3ed21479e20d0e83532b 100644 (file)
Binary files a/release/skins/moono/images/hidpi/close.png and b/release/skins/moono/images/hidpi/close.png differ
index edbd12f3bdc10a969f350a8c482f92c224d1c466..594f0d3394355b3eeafdd9969023066a9c871a55 100644 (file)
Binary files a/release/skins/moono/images/hidpi/lock-open.png and b/release/skins/moono/images/hidpi/lock-open.png differ
index 1b87bbb7a14ceac0e259d75bdbc03365f01e9acf..1e23a0b2d9d529ef2c443753551521d45261b37f 100644 (file)
Binary files a/release/skins/moono/images/hidpi/lock.png and b/release/skins/moono/images/hidpi/lock.png differ
index c6c2b86e6d1cd21bd352a54321ae13100b78e581..42d94a91ac7ebe5ac3422bb025f70ee54379b71a 100644 (file)
Binary files a/release/skins/moono/images/hidpi/refresh.png and b/release/skins/moono/images/hidpi/refresh.png differ
index 04769877aa6d074e476f9560638d06cb158aaf1b..7d24c5f81db13b35cadeaea2a54f79f7bf8e0e3b 100644 (file)
Binary files a/release/skins/moono/images/lock-open.png and b/release/skins/moono/images/lock-open.png differ
index c5a14400d5ddfe1c564c7c93799c24d03f0e9618..8baeaa4b885a20881936df3272c52a99de7692f5 100644 (file)
Binary files a/release/skins/moono/images/lock.png and b/release/skins/moono/images/lock.png differ
index 1ff63c3090ab7dc443a74be76c1d7b52fabb71d4..d8106b032f5a279922b5079629ef9de6232121d4 100644 (file)
Binary files a/release/skins/moono/images/refresh.png and b/release/skins/moono/images/refresh.png differ
index fc9a5449557cf9f66efa1d1efd2534bfb91d6683..4a4ed6b2b8bd8e21bb2b5b6675a6e88450ac32f1 100644 (file)
@@ -1,8 +1,8 @@
 "Moono" Skin\r
 ====================\r
 \r
-This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor\r
-[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
+This skin has been chosen for the **default skin** of CKEditor 4.x (replaced by "Moono-lisa" skin since CKEditor 4.6.0),\r
+elected from the CKEditor [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
 the CKEditor team. "Moono" is maintained by the core developers.\r
 \r
 For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)\r
@@ -44,6 +44,6 @@ Other parts:
 License\r
 -------\r
 \r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 \r
 For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license)\r
index 1f9ac0bf9d5e4b6ff56aee5f9a8ce1e4802ada9b..025715e998b9eb9fc333b3cd5b7cda47b7f6879e 100644 (file)
@@ -1,22 +1,24 @@
 /**\r
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 // This file contains style definitions that can be used by CKEditor plugins.\r
 //\r
-// The most common use for it is the "stylescombo" plugin, which shows a combo\r
-// in the editor toolbar, containing all styles. Other plugins instead, like\r
-// the div plugin, use a subset of the styles on their feature.\r
+// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down\r
+// list containing all styles in the editor toolbar. Other plugins, like\r
+// the "div" plugin, use a subset of the styles for their features.\r
 //\r
-// If you don't have plugins that depend on this file, you can simply ignore it.\r
-// Otherwise it is strongly recommended to customize this file to match your\r
+// If you do not have plugins that depend on this file in your editor build, you can simply\r
+// ignore it. Otherwise it is strongly recommended to customize this file to match your\r
 // website requirements and design properly.\r
+//\r
+// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules\r
 \r
 CKEDITOR.stylesSet.add( 'default', [\r
-       /* Block Styles */\r
+       /* Block styles */\r
 \r
-       // These styles are already available in the "Format" combo ("format" plugin),\r
+       // These styles are already available in the "Format" drop-down list ("format" plugin),\r
        // so they are not needed here by default. You may enable them to avoid\r
        // placing the "Format" combo in the toolbar, maintaining the same features.\r
        /*\r
@@ -43,11 +45,11 @@ CKEDITOR.stylesSet.add( 'default', [
                }\r
        },\r
 \r
-       /* Inline Styles */\r
+       /* Inline styles */\r
 \r
        // These are core styles available as toolbar buttons. You may opt enabling\r
-       // some of them in the Styles combo, removing them from the toolbar.\r
-       // (This requires the "stylescombo" plugin)\r
+       // some of them in the Styles drop-down list, removing them from the toolbar.\r
+       // (This requires the "stylescombo" plugin.)\r
        /*\r
        { name: 'Strong',                       element: 'strong', overrides: 'b' },\r
        { name: 'Emphasis',                     element: 'em'   , overrides: 'i' },\r
@@ -77,22 +79,22 @@ CKEDITOR.stylesSet.add( 'default', [
        { name: 'Language: RTL',        element: 'span', attributes: { 'dir': 'rtl' } },\r
        { name: 'Language: LTR',        element: 'span', attributes: { 'dir': 'ltr' } },\r
 \r
-       /* Object Styles */\r
+       /* Object styles */\r
 \r
        {\r
-               name: 'Styled image (left)',\r
+               name: 'Styled Image (left)',\r
                element: 'img',\r
                attributes: { 'class': 'left' }\r
        },\r
 \r
        {\r
-               name: 'Styled image (right)',\r
+               name: 'Styled Image (right)',\r
                element: 'img',\r
                attributes: { 'class': 'right' }\r
        },\r
 \r
        {\r
-               name: 'Compact table',\r
+               name: 'Compact Table',\r
                element: 'table',\r
                attributes: {\r
                        cellpadding: '5',\r
@@ -106,6 +108,30 @@ CKEDITOR.stylesSet.add( 'default', [
        },\r
 \r
        { name: 'Borderless Table',             element: 'table',       styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },\r
-       { name: 'Square Bulleted List', element: 'ul',          styles: { 'list-style-type': 'square' } }\r
+       { name: 'Square Bulleted List', element: 'ul',          styles: { 'list-style-type': 'square' } },\r
+\r
+       /* Widget styles */\r
+\r
+       { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },\r
+       { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },\r
+\r
+       { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },\r
+\r
+       { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },\r
+\r
+       { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },\r
+       { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },\r
+       { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },\r
+       { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },\r
+       { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },\r
+\r
+       // Adding space after the style name is an intended workaround. For now, there\r
+       // is no option to create two styles with the same name for different widget types. See http://dev.ckeditor.com/ticket/16664.\r
+       { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },\r
+       { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },\r
+       { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },\r
+       { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },\r
+       { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }\r
+\r
 ] );\r
 \r
index f751de99327df852f6d5b074910cc25c0d447f22..31a6299caf13c5620ede94083cceeed8e299180d 100644 (file)
@@ -1,6 +1,299 @@
-CKEditor 4 Changelog
+CKEditor 4 Changelog
 ====================
 
+## CKEditor 4.7.3
+
+New Features:
+
+* [#568](https://github.com/ckeditor/ckeditor-dev/issues/568): Added possibility to adjust nested editables' filters using the [`CKEDITOR.filter.disallowedContent`](https://docs.ckeditor.com/#!/api/CKEDITOR.filter-property-disallowedContent) property.
+
+Fixed Issues:
+
+* [#554](https://github.com/ckeditor/ckeditor-dev/issues/554): Fixed: [`change`](https://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event not fired when typing the first character after pasting into the editor. Thanks to [Daniel Miller](https://github.com/millerdev)!
+* [#566](https://github.com/ckeditor/ckeditor-dev/issues/566): Fixed: The CSS `border` shorthand property with zero width (`border: 0px solid #000;`) causes the table to have the border attribute set to 1.
+* [#779](https://github.com/ckeditor/ckeditor-dev/issues/779): Fixed: The [Remove Format](https://ckeditor.com/addon/removeformat) plugin removes elements with language definition inserted by the [Language](https://ckeditor.com/addon/language) plugin.
+* [#423](https://github.com/ckeditor/ckeditor-dev/issues/423): Fixed: The [Paste from Word](https://ckeditor.com/addon/pastefromword) plugin pastes paragraphs into the editor even if [`CKEDITOR.config.enterMode`](https://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) is set to `CKEDITOR.ENTER_BR`.
+* [#719](https://github.com/ckeditor/ckeditor-dev/issues/719): Fixed: Image inserted using the [Enhanced Image](https://ckeditor.com/addon/image2) plugin can be resized when the editor is in [read-only mode](https://docs.ckeditor.com/#!/guide/dev_readonly).
+* [#577](https://github.com/ckeditor/ckeditor-dev/issues/577): Fixed: The "Delete Columns" command provided by the [Table Tools](https://ckeditor.com/addon/tabletools) plugin throws an error when trying to delete columns.
+* [#867](https://github.com/ckeditor/ckeditor-dev/issues/867): Fixed: Typing into a selected table throws an error.
+* [#817](https://github.com/ckeditor/ckeditor-dev/issues/817): Fixed: The [Save](https://ckeditor.com/addon/save) plugin does not work in [Source Mode](https://ckeditor.com/addon/sourcearea).
+
+Other Changes:
+
+* Updated the [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin:
+       * [#40](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/40): Fixed: IE10 throws an error when spell checking is started.
+* [#800](https://github.com/ckeditor/ckeditor-dev/issues/800): Added the [`CKEDITOR.dom.selection.isCollapsed`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-isCollapsed) method which is a simpler way to check if the selection is collapsed.
+* [#830](https://github.com/ckeditor/ckeditor-dev/issues/830): Added an option to define which dialog tab should be shown by default when creating [`CKEDITOR.dialogCommand`](https://docs.ckeditor.com/#!/api/CKEDITOR.dialogCommand).
+
+## CKEditor 4.7.2
+
+New Features:
+
+* [#455](https://github.com/ckeditor/ckeditor-dev/issues/455): Added [Advanced Content Filter](https://docs.ckeditor.com/#!/guide/dev_acf) integration with the [Justify](http://ckeditor.com/addon/justify) plugin.
+
+Fixed Issues:
+
+* [#663](https://github.com/ckeditor/ckeditor-dev/issues/663): [Chrome] Fixed: Clicking the scrollbar throws an `Uncaught TypeError: element.is is not a function` error.
+* [#694](https://github.com/ckeditor/ckeditor-dev/pull/694): Refactoring in the [Table Selection](http://ckeditor.com/addon/tableselection) plugin:
+  * [#520](https://github.com/ckeditor/ckeditor-dev/issues/520): Fixed: Widgets cannot be properly pasted into a table cell.
+  * [#460](https://github.com/ckeditor/ckeditor-dev/issues/460): Fixed: Editor gone after pasting into an editor within a table.
+* [#579](https://github.com/ckeditor/ckeditor-dev/issues/579): Fixed: Internal `cke_table-faked-selection-table` class is visible in the Stylesheet Classes field of the [Table Properties](http://ckeditor.com/addon/table) dialog.
+* [#545](https://github.com/ckeditor/ckeditor-dev/issues/545): [Edge] Fixed: Error thrown when pressing the [Select All](https://ckeditor.com/addon/selectall) button in [Source Mode](http://ckeditor.com/addon/sourcearea).
+* [#582](https://github.com/ckeditor/ckeditor-dev/issues/582): Fixed: Double slash in the path to stylesheet needed by the [Table Selection](http://ckeditor.com/addon/tableselection) plugin. Thanks to [Marius Dumitru Florea](https://github.com/mflorea)!
+* [#491](https://github.com/ckeditor/ckeditor-dev/issues/491): Fixed: Unnecessary dependency on the [Editor Toolbar](http://ckeditor.com/addon/toolbar) plugin inside the [Notification](http://ckeditor.com/addon/notification) plugin.
+* [#646](https://github.com/ckeditor/ckeditor-dev/issues/646): Fixed: Error thrown into the browser console after opening the [Styles Combo](http://ckeditor.com/addon/stylescombo) plugin menu in the editor without any selection.
+* [#501](https://github.com/ckeditor/ckeditor-dev/issues/501): Fixed: Double click does not open the dialog for modifying anchors inserted via the [Link](http://ckeditor.com/addon/link) plugin.
+* [#9780](https://dev.ckeditor.com/ticket/9780): [IE8-9] Fixed: Clicking inside an empty [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) editor throws an error.
+* [#16820](https://dev.ckeditor.com/ticket/16820): [IE10] Fixed: Clicking below a single horizontal rule throws an error.
+* [#426](https://github.com/ckeditor/ckeditor-dev/issues/426): Fixed: The [`range.cloneContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-cloneContents) method selects the whole element when the selection starts at the beginning of that element.
+* [#644](https://github.com/ckeditor/ckeditor-dev/issues/644): Fixed: The [`range.extractContents`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-extractContents) method returns an incorrect result when multiple nodes are selected.
+* [#684](https://github.com/ckeditor/ckeditor-dev/issues/684): Fixed: The [`elementPath.contains`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.elementPath-method-contains) method incorrectly excludes the last element instead of root when the `fromTop` parameter is set to `true`.
+
+Other Changes:
+
+* Updated the [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) plugin:
+       * [#148](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/148): Fixed: SCAYT leaves underlined word after the CKEditor Replace dialog corrects it.
+* [#751](https://github.com/ckeditor/ckeditor-dev/issues/751): Added the [`CKEDITOR.dom.nodeList.toArray`](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList-method-toArray) method which returns an array representation of a [node list](https://docs.ckeditor.com/#!/api/CKEDITOR.dom.nodeList).
+
+## CKEditor 4.7.1
+
+New Features:
+
+* Added a new Mexican Spanish localization. Thanks to [David Alexandro Rodriguez](https://www.transifex.com/user/profile/darsco16/)!
+* [#413](https://github.com/ckeditor/ckeditor-dev/issues/413): Added Paste as Plain Text keyboard shortcut to the [Accessibility Help](http://ckeditor.com/addon/a11yhelp) instructions.
+
+Fixed Issues:
+
+* [#515](https://github.com/ckeditor/ckeditor-dev/issues/515): [Chrome] Fixed: Mouse actions on CKEditor scrollbar throw an exception when the [Table Selection](http://ckeditor.com/addon/tableselection) plugin is loaded.
+* [#493](https://github.com/ckeditor/ckeditor-dev/issues/493): Fixed: Selection started from a nested table causes an error in the browser while scrolling down.
+* [#415](https://github.com/ckeditor/ckeditor-dev/issues/415): [Firefox] Fixed: <kbd>Enter</kbd> key breaks the table structure when pressed in a table selection.
+* [#457](https://github.com/ckeditor/ckeditor-dev/issues/457): Fixed: Error thrown when deleting content from the editor with no selection.
+* [#478](https://github.com/ckeditor/ckeditor-dev/issues/478): [Chrome] Fixed:  Error thrown by the [Enter Key](http://ckeditor.com/addon/enterkey) plugin when pressing <kbd>Enter</kbd> with no selection.
+* [#424](https://github.com/ckeditor/ckeditor-dev/issues/424): Fixed: Error thrown by [Tab Key Handling](http://ckeditor.com/addon/tab) and [Indent List](http://ckeditor.com/addon/indentlist) plugins when pressing <kbd>Tab</kbd> with no selection in inline editor.
+* [#476](https://github.com/ckeditor/ckeditor-dev/issues/476): Fixed: Anchors inserted with the [Link](http://ckeditor.com/addon/link) plugin on collapsed selection cannot be edited.
+* [#417](https://github.com/ckeditor/ckeditor-dev/issues/417): Fixed: The [Table Resize](http://ckeditor.com/addon/tableresize) plugin throws an error when used with a table with only header or footer rows.
+* [#523](https://github.com/ckeditor/ckeditor-dev/issues/523): Fixed: The [`editor.getCommandKeystroke`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getCommandKeystroke) method does not obtain the correct keystroke.
+* [#534](https://github.com/ckeditor/ckeditor-dev/issues/534): [IE] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not work in Quirks Mode.
+* [#450](https://github.com/ckeditor/ckeditor-dev/issues/450): Fixed: [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter) incorrectly transforms the `margin` CSS property.
+
+## CKEditor 4.7
+
+**Important Notes:**
+
+* [#13793](http://dev.ckeditor.com/ticket/13793): The [`embed_provider`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-embed_provider) configuration option for the [Media Embed](http://ckeditor.com/addon/embed) and [Semantic Media Embed](http://ckeditor.com/addon/embedsemantic) plugins is no longer preset by default.
+* The [UI Color](http://ckeditor.com/addon/uicolor) plugin now uses a custom color picker instead of the `YUI 2.7.0` library which has some known vulnerabilities (it's a security precaution, there was no security issue in CKEditor due to the way it was used).
+
+New Features:
+
+* [#16755](http://dev.ckeditor.com/ticket/16755): Added the [Table Selection](http://ckeditor.com/addon/tableselection) plugin that lets you select and manipulate an arbitrary rectangular table fragment (a few cells, a row or a column).
+* [#16961](http://dev.ckeditor.com/ticket/16961): Added support for pasting from Microsoft Excel.
+* [#13381](http://dev.ckeditor.com/ticket/13381): Dynamic code evaluation call in [`CKEDITOR.template`](http://docs.ckeditor.com/#!/api/CKEDITOR.template) removed. CKEditor can now be used without the `unsafe-eval` Content Security Policy. Thanks to [Caridy Patiño](http://caridy.name)!
+* [#16971](http://dev.ckeditor.com/ticket/16971): Added support for color in the `background` property containing also other styles for table cells in the [Table Tools](http://ckeditor.com/addon/tabletools) plugin.
+* [#16847](http://dev.ckeditor.com/ticket/16847): Added support for parsing and inlining any formatting created using the Microsoft Word style system to the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16818](http://dev.ckeditor.com/ticket/16818): Added table cell height parsing in the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16850](http://dev.ckeditor.com/ticket/16850): Added a new [`config.enableContextMenu`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enableContextMenu) configuration option for enabling and disabling the [context menu](http://ckeditor.com/addon/contextmenu).
+* [#16937](http://dev.ckeditor.com/ticket/16937): The `command` parameter in [CKEDITOR.editor.getCommandKeystroke](http://docs.ckeditor.dev/#!/api/CKEDITOR.editor-method-getCommandKeystroke) now also accepts a command name as an argument.
+* [#17010](http://dev.ckeditor.com/ticket/17010): The [`CKEDITOR.dom.range.shrink`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-shrink) method now allows for skipping bogus `<br>` elements.
+
+Fixed Issues:
+
+* [#16935](http://dev.ckeditor.com/ticket/16935): [Chrome] Fixed: Blurring the editor in [Source Mode](http://ckeditor.com/addon/sourcearea) throws an error.
+* [#16825](http://dev.ckeditor.com/ticket/16825): [Chrome] Fixed: Error thrown when destroying a focused inline editor.
+* [#16857](http://dev.ckeditor.com/ticket/16857): Fixed: <kbd>Ctrl+Shift+V</kbd> blocked by [Copy Formatting](http://ckeditor.com/addon/copyformatting).
+* [#16845](https://dev.ckeditor.com/ticket/16845): [IE] Fixed: Cursor jumps to the top of the scrolled editor after focusing it when the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin is enabled.
+* [#16786](http://dev.ckeditor.com/ticket/16786): Fixed: Added missing translations for the [Copy Formatting](http://ckeditor.com/addon/copyformatting) plugin.
+* [#14714](http://dev.ckeditor.com/ticket/14714): [WebKit/Blink] Fixed: Exception thrown on refocusing a blurred inline editor.
+* [#16913](http://dev.ckeditor.com/ticket/16913): [Firefox, IE] Fixed: [Paste as Plain Text](http://ckeditor.com/addon/pastetext) keystroke does not work.
+* [#16968](http://dev.ckeditor.com/ticket/16968): Fixed: [Safari] [Paste as Plain Text](http://ckeditor.com/addon/pastetext) is not handled by the editor.
+* [#16912](http://dev.ckeditor.com/ticket/16912): Fixed: Exception thrown when a single image is pasted using [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#16821](http://dev.ckeditor.com/ticket/16821): Fixed: Extraneous `<span>` elements with `height` style stacked when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16866](http://dev.ckeditor.com/ticket/16866): [IE, Edge] Fixed: Whitespaces not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16860](http://dev.ckeditor.com/ticket/16860): Fixed: Paragraphs which only look like lists incorrectly transformed into them when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#16817](http://dev.ckeditor.com/ticket/16817): Fixed: When [pasting from Word](http://ckeditor.com/addon/pastefromword), paragraphs are transformed into lists with some corrupted data.
+* [#16833](http://dev.ckeditor.com/ticket/16833): [IE11] Fixed: Malformed list with headers [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#16826](http://dev.ckeditor.com/ticket/16826): [IE] Fixed: Superfluous paragraphs within lists [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#12465](http://dev.ckeditor.com/ticket/12465): Fixed: Cannot change the state of checkboxes or radio buttons if the properties dialog was invoked with a double-click.
+* [#13062](http://dev.ckeditor.com/ticket/13062): Fixed: Impossible to unlink when the caret is at the edge of the link.
+* [#13585](http://dev.ckeditor.com/ticket/13585): Fixed: Error when wrapping two adjacent `<div>` elements with a `<div>`.
+* [#16811](http://dev.ckeditor.com/ticket/16811): Fixed: Table alignment is not preserved by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#16810](http://dev.ckeditor.com/ticket/16810): Fixed: Vertical align in tables is not supported by the [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin.
+* [#11956](http://dev.ckeditor.com/ticket/11956): [Blink, IE] Fixed: [Link](http://ckeditor.com/addon/link) dialog does not open on a double click on the second word of the link with a background color or other styles.
+* [#10472](http://dev.ckeditor.com/ticket/10472): Fixed: Unable to use [Table Resize](http://ckeditor.com/addon/tableresize) on table header and footer.
+* [#14762](http://dev.ckeditor.com/ticket/14762): Fixed: Hovering over an empty table (without rows or cells) throws an error when the [Table Resize](http://ckeditor.com/addon/tableresize) plugin is active.
+* [#16777](https://dev.ckeditor.com/ticket/16777): [Edge] Fixed: The [Clipboard](http://ckeditor.com/addon/clipboard) plugin does not allow to drop widgets into the editor.
+* [#14894](https://dev.ckeditor.com/ticket/14894): [Chrome] Fixed: The editor scrolls to the top after focusing or when a dialog is opened.
+* [#14769](https://dev.ckeditor.com/ticket/14769): Fixed: URLs with '-' in host are not detected by the [Auto Link](http://ckeditor.com/addon/autolink) plugin.
+* [#16804](https://dev.ckeditor.com/ticket/16804): Fixed: Focus is not on the first menu item when the user opens a context menu or a drop-down list from the editor toolbar.
+* [#14407](https://dev.ckeditor.com/ticket/14407): [IE] Fixed: Non-editable widgets can be edited.
+* [#16927](https://dev.ckeditor.com/ticket/16927): Fixed: An error thrown if a bundle containing the [Color Button](http://ckeditor.com/addon/colorbutton) plugin is run in ES5 strict mode. Thanks to [Igor Rubinovich](https://github.com/IgorRubinovich)!
+* [#16920](http://dev.ckeditor.com/ticket/16920): Fixed: Several plugins not using the [Dialog](http://ckeditor.com/addon/dialog) plugin as a direct dependency.
+* [PR#336](https://github.com/ckeditor/ckeditor-dev/pull/336): Fixed: Typo in [`CKEDITOR.getCss`](http://docs.ckeditor.com/#!/api/CKEDITOR-method-getCss) API documentation. Thanks to [knusperpixel](https://github.com/knusperpixel)!
+* [#17027](http://dev.ckeditor.com/ticket/17027): Fixed: Command event data should be initialized as an empty object.
+* Fixed the behavior of HTML parser when parsing `src`/`srcdoc` attributes of the `<iframe>` element in a CKEditor setup with ACF turned off and without the [Iframe Dialog](http://ckeditor.com/addon/iframe) plugin. The issue was originally reported as a security issue by [Sriramk21](https://twitter.com/sriramk21) from Pegasystems and was later downgraded by the security team into a normal issue due to the requirement of having ACF turned off. Disabling [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) is against [security best practices](http://docs.ckeditor.com/#!/guide/dev_best_practices-section-security), so the problem described above has not been considered a security issue as such.
+
+Other Changes:
+
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:
+       * Fixed: DOM Exception after clicking "Remove Language" on a selected word with enabled [Language](http://ckeditor.com/addon/language) plugin in SCAYT.
+* [#16958](http://dev.ckeditor.com/ticket/16958): Switched the default MathJax CDN provider for the [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin from `cdn.mathjax.org` to [cdnjs](https://cdnjs.com/), due to closing of `cdn.mathjax.org` scheduled for April 30, 2017.
+* [#16954](http://dev.ckeditor.com/ticket/16954): Removed the paste dialog.
+* [#16982](http://dev.ckeditor.com/ticket/16982): Latest Safari now supports enhanced Clipboard API introduced in CKEditor 4.5.0.
+* [#17025](http://dev.ckeditor.com/ticket/17025): Updated [Bender.js](https://github.com/benderjs/benderjs) to 0.4.2.
+
+## CKEditor 4.6.2
+
+New Features:
+
+* [#16733](http://dev.ckeditor.com/ticket/16733): Added a new pastel color palette for the [Color Button](http://ckeditor.com/addon/colorbutton) plugin and a new [`config.colorButton_colorsPerRow`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-colorButton_colorsPerRow) configuration option for setting the number of rows in the color selector.
+* [#16752](http://dev.ckeditor.com/ticket/16752): Added a new Azerbaijani localization. Thanks to the [Azerbaijani language team](https://www.transifex.com/ckeditor/teams/11143/az/)!
+* [#13818](http://dev.ckeditor.com/ticket/13818): It is now possible to group [Widget](http://ckeditor.com/addon/widget) [style definitions](http://docs.ckeditor.com/#!/guide/dev_styles-section-widget-styles), so applying one style disables the other.
+
+Fixed Issues:
+
+* [#13446](http://dev.ckeditor.com/ticket/13446): [Chrome] Fixed: It is possible to type in an unfocused inline editor.
+* [#14856](http://dev.ckeditor.com/ticket/14856): Fixed: [Font size and font family](http://ckeditor.com/addon/font) reset each other when modified at certain positions.
+* [#16745](http://dev.ckeditor.com/ticket/16745): [Edge] Fixed: List items are lost when [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#16682](http://dev.ckeditor.com/ticket/16682): [Edge] Fixed: A list gets [pasted from Word](http://ckeditor.com/addon/pastefromword) as a set of paragraphs. Added the [`config.pasteFromWord_heuristicsEdgeList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWord_heuristicsEdgeList) configuration option.
+* [#10373](http://dev.ckeditor.com/ticket/10373): Fixed: Context menu items can be dragged into the editor.
+* [#16728](http://dev.ckeditor.com/ticket/16728): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Quirks Mode.
+* [#16795](http://dev.ckeditor.com/ticket/16795): [IE] Fixed: [Copy Formatting](http://ckeditor.com/addon/copyformatting) breaks the editor in Compatibility Mode.
+* [#16675](http://dev.ckeditor.com/ticket/16675): Fixed: Styles applied with [Copy Formatting](http://ckeditor.com/addon/copyformatting) to a single table cell are applied to the whole table.
+* [#16753](http://dev.ckeditor.com/ticket/16753): Fixed: [`element.setSize`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-setSize) sets incorrect editor dimensions if the border width is represented as a fraction of pixels.
+* [#16705](http://dev.ckeditor.com/ticket/16705): [Firefox] Fixed: Unable to paste images as Base64 strings when using [Clipboard](http://ckeditor.com/addon/clipboard).
+* [#14869](http://dev.ckeditor.com/ticket/14869): Fixed: JavaScript error is thrown when trying to use [Find](http://ckeditor.com/addon/find) in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+
+## CKEditor 4.6.1
+
+New Features:
+
+* [#16639](http://dev.ckeditor.com/ticket/16639): The `callback` parameter in the [CKEDITOR.ajax.post](http://docs.ckeditor.com/#!/api/CKEDITOR.ajax-method-post) method became optional.
+
+Fixed Issues:
+
+* [#11064](http://dev.ckeditor.com/ticket/11064): [Blink, WebKit] Fixed: Cannot select all editor content when a widget or a non-editable element is the first or last element of the content. Also fixes this issue in the [Select All](http://ckeditor.com/addon/selectall) plugin.
+* [#14755](http://dev.ckeditor.com/ticket/14755): [Blink, WebKit, IE8] Fixed: Browser hangs when a table is inserted in the place of a selected list with an empty last item.
+* [#16624](http://dev.ckeditor.com/ticket/16624): Fixed: Improved the [Color Button](http://ckeditor.com/addon/colorbutton) plugin which will now normalize the CSS `background` property if it only contains a color value. This fixes missing background colors when using [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#16600](http://dev.ckeditor.com/ticket/16600): [Blink, WebKit] Fixed: Error thrown occasionally by an uninitialized editable for multiple CKEditor instances on the same page.
+
+## CKEditor 4.6
+
+New Features:
+
+* [#14569](http://dev.ckeditor.com/ticket/14569): Added a new, flat, default CKEditor skin called [Moono-Lisa](http://ckeditor.com/addon/moono-lisa). Refreshed default colors available in the [Color Button](http://ckeditor.com/addon/colorbutton) plugin ([Text Color and Background Color](http://docs.ckeditor.com/#!/guide/dev_colorbutton) feature).
+* [#14707](http://dev.ckeditor.com/ticket/14707): Added a new [Copy Formatting](http://ckeditor.com/addon/copyformatting) feature to enable easy copying of styles between your document parts.
+* Introduced the completely rewritten [Paste from Word](http://ckeditor.com/addon/pastefromword) plugin:
+       * Backward incompatibility: The [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) option now defaults to `false`. This option will be deprecated in the future. Use [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_acf) to replicate the effect of setting it to `true`.
+       * Backward incompatibility: The [`config.pasteFromWordNumberedHeadingToList`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordNumberedHeadingToList) and [`config.pasteFromWordRemoveStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveStyles) options were dropped and no longer have any effect on pasted content.
+       * Major improvements in preservation of list numbering, styling and indentation (nested lists with multiple levels).
+       * Major improvements in document structure parsing that fix plenty of issues with distorted or missing content after paste.
+* Added new translation: Occitan. Thanks to [Cédric Valmary](https://totenoc.eu/)!
+* [#10015](http://dev.ckeditor.com/ticket/10015): Keyboard shortcuts (relevant to the operating system in use) will now be displayed in tooltips and context menus.
+* [#13794](http://dev.ckeditor.com/ticket/13794): The [Upload Image](http://ckeditor.com/addon/uploadimage) feature now uses `uploaded.width/height` if set.
+* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin that lets you upload a file by drag&amp;dropping it into the editor content.
+* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin that lets you create stylish floating UI elements for the editor.
+* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Selecting the "Force Download" checkbox in the [Link](http://ckeditor.com/addon/link) dialog will cause the linked file to be downloaded automatically. Thanks to [sbusse](https://github.com/sbusse)!
+* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced the [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property for file uploads to make it possible to send additional information about the uploaded file to the server.
+* [#14889](http://dev.ckeditor.com/ticket/14889): Added the [`config.image2_altRequired`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-image2_altRequired) option for the [Enhanced Image](http://ckeditor.com/addon/image2) plugin to allow making alternative text a mandatory field. Thanks to [Andrey Fedoseev](https://github.com/andreyfedoseev)!
+
+Fixed Issues:
+
+* [#9991](http://dev.ckeditor.com/ticket/9991): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) should only normalize input data.
+* [#7209](http://dev.ckeditor.com/ticket/7209): Fixed: Lists with 3 levels not [pasted from Word](http://ckeditor.com/addon/pastefromword) correctly.
+* [#14335](http://dev.ckeditor.com/ticket/14335): Fixed: Pasting a numbered list starting with a value different from "1" from Microsoft Word does not work correctly.
+* [#14542](http://dev.ckeditor.com/ticket/14542): Fixed: Copying a numbered list from Microsoft Word does not preserve list formatting.
+* [#14544](http://dev.ckeditor.com/ticket/14544): Fixed: Copying a nested list from Microsoft Word results in an empty list.
+* [#14660](http://dev.ckeditor.com/ticket/14660): Fixed: [Pasting text from  Word](http://ckeditor.com/addon/pastefromword) breaks the styling in some cases.
+* [#14867](http://dev.ckeditor.com/ticket/14867): [Firefox] Fixed: Text gets stripped when [pasting content from Word](http://ckeditor.com/addon/pastefromword).
+* [#2507](http://dev.ckeditor.com/ticket/2507): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) does not detect pasting a part of a paragraph.
+* [#3336](http://dev.ckeditor.com/ticket/3336): Fixed: Extra blank row added on top of the content [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#6115](http://dev.ckeditor.com/ticket/6115): Fixed: When Right-to-Left text direction is applied to a table [pasted from Word](http://ckeditor.com/addon/pastefromword), borders are missing on one side.
+* [#6342](http://dev.ckeditor.com/ticket/6342): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) filters out a basic text style when it is [configured to use attributes](http://docs.ckeditor.com/#!/guide/dev_basicstyles-section-custom-basic-text-style-definition).
+* [#6457](http://dev.ckeditor.com/ticket/6457): [IE] Fixed: [Pasting from Word](http://ckeditor.com/addon/pastefromword) is extremely slow.
+* [#6789](http://dev.ckeditor.com/ticket/6789): Fixed: The `mso-list: ignore` style is not handled properly when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7262](http://dev.ckeditor.com/ticket/7262): Fixed: Lists in preformatted body disappear when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7662](http://dev.ckeditor.com/ticket/7662): [Opera] Fixed: Extra empty number/bullet shown in the editor body when editing a multi-level list [pasted from Word](http://ckeditor.com/addon/pastefromword).
+* [#7807](http://dev.ckeditor.com/ticket/7807): Fixed: Last item in a list not converted to a `<li>` element after [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#7950](http://dev.ckeditor.com/ticket/7950): [IE] Fixed: Content [from Word pasted](http://ckeditor.com/addon/pastefromword) differently than in other browsers.
+* [#7982](http://dev.ckeditor.com/ticket/7982): Fixed: Multi-level lists get split into smaller ones when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#8231](http://dev.ckeditor.com/ticket/8231): [WebKit, Opera] Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts empty paragraphs.
+* [#8266](http://dev.ckeditor.com/ticket/8266): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) inserts a blank line at the top.
+* [#8341](http://dev.ckeditor.com/ticket/8341), [#7646](http://dev.ckeditor.com/ticket/7646): Fixed: Faulty removal of empty `<span>` elements in [Paste from Word](http://ckeditor.com/addon/pastefromword) content cleanup breaking content formatting.
+* [#8754](http://dev.ckeditor.com/ticket/8754): [Firefox] Fixed: Incorrect pasting of multiple nested lists in [Paste from Word](http://ckeditor.com/addon/pastefromword).
+* [#8983](http://dev.ckeditor.com/ticket/8983): Fixed: Alignment lost when [pasting from Word](http://ckeditor.com/addon/pastefromword) with [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) set to [`CKEDITOR.ENTER_BR`](http://docs.ckeditor.com/#!/api/CKEDITOR-property-ENTER_BR).
+* [#9331](http://dev.ckeditor.com/ticket/9331): [IE] Fixed: [Pasting text from Word](http://ckeditor.com/addon/pastefromword) creates a simple Caesar cipher.
+* [#9422](http://dev.ckeditor.com/ticket/9422): Fixed: [Paste from Word](http://ckeditor.com/addon/pastefromword) leaves an unwanted `color:windowtext` style.
+* [#10011](http://dev.ckeditor.com/ticket/10011): [IE9-10] Fixed: [`config.pasteFromWordRemoveFontStyles`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordRemoveFontStyles) is ignored under certain conditions.
+* [#10643](http://dev.ckeditor.com/ticket/10643): Fixed: Differences between using <kbd>Ctrl+V</kbd> and pasting from the [Paste from Word](http://ckeditor.com/addon/pastefromword) dialog.
+* [#10784](http://dev.ckeditor.com/ticket/10784): Fixed: Lines missing when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#11294](http://dev.ckeditor.com/ticket/11294): [IE10] Fixed: Font size is not preserved when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#11627](http://dev.ckeditor.com/ticket/11627): Fixed: Missing words when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#12784](http://dev.ckeditor.com/ticket/12784): Fixed: Bulleted list with custom bullets gets changed to a numbered list when [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#13174](http://dev.ckeditor.com/ticket/13174): Fixed: Data loss after [pasting from Word](http://ckeditor.com/addon/pastefromword).
+* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to the wrapper rather than the widget element.
+* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper to identify the widget type.
+* [#13519](http://dev.ckeditor.com/ticket/13519): Server response received when uploading files should be more flexible.
+
+Other Changes:
+
+* Updated [SCAYT](http://ckeditor.com/addon/scayt) (Spell Check As You Type) and [WebSpellChecker](http://ckeditor.com/addon/wsc) plugins:
+       * Support for the new default Moono-Lisa skin.
+       * [#121](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/121): Fixed: [Basic Styles](http://ckeditor.com/addon/basicstyles) do not work when SCAYT is enabled.
+       * [#125](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/125): Fixed: Inline styles are not continued when writing multiple lines of styled text with SCAYT enabled.
+       * [#127](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/127): Fixed: Uncaught TypeError after enabling SCAYT in the CKEditor `<div>` element.
+       * [#128](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/128): Fixed: Error thrown after enabling SCAYT caused by conflicts with RequireJS.
+
+## CKEditor 4.5.11
+
+**Security Updates:**
+
+* [Severity: minor] Fixed the `target="_blank"` vulnerability reported by James Gaskell.
+
+       Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.
+
+  An upgrade is recommended.
+
+New Features:
+
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!
+
+Fixed Issues:
+
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.
+
+## CKEditor 4.5.10
+
+Fixed Issues:
+
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.
+* [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
+
+## CKEditor 4.5.9
+
+Fixed Issues:
+
+* [#10685](http://dev.ckeditor.com/ticket/10685): Fixed: Unreadable toolbar icons after updating to the new editor version. Fixed with [6876179](https://github.com/ckeditor/ckeditor-dev/commit/6876179db4ee97e786b07b8fd72e6b4120732185) in [ckeditor-dev](https://github.com/ckeditor/ckeditor-dev) and [6c9189f4](https://github.com/ckeditor/ckeditor-presets/commit/6c9189f46392d2c126854fe8889b820b8c76d291) in [ckeditor-presets](https://github.com/ckeditor/ckeditor-presets).
+* [#14573](https://dev.ckeditor.com/ticket/14573): Fixed: Missing [Widget](http://ckeditor.com/addon/widget) drag handler CSS when there are multiple editor instances.
+* [#14620](https://dev.ckeditor.com/ticket/14620): Fixed: Setting both the `min-height` style for the `<body>` element and the `height` style for the `<html>` element breaks the [Auto Grow](http://ckeditor.com/addon/autogrow) plugin.
+* [#14538](http://dev.ckeditor.com/ticket/14538): Fixed: Keyboard focus goes into an embedded `<iframe>` element.
+* [#14602](http://dev.ckeditor.com/ticket/14602): Fixed: The [`dom.element.removeAttribute()`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.element-method-removeAttribute) method does not remove all attributes if no parameter is given.
+* [#8679](http://dev.ckeditor.com/ticket/8679): Fixed: Better focus indication and ability to style the selected color in the [color picker dialog](http://ckeditor.com/addon/colordialog).
+* [#11697](http://dev.ckeditor.com/ticket/11697): Fixed: Content is replaced ignoring the letter case setting in the [Find and Replace](http://ckeditor.com/addon/find) dialog window.
+* [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
+* [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
+
 ## CKEditor 4.5.8
 
 New Features:
@@ -274,7 +567,7 @@ New Features:
 * Notification system:
   * [#11580](http://dev.ckeditor.com/ticket/11580): Introduced the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification).
   * [#12810](http://dev.ckeditor.com/ticket/12810): Introduced a [notification aggregator](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notificationAggregator) for the [notification system](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.notification) which simplifies displaying progress of many concurrent tasks.
-* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.deleteSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml).
+* [#11636](http://dev.ckeditor.com/ticket/11636): Introduced new, UX-focused, methods for getting selected HTML and deleting it &mdash; [`editor.getSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-getSelectedHtml) and [`editor.extractSelectedHtml()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-extractSelectedHtml).
 * [#12416](http://dev.ckeditor.com/ticket/12416): Added the [`widget.definition.upcastPriority`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-upcastPriority) property which gives more control over widget upcasting order to the widget author.
 * [#12036](http://dev.ckeditor.com/ticket/12036): Initialize the editor in [read-only](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-readOnly) mode when the `<textarea>` element has a `readonly` attribute.
 * [#11905](http://dev.ckeditor.com/ticket/11905): The [`resize` event](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-resize) passes the current dimensions in its data.
index f596f1bf67d38c65d36614eb2a66d58111f8fed4..0f50a9e8f87975370390e9e9917b0b3ca3cfb21b 100644 (file)
@@ -2,7 +2,7 @@ Software License Agreement
 ==========================
 
 CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 
 Licensed under the terms of any of the following licenses at your
 choice:
@@ -37,7 +37,7 @@ done by developers outside of CKSource with their express permission.
 
 The following libraries are included in CKEditor under the MIT license (see Appendix D):
 
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
+* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
 * PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
 * CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others.
 
@@ -58,17 +58,17 @@ The following libraries are included in CKEditor under the BSD-3 License (see Ap
 
 The following libraries are included only in the development version of CKEditor under the MIT license (see Appendix D):
 
-* CKBuilder - Copyright (c) 2012-2016, CKSource - Frederico Knabben.
-* CKLangTool - Copyright (c) 2012-2016, CKSource - Frederico Knabben.
+* CKBuilder - Copyright (c) 2012-2017, CKSource - Frederico Knabben.
+* CKLangTool - Copyright (c) 2012-2017, CKSource - Frederico Knabben.
 * Optimist - Copyright 2010 James Halliday (mail@substack.net).
 * Q - Copyright 2009–2014 Kristopher Michael Kowal.
 * Tmp - Copyright (c) 2014 KARASZI István.
 * Mkdirp - Copyright 2010 James Halliday (mail@substack.net).
-* Bender.js - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-coverage - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-jquery - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-sinon - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* benderjs-yui - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
+* Bender.js - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-coverage - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-jquery - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-sinon - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
+* benderjs-yui - Copyright (c) 2014-2017, CKSource - Frederico Knabben.
 * Grunt - Copyright (c) 2015 "Cowboy" Ben Alman.
 * grunt-contrib-imagemin - Copyright (c) 2014 Sindre Sorhus, contributors.
 * grunt-jscs - Copyright (c) 2014 Gustavo Henke, contributors.
index 5257b29f69867d73da80d30dd4b1c7e36b8eed55..d18d4a108e28d0115a7e0c3bed00cf33fae9b627 100644 (file)
@@ -1,7 +1,7 @@
 CKEditor 4
 ==========
 
-Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 http://ckeditor.com - See LICENSE.md for license information.
 
 CKEditor is a text editor to be used inside web pages. It's not a replacement
diff --git a/sources/adapters/jquery.js b/sources/adapters/jquery.js
new file mode 100644 (file)
index 0000000..4a7796b
--- /dev/null
@@ -0,0 +1,379 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR_Adapters.jQuery jQuery Adapter}.
+ */
+
+/**
+ * @class CKEDITOR_Adapters.jQuery
+ * @singleton
+ *
+ * The jQuery Adapter allows for easy use of basic CKEditor functions and access to the internal API.
+ * To find more information about the jQuery Adapter, go to the [jQuery Adapter section](#!/guide/dev_jquery)
+ * of the Developer's Guide or see the "Create Editors with jQuery" sample.
+ *
+ * @aside guide dev_jquery
+ */
+
+( function( $ ) {
+       if ( typeof $ == 'undefined' ) {
+               throw new Error( 'jQuery should be loaded before CKEditor jQuery adapter.' );
+       }
+
+       if ( typeof CKEDITOR == 'undefined' ) {
+               throw new Error( 'CKEditor should be loaded before CKEditor jQuery adapter.' );
+       }
+
+       /**
+        * Allows CKEditor to override `jQuery.fn.val()`. When set to `true`, the `val()` function
+        * used on textarea elements replaced with CKEditor uses the CKEditor API.
+        *
+        * This configuration option is global and is executed during the loading of the jQuery Adapter.
+        * It cannot be customized across editor instances.
+        *
+        * Read more in the [documentation](#!/guide/dev_jquery).
+        *
+        *              <script>
+        *                      CKEDITOR.config.jqueryOverrideVal = true;
+        *              </script>
+        *
+        *              <!-- Important: The jQuery Adapter is loaded *after* setting jqueryOverrideVal. -->
+        *              <script src="/ckeditor/adapters/jquery.js"></script>
+        *
+        *              <script>
+        *                      $( 'textarea' ).ckeditor();
+        *                      // ...
+        *                      $( 'textarea' ).val( 'New content' );
+        *              </script>
+        *
+        * @cfg {Boolean} [jqueryOverrideVal=true]
+        * @member CKEDITOR.config
+        */
+       CKEDITOR.config.jqueryOverrideVal =
+               typeof CKEDITOR.config.jqueryOverrideVal == 'undefined' ? true : CKEDITOR.config.jqueryOverrideVal;
+
+       // jQuery object methods.
+       $.extend( $.fn, {
+               /**
+                * Returns an existing CKEditor instance for the first matched element.
+                * Allows to easily use the internal API. Does not return a jQuery object.
+                *
+                * Raises an exception if the editor does not exist or is not ready yet.
+                *
+                * @returns CKEDITOR.editor
+                * @deprecated Use {@link #editor editor property} instead.
+                */
+               ckeditorGet: function() {
+                       var instance = this.eq( 0 ).data( 'ckeditorInstance' );
+
+                       if ( !instance )
+                               throw 'CKEditor is not initialized yet, use ckeditor() with a callback.';
+
+                       return instance;
+               },
+
+               /**
+                * A jQuery function which triggers the creation of CKEditor with `<textarea>` and
+                * {@link CKEDITOR.dtd#$editable editable} elements.
+                * Every `<textarea>` element will be converted to a classic (`iframe`-based) editor,
+                * while any other supported element will be converted to an inline editor.
+                * This method binds the callback to the `instanceReady` event of all instances.
+                * If the editor has already been created, the callback is fired straightaway.
+                * You can also create multiple editors at once by using `$( '.className' ).ckeditor();`.
+                *
+                * **Note**: jQuery chaining and mixed parameter order is allowed.
+                *
+                * @param {Function} callback
+                * Function to be run on the editor instance. Callback takes the source element as a parameter.
+                *
+                *              $( 'textarea' ).ckeditor( function( textarea ) {
+                *                      // Callback function code.
+                *              } );
+                *
+                * @param {Object} config
+                * Configuration options for new instance(s) if not already created.
+                *
+                *              $( 'textarea' ).ckeditor( {
+                *                      uiColor: '#9AB8F3'
+                *              } );
+                *
+                * @returns jQuery.fn
+                */
+               ckeditor: function( callback, config ) {
+                       if ( !CKEDITOR.env.isCompatible )
+                               throw new Error( 'The environment is incompatible.' );
+
+                       // Reverse the order of arguments if the first one isn't a function.
+                       if ( !$.isFunction( callback ) ) {
+                               var tmp = config;
+                               config = callback;
+                               callback = tmp;
+                       }
+
+                       // An array of instanceReady callback promises.
+                       var promises = [];
+
+                       config = config || {};
+
+                       // Iterate over the collection.
+                       this.each( function() {
+                               var $element = $( this ),
+                                       editor = $element.data( 'ckeditorInstance' ),
+                                       instanceLock = $element.data( '_ckeditorInstanceLock' ),
+                                       element = this,
+                                       dfd = new $.Deferred();
+
+                               promises.push( dfd.promise() );
+
+                               if ( editor && !instanceLock ) {
+                                       if ( callback )
+                                               callback.apply( editor, [ this ] );
+
+                                       dfd.resolve();
+                               } else if ( !instanceLock ) {
+                                       // CREATE NEW INSTANCE
+
+                                       // Handle config.autoUpdateElement inside this plugin if desired.
+                                       if ( config.autoUpdateElement || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) ) {
+                                               config.autoUpdateElementJquery = true;
+                                       }
+
+                                       // Always disable config.autoUpdateElement.
+                                       config.autoUpdateElement = false;
+                                       $element.data( '_ckeditorInstanceLock', true );
+
+                                       // Set instance reference in element's data.
+                                       if ( $( this ).is( 'textarea' ) )
+                                               editor = CKEDITOR.replace( element, config );
+                                       else
+                                               editor = CKEDITOR.inline( element, config );
+
+                                       $element.data( 'ckeditorInstance', editor );
+
+                                       // Register callback.
+                                       editor.on( 'instanceReady', function( evt ) {
+                                               var editor = evt.editor;
+
+                                               setTimeout( function() {
+                                                       // Delay bit more if editor is still not ready.
+                                                       if ( !editor.element ) {
+                                                               setTimeout( arguments.callee, 100 );
+                                                               return;
+                                                       }
+
+                                                       // Remove this listener. Triggered when new instance is ready.
+                                                       evt.removeListener();
+
+                                                       /**
+                                                        * Forwards the CKEditor {@link CKEDITOR.editor#event-dataReady dataReady event} as a jQuery event.
+                                                        *
+                                                        * @event dataReady
+                                                        * @param {CKEDITOR.editor} editor Editor instance.
+                                                        */
+                                                       editor.on( 'dataReady', function() {
+                                                               $element.trigger( 'dataReady.ckeditor', [ editor ] );
+                                                       } );
+
+                                                       /**
+                                                        * Forwards the CKEditor {@link CKEDITOR.editor#event-setData setData event} as a jQuery event.
+                                                        *
+                                                        * @event setData
+                                                        * @param {CKEDITOR.editor} editor Editor instance.
+                                                        * @param data
+                                                        * @param {String} data.dataValue The data that will be used.
+                                                        */
+                                                       editor.on( 'setData', function( evt ) {
+                                                               $element.trigger( 'setData.ckeditor', [ editor, evt.data ] );
+                                                       } );
+
+                                                       /**
+                                                        * Forwards the CKEditor {@link CKEDITOR.editor#event-getData getData event} as a jQuery event.
+                                                        *
+                                                        * @event getData
+                                                        * @param {CKEDITOR.editor} editor Editor instance.
+                                                        * @param data
+                                                        * @param {String} data.dataValue The data that will be returned.
+                                                        */
+                                                       editor.on( 'getData', function( evt ) {
+                                                               $element.trigger( 'getData.ckeditor', [ editor, evt.data ] );
+                                                       }, 999 );
+
+                                                       /**
+                                                        * Forwards the CKEditor {@link CKEDITOR.editor#event-destroy destroy event} as a jQuery event.
+                                                        *
+                                                        * @event destroy
+                                                        * @param {CKEDITOR.editor} editor Editor instance.
+                                                        */
+                                                       editor.on( 'destroy', function() {
+                                                               $element.trigger( 'destroy.ckeditor', [ editor ] );
+                                                       } );
+
+                                                       // Overwrite save button to call jQuery submit instead of javascript submit.
+                                                       // Otherwise jQuery.forms does not work properly
+                                                       editor.on( 'save', function() {
+                                                               $( element.form ).submit();
+                                                               return false;
+                                                       }, null, null, 20 );
+
+                                                       // Integrate with form submit.
+                                                       if ( editor.config.autoUpdateElementJquery && $element.is( 'textarea' ) && $( element.form ).length ) {
+                                                               var onSubmit = function() {
+                                                                       $element.ckeditor( function() {
+                                                                               editor.updateElement();
+                                                                       } );
+                                                               };
+
+                                                               // Bind to submit event.
+                                                               $( element.form ).submit( onSubmit );
+
+                                                               // Bind to form-pre-serialize from jQuery Forms plugin.
+                                                               $( element.form ).bind( 'form-pre-serialize', onSubmit );
+
+                                                               // Unbind when editor destroyed.
+                                                               $element.bind( 'destroy.ckeditor', function() {
+                                                                       $( element.form ).unbind( 'submit', onSubmit );
+                                                                       $( element.form ).unbind( 'form-pre-serialize', onSubmit );
+                                                               } );
+                                                       }
+
+                                                       // Garbage collect on destroy.
+                                                       editor.on( 'destroy', function() {
+                                                               $element.removeData( 'ckeditorInstance' );
+                                                       } );
+
+                                                       // Remove lock.
+                                                       $element.removeData( '_ckeditorInstanceLock' );
+
+                                                       /**
+                                                        * Forwards the CKEditor {@link CKEDITOR.editor#event-instanceReady instanceReady event} as a jQuery event.
+                                                        *
+                                                        * @event instanceReady
+                                                        * @param {CKEDITOR.editor} editor Editor instance.
+                                                        */
+                                                       $element.trigger( 'instanceReady.ckeditor', [ editor ] );
+
+                                                       // Run given (first) code.
+                                                       if ( callback )
+                                                               callback.apply( editor, [ element ] );
+
+                                                       dfd.resolve();
+                                               }, 0 );
+                                       }, null, null, 9999 );
+                               } else {
+                                       // Editor is already during creation process, bind our code to the event.
+                                       editor.once( 'instanceReady', function() {
+                                               setTimeout( function() {
+                                                       // Delay bit more if editor is still not ready.
+                                                       if ( !editor.element ) {
+                                                               setTimeout( arguments.callee, 100 );
+                                                               return;
+                                                       }
+
+                                                       // Run given code.
+                                                       if ( editor.element.$ == element && callback )
+                                                               callback.apply( editor, [ element ] );
+
+                                                       dfd.resolve();
+                                               }, 0 );
+                                       }, null, null, 9999 );
+                               }
+                       } );
+
+                       /**
+                        * The [jQuery Promise object]((http://api.jquery.com/promise/)) that handles the asynchronous constructor.
+                        * This promise will be resolved after **all** of the constructors.
+                        *
+                        * @property {Function} promise
+                        */
+                       var dfd = new $.Deferred();
+
+                       this.promise = dfd.promise();
+
+                       $.when.apply( this, promises ).then( function() {
+                               dfd.resolve();
+                       } );
+
+                       /**
+                        * Existing CKEditor instance. Allows to easily use the internal API.
+                        *
+                        * **Note**: This is not a jQuery object.
+                        *
+                        *              var editor = $( 'textarea' ).ckeditor().editor;
+                        *
+                        * @property {CKEDITOR.editor} editor
+                        */
+                       this.editor = this.eq( 0 ).data( 'ckeditorInstance' );
+
+                       return this;
+               }
+       } );
+
+       /**
+        * Overwritten jQuery `val()` method for `<textarea>` elements that have bound CKEditor instances.
+        * This method gets or sets editor content by using the {@link CKEDITOR.editor#method-getData editor.getData()}
+        * or {@link CKEDITOR.editor#method-setData editor.setData()} methods. To handle
+        * the {@link CKEDITOR.editor#method-setData editor.setData()} callback (as `setData` is asynchronous),
+        * `val( 'some data' )` will return a [jQuery Promise object](http://api.jquery.com/promise/).
+        *
+        * @method val
+        * @returns String|Number|Array|jQuery.fn|function(jQuery Promise)
+        */
+       if ( CKEDITOR.config.jqueryOverrideVal ) {
+               $.fn.val = CKEDITOR.tools.override( $.fn.val, function( oldValMethod ) {
+                       return function( value ) {
+                               // Setter, i.e. .val( "some data" );
+                               if ( arguments.length ) {
+                                       var _this = this,
+                                               promises = [], //use promise to handle setData callback
+
+                                               result = this.each( function() {
+                                                       var $elem = $( this ),
+                                                               editor = $elem.data( 'ckeditorInstance' );
+
+                                                       // Handle .val for CKEditor.
+                                                       if ( $elem.is( 'textarea' ) && editor ) {
+                                                               var dfd = new $.Deferred();
+
+                                                               editor.setData( value, function() {
+                                                                       dfd.resolve();
+                                                               } );
+
+                                                               promises.push( dfd.promise() );
+                                                               return true;
+                                                               // Call default .val function for rest of elements
+                                                       } else {
+                                                               return oldValMethod.call( $elem, value );
+                                                       }
+                                               } );
+
+                                       // If there is no promise return default result (jQuery object of chaining).
+                                       if ( !promises.length )
+                                               return result;
+                                       // Create one promise which will be resolved when all of promises will be done.
+                                       else {
+                                               var dfd = new $.Deferred();
+
+                                               $.when.apply( this, promises ).done( function() {
+                                                       dfd.resolveWith( _this );
+                                               } );
+
+                                               return dfd.promise();
+                                       }
+                               }
+                               // Getter .val();
+                               else {
+                                       var $elem = $( this ).eq( 0 ),
+                                               editor = $elem.data( 'ckeditorInstance' );
+
+                                       if ( $elem.is( 'textarea' ) && editor )
+                                               return editor.getData();
+                                       else
+                                               return oldValMethod.call( $elem );
+                               }
+                       };
+               } );
+       }
+} )( window.jQuery );
diff --git a/sources/build-config.js b/sources/build-config.js
new file mode 100644 (file)
index 0000000..207d280
--- /dev/null
@@ -0,0 +1,91 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time to build CKEditor again.
+ *
+ * If you would like to build CKEditor online again
+ * (for example to upgrade), visit one the following links:
+ *
+ * (1) http://ckeditor.com/builder
+ *     Visit online builder to build CKEditor from scratch.
+ *
+ * (2) http://ckeditor.com/builder/9323150a85589a6899021c19376669e6
+ *     Visit online builder to build CKEditor, starting with the same setup as before.
+ *
+ * (3) http://ckeditor.com/builder/download/9323150a85589a6899021c19376669e6
+ *     Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
+ *
+ * NOTE:
+ *    This file is not used by CKEditor, you may remove it.
+ *    Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+       skin: 'moono',
+       preset: 'full',
+       ignore: [
+               '.DS_Store',
+               '.bender',
+               '.editorconfig',
+               '.gitattributes',
+               '.gitignore',
+               '.idea',
+               '.jscsrc',
+               '.jshintignore',
+               '.jshintrc',
+               '.mailmap',
+               '.travis.yml',
+               'bender-err.log',
+               'bender-out.log',
+               'bender.ci.js',
+               'bender.js',
+               'dev',
+               'gruntfile.js',
+               'less',
+               'node_modules',
+               'package.json',
+               'tests'
+       ],
+       plugins : {
+               'Audio' : 1,
+               'a11yhelp' : 1,
+               'basicstyles' : 1,
+               'contextmenu' : 1,
+               'dialogadvtab' : 1,
+               'elementspath' : 1,
+               'enterkey' : 1,
+               'entities' : 1,
+               'filebrowser' : 1,
+               'floatingspace' : 1,
+               'format' : 1,
+               'horizontalrule' : 1,
+               'html5video' : 1,
+               'htmlwriter' : 1,
+               'iframe' : 1,
+               'image' : 1,
+               'indentblock' : 1,
+               'indentlist' : 1,
+               'justify' : 1,
+               'link' : 1,
+               'list' : 1,
+               'liststyle' : 1,
+               'magicline' : 1,
+               'maximize' : 1,
+               'oembed' : 1,
+               'removeformat' : 1,
+               'resize' : 1,
+               'showborders' : 1,
+               'sourcearea' : 1,
+               'tab' : 1,
+               'toolbar' : 1,
+               'wysiwygarea' : 1
+       },
+       languages : {
+               'en' : 1,
+               'fr' : 1
+       }
+};
\ No newline at end of file
index e9912d64c2cefc8e36ddddaf406d74c4d5739d69..8dc999ba0f0d53f3ee6786eab4b78280f9f74e39 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -42,7 +42,7 @@ else {
  *
  *             CKEDITOR.skinName = 'myskin,/customstuff/myskin/';
  *
- * @cfg {String} [skinName='moono']
+ * @cfg {String} [skinName='moono-lisa']
  * @member CKEDITOR
  */
-CKEDITOR.skinName = 'moono';
+CKEDITOR.skinName = 'moono-lisa';
index 3653a22a5e79637cb43396b0e1c880c69798cd08..049b0d9cb962f897d16a355c188fc5b0971018f9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -7,7 +7,7 @@ CKEDITOR.editorConfig = function( config ) {
        \r
        // %REMOVE_START%\r
        // The configuration options below are needed when running CKEditor from source files.\r
-       config.plugins = 'dialogui,dialog,a11yhelp,basicstyles,panel,floatpanel,menu,contextmenu,dialogadvtab,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,button,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,resize,showborders,sourcearea,tab,toolbar,wysiwygarea';\r
+       config.plugins = 'dialogui,dialog,a11yhelp,dialogadvtab,basicstyles,panel,floatpanel,menu,contextmenu,resize,button,toolbar,elementspath,enterkey,entities,popup,filebrowser,floatingspace,listblock,richcombo,format,horizontalrule,htmlwriter,fakeobjects,iframe,wysiwygarea,image,indent,indentblock,indentlist,justify,link,list,liststyle,magicline,maximize,removeformat,showborders,sourcearea,tab,lineutils,notification,clipboard,widgetselection,widget,oembed,Audio,html5video';\r
        config.skin = 'moono';\r
        // %REMOVE_END%\r
 \r
index bef3ebc8b1b780139820bea1270b64834bb835ac..8571059d58628cec72f97eddb81b1fac36d492c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 
@@ -133,3 +133,76 @@ a > img {
        border: none;
        outline: 1px solid #0782C1;
 }
+
+/* Widget Styles */
+.code-featured
+{
+       border: 5px solid red;
+}
+
+.math-featured
+{
+       padding: 20px;
+       box-shadow: 0 0 2px rgba(200, 0, 0, 1);
+       background-color: rgba(255, 0, 0, 0.05);
+       margin: 10px;
+}
+
+.image-clean
+{
+       border: 0;
+       background: none;
+       padding: 0;
+}
+
+.image-clean > figcaption
+{
+       font-size: .9em;
+       text-align: right;
+}
+
+.image-grayscale
+{
+       background-color: white;
+       color: #666;
+}
+
+.image-grayscale img, img.image-grayscale
+{
+       filter: grayscale(100%);
+}
+
+.embed-240p
+{
+       max-width: 426px;
+       max-height: 240px;
+       margin:0 auto;
+}
+
+.embed-360p
+{
+       max-width: 640px;
+       max-height: 360px;
+       margin:0 auto;
+}
+
+.embed-480p
+{
+       max-width: 854px;
+       max-height: 480px;
+       margin:0 auto;
+}
+
+.embed-720p
+{
+       max-width: 1280px;
+       max-height: 720px;
+       margin:0 auto;
+}
+
+.embed-1080p
+{
+       max-width: 1920px;
+       max-height: 1080px;
+       margin:0 auto;
+}
index 9fcbe25de0c8312c5844721570f48dfa793b54a4..cc7fb38b1c71f51ccf2b408614e4eb32881ea800 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -8,7 +8,7 @@
  */
 
 ( function() {
-       // Disable HC detection in WebKit. (#5429)
+       // Disable HC detection in WebKit. (http://dev.ckeditor.com/ticket/5429)
        if ( CKEDITOR.env.webkit )
                CKEDITOR.env.hc = false;
        else {
                hcDetect.appendTo( CKEDITOR.document.getHead() );
 
                // Update CKEDITOR.env.
-               // Catch exception needed sometimes for FF. (#4230)
+               // Catch exception needed sometimes for FF. (http://dev.ckeditor.com/ticket/4230)
                try {
                        var top = hcDetect.getComputedStyle( 'border-top-color' ),
                                right = hcDetect.getComputedStyle( 'border-right-color' );
 
                        // We need to check if getComputedStyle returned any value, because on FF
-                       // it returnes empty string if CKEditor is loaded in hidden iframe. (#11121)
+                       // it returnes empty string if CKEditor is loaded in hidden iframe. (http://dev.ckeditor.com/ticket/11121)
                        CKEDITOR.env.hc = !!( top && top == right );
                } catch ( e ) {
                        CKEDITOR.env.hc = false;
index 2b3e5cdd1759daf0ef199cb4db802f8294f78c09..95dd67ac0c74d715b18455cfb9e73b448368c02b 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -126,7 +126,7 @@ CKEDITOR.remove = function( editor ) {
        };
 
        /**
-        * Returns a string will all CSS rules passed to the {@link CKEDITOR#addCss} method.
+        * Returns a string with all CSS rules passed to the {@link CKEDITOR#addCss} method.
         *
         * @returns {String} A string containing CSS rules.
         */
index 1e90d72ec2771174ef4a8e03729cec72584217c2..8c36b11a0c2bc8bdf70621ddab0b27819e5dd682 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -33,6 +33,10 @@ if ( !window.CKEDITOR ) {
                         * by the editor code, guaranteeing clean cache results when
                         * upgrading.
                         *
+                        * **Note:** There is [a known issue where "icons.png" does not include
+                        * timestamp](http://dev.ckeditor.com/ticket/10685) and might get cached.
+                        * We are working on having it fixed.
+                        *
                         *              alert( CKEDITOR.timestamp ); // e.g. '87dm'
                         */
                        timestamp: '',                          // %REMOVE_LINE%
index 847d661ed7f52ad8d71c993ef56de0d02b0fd89f..c07e4d980de54b1edeca9c43f05b3b66e52805f5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index a0e07b59955a59d1b7ab8261094e46e8ca147605..128cea426c7a33442ce7b372e8895e67b91c8ef3 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -47,7 +47,7 @@ CKEDITOR.command = function( editor, commandDefinition ) {
                if ( this.state == CKEDITOR.TRISTATE_DISABLED || !this.checkAllowed() )
                        return false;
 
-               if ( this.editorFocus ) // Give editor focus if necessary (#4355).
+               if ( this.editorFocus ) // Give editor focus if necessary (http://dev.ckeditor.com/ticket/4355).
                        editor.focus();
 
                if ( this.fire( 'exec' ) === false )
index 68b2253154d9822e42eab89babf845393cbaa4cb..10a040f21f6a8e506f8372655d368c84bbe365e4 100644 (file)
@@ -1,10 +1,10 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 /**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class
  *             which contains the defintion of a command. This file is for
  *             documentation purposes only.
  */
  *             } );
  *
  * @method exec
- * @param {CKEDITOR.editor} editor The editor within which run the command.
+ * @param {CKEDITOR.editor} editor The editor within which to run the command.
  * @param {Object} [data] Additional data to be used to execute the command.
  * @returns {Boolean} Whether the command has been successfully executed.
- * Defaults to `true`, if nothing is returned.
+ * Defaults to `true` if nothing is returned.
  */
 
 /**
- * Whether the command need to be hooked into the redo/undo system.
+ * Whether the command needs to be hooked into the redo/undo system.
  *
  *             editorInstance.addCommand( 'alertName', {
  *                     exec: function( editor ) {
  * command itself manually, and that the return value of this command is not to
  * be returned by the {@link #exec} function.
  *
- *             editorInstance.addCommand( 'loadOptions', {
+ *             editorInstance.addCommand( 'loadoptions', {
  *                     exec: function( editor ) {
+ *                             var cmd = this;
  *                             // Asynchronous operation below.
  *                             CKEDITOR.ajax.loadXml( 'data.xml', function() {
- *                                     editor.fire( 'afterCommandExec' );
+ *                                     editor.fire( 'afterCommandExec', {
+ *                                             name: 'loadoptions',
+ *                                             command: cmd
+ *                                     } );
  *                             } );
  *                     },
- *                     async: true // The command need some time to complete after exec function returns.
+ *                     async: true // The command needs some time to complete after the exec function returns.
  *             } );
  *
  * @property {Boolean} [async=false]
@@ -72,7 +76,7 @@
  *                             exec: function( editor ) {
  *                             // ...
  *                     },
- *                     editorFocus: false // The command doesn't require focusing the editing document.
+ *                     editorFocus: false // The command does not require focusing the editing document.
  *             } );
  *
  * See also {@link CKEDITOR.command#editorFocus}.
  *                     exec: function( editor ) {
  *                             // ...
  *                     },
- *                     startDisabled: true // Command is unavailable until selection is inside a link.
+ *                     startDisabled: true // The command is unavailable until the selection is inside a link.
  *             } );
  *
  * @property {Boolean} [startDisabled=false]
  */
 
 /**
- * Indicates that this command is sensible to the selection context.
+ * Indicates that this command is sensitive to the selection context.
  * If `true`, the {@link CKEDITOR.command#method-refresh} method will be
  * called for this command on selection changes, with a single parameter
  * representing the current elements path.
  */
 
 /**
- * Defined by command definition a function to determinate the command state, it will be invoked
- * when editor has it's `states` or `selection` changed.
+ * Defined by the command definition, a function to determine the command state. It will be invoked
+ * when the editor has its `states` or `selection` changed.
  *
- * **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstance,
+ * **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstances
  * if it is intended to update the command state.
  *
  * @method refresh
  *                     exec: function( editor ) {
  *                             // ...
  *                     },
- *                     modes: { wysiwyg:1 } // Command is available in wysiwyg mode only.
+ *                     modes: { wysiwyg:1 } // The command is available in wysiwyg mode only.
  *             } );
  *
  * See also {@link CKEDITOR.command#modes}.
  * @since 4.0
  * @property {Boolean} [readOnly=false]
  */
+
+/**
+ * A property that should be set when a command has no keystroke assigned by {@link CKEDITOR.editor#setKeystroke}, but
+ * the keystroke is still supported. For example: `cut`, `copy` and `paste` commands are handled that way.
+ * This property is used when displaying keystroke information in tooltips and context menus. It is used by
+ * {@link CKEDITOR.editor#getCommandKeystroke}.
+ *
+ * @since 4.6.0
+ * @property {Number} fakeKeystroke
+ */
index 4ce98d76f6fb07c0e9e8e247513ce4208889803f..f0f4aec053ac2bc764cb7ae3080e80c92af68b00 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index a1a653c06206553e2f4d7f540eb98049503c1579..adb402f28a303eb772de53fee2d254f35c0c6965 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index c87d07953f29cc26aed3a37a551ea26d376e470e..4e7a93e350add63d493bed7d34084143064ce611 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -20,7 +20,7 @@ CKEDITOR.replaceClass = 'ckeditor';
         * Replaces a `<textarea>` or a DOM element (`<div>`) with a CKEditor
         * instance. For textareas, the initial value in the editor will be the
         * textarea value. For DOM elements, their `innerHTML` will be used
-        * instead. We recommend using `<textarea>` and `<div>` elements only.
+        * instead. It is recommended to use `<textarea>` and `<div>` elements only.
         *
         *              <textarea id="myfield" name="myfield"></textarea>
         *              ...
@@ -79,10 +79,10 @@ CKEDITOR.replaceClass = 'ckeditor';
         *              // Replace all <textarea class="myClassName"> elements in the page.
         *              CKEDITOR.replaceAll( 'myClassName' );
         *
-        *              // Selectively replace <textarea> elements, based on custom assertions.
+        *              // Selectively replace <textarea> elements, based on a custom evaluation function.
         *              CKEDITOR.replaceAll( function( textarea, config ) {
-        *                      // An assertion function that needs to be evaluated for the <textarea>
-        *                      // to be replaced. It must explicitely return "false" to ignore a
+        *                      // A function that needs to be evaluated for the <textarea>
+        *                      // to be replaced. It must explicitly return "false" to ignore a
         *                      // specific <textarea>.
         *                      // You can also customize the editor instance by having the function
         *                      // modify the "config" parameter.
@@ -109,7 +109,7 @@ CKEDITOR.replaceClass = 'ckeditor';
         *              </html>
         *
         * @param {String} [className] The `<textarea>` class name.
-        * @param {Function} [function] An assertion function that must return `true` for a `<textarea>`
+        * @param {Function} [evaluator] An evaluation function that must return `true` for a `<textarea>`
         * to be replaced with the editor. If the function returns `false`, the `<textarea>` element
         * will not be replaced.
         */
@@ -133,7 +133,7 @@ CKEDITOR.replaceClass = 'ckeditor';
                                if ( !classRegex.test( textarea.className ) )
                                        continue;
                        } else if ( typeof arguments[ 0 ] == 'function' ) {
-                               // An assertion function could be passed as the function parameter.
+                               // An evaluation function could be passed as the function parameter.
                                // It must explicitly return "false" to ignore a specific <textarea>.
                                config = {};
                                if ( arguments[ 0 ]( textarea, config ) === false )
@@ -280,10 +280,10 @@ CKEDITOR.replaceClass = 'ckeditor';
                        outer = container;
                }
 
-               // Set as border box width. (#5353)
+               // Set as border box width. (http://dev.ckeditor.com/ticket/5353)
                outer.setSize( 'width', width, true );
 
-               // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
+               // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (http://dev.ckeditor.com/ticket/8348)
                contentsFrame && ( contentsFrame.style.width = '1%' );
 
                // Get the height delta between the outer table and the content area.
@@ -295,7 +295,7 @@ CKEDITOR.replaceClass = 'ckeditor';
 
                contents.setStyle( 'height', resultContentsHeight + 'px' );
 
-               // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
+               // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (http://dev.ckeditor.com/ticket/8348)
                contentsFrame && ( contentsFrame.style.width = '100%' );
 
                // Emit a resize event.
@@ -309,8 +309,8 @@ CKEDITOR.replaceClass = 'ckeditor';
 
        /**
         * Gets the element that can be used to check the editor size. This method
-        * is mainly used by the `resize` plugin, which adds a UI handle that can be used
-        * to resize the editor.
+        * is mainly used by the [Editor Resize](http://ckeditor.com/addon/resize) plugin, which adds
+        * a UI handle that can be used to resize the editor.
         *
         * @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
         * @returns {CKEDITOR.dom.element} The resizable element.
@@ -337,7 +337,7 @@ CKEDITOR.replaceClass = 'ckeditor';
                        // replacement will be done later in the editor creation lifecycle.
                        element.setStyle( 'visibility', 'hidden' );
 
-                       // #8031 Remember if textarea was required and remove the attribute.
+                       // http://dev.ckeditor.com/ticket/8031 Remember if textarea was required and remove the attribute.
                        editor._.required = element.hasAttribute( 'required' );
                        element.removeAttribute( 'required' );
                }
@@ -422,7 +422,7 @@ CKEDITOR.replaceClass = 'ckeditor';
                        topHtml: topHtml ? '<span id="' + editor.ui.spaceId( 'top' ) + '" class="cke_top cke_reset_all" role="presentation" style="height:auto">' + topHtml + '</span>' : '',
                        contentId: editor.ui.spaceId( 'contents' ),
                        bottomHtml: bottomHtml ? '<span id="' + editor.ui.spaceId( 'bottom' ) + '" class="cke_bottom cke_reset_all" role="presentation">' + bottomHtml + '</span>' : '',
-                       outerEl: CKEDITOR.env.ie ? 'span' : 'div'       // #9571
+                       outerEl: CKEDITOR.env.ie ? 'span' : 'div'       // http://dev.ckeditor.com/ticket/9571
                } ) );
 
                if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
@@ -451,7 +451,7 @@ CKEDITOR.replaceClass = 'ckeditor';
                // Disable browser context menu for editor's chrome.
                container.disableContextMenu();
 
-               // Redirect the focus into editor for webkit. (#5713)
+               // Redirect the focus into editor for webkit. (http://dev.ckeditor.com/ticket/5713)
                CKEDITOR.env.webkit && container.on( 'focus', function() {
                        editor.focus();
                } );
@@ -467,7 +467,7 @@ CKEDITOR.replaceClass = 'ckeditor';
 
 /**
  * The current editing mode. An editing mode basically provides
- * different ways of editing or viewing the contents.
+ * different ways of editing or viewing the editor content.
  *
  *             alert( CKEDITOR.instances.editor1.mode ); // (e.g.) 'wysiwyg'
  *
index ebc4d1c7779cbaebf6bce2ff120cbd1a3e00c043..c42eab46ea56b48c455074aaa3aa21368648eb8c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index a806a7466f215b949617f3d7cf97622341cc2232..84aa21d1fe9171d039fd3a05e1b77d32bf4d0a3a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 69828c2e1dfa4ee581e31de88598f7caf7645a00..4abb4531b6a54e522118716278c8932c3b031764 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index f287245e64d820d3281d57d1641f8d16ebfdde6f..ebf0babb98c0aed485c6a08dcd3d8594df232ebe 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -262,7 +262,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype, {
         * @param {String} html The HTML defining the document content.
         */
        write: function( html ) {
-               // Don't leave any history log in IE. (#5657)
+               // Don't leave any history log in IE. (http://dev.ckeditor.com/ticket/5657)
                this.$.open( 'text/html', 'replace' );
 
                // Support for custom document.domain in IE.
index ffca9e5d0715c3bc4562e8dfb9439dccc5c8b1aa..10581444d5494e4e57614539d9317330e5871d36 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 607e9f3c40e59cedec2f87bf3a34d35280e70d79..f4e258ae18b62241361889acdc0504f8b3f1050e 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -41,7 +41,7 @@ CKEDITOR.dom.domObject.prototype = ( function() {
                        return function( domEvent ) {
                                // In FF, when reloading the page with the editor focused, it may
                                // throw an error because the CKEDITOR global is not anymore
-                               // available. So, we check it here first. (#2923)
+                               // available. So, we check it here first. (http://dev.ckeditor.com/ticket/2923)
                                if ( typeof CKEDITOR != 'undefined' )
                                        domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
                        };
@@ -138,7 +138,7 @@ CKEDITOR.dom.domObject.prototype = ( function() {
                        }
 
                        // Remove events from events object so fire() method will not call
-                       // listeners (#11400).
+                       // listeners (http://dev.ckeditor.com/ticket/11400).
                        CKEDITOR.event.prototype.removeAllListeners.call( this );
                }
        };
index b586b027668d155d35d3f817e0cf183c352084cf..31451f9b123064b6919038f3b5988d12b7d56c48 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -308,7 +308,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                 */
                appendText: function( text ) {
                        // On IE8 it is impossible to append node to script tag, so we use its text.
-                       // On the contrary, on Safari the text property is unpredictable in links. (#13232)
+                       // On the contrary, on Safari the text property is unpredictable in links. (http://dev.ckeditor.com/ticket/13232)
                        if ( this.$.text != null && CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
                                this.$.text += text;
                        else
@@ -368,13 +368,36 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                        range.setEndAfter( parent );
 
                        // Extract it.
-                       var docFrag = range.extractContents( false, cloneId || false );
+                       var docFrag = range.extractContents( false, cloneId || false ),
+                               tmpElement,
+                               current;
 
                        // Move the element outside the broken element.
                        range.insertNode( this.remove() );
 
-                       // Re-insert the extracted piece after the element.
-                       docFrag.insertAfterNode( this );
+                       // In case of Internet Explorer, we must check if there is no background-color
+                       // added to the element. In such case, we have to overwrite it to prevent "switching it off"
+                       // by a browser (http://dev.ckeditor.com/ticket/14667).
+                       if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {
+                               tmpElement = new CKEDITOR.dom.element( 'div' );
+
+                               while ( current = docFrag.getFirst() ) {
+                                       if ( current.$.style.backgroundColor ) {
+                                               // This is a necessary hack to make sure that IE will track backgroundColor CSS property, see
+                                               // http://dev.ckeditor.com/ticket/14667#comment:8 for more details.
+                                               current.$.style.backgroundColor = current.$.style.backgroundColor;
+                                       }
+
+                                       tmpElement.append( current );
+                               }
+
+                               // Re-insert the extracted piece after the element.
+                               tmpElement.insertAfter( this );
+                               tmpElement.remove( true );
+                       } else {
+                               // Re-insert the extracted piece after the element.
+                               docFrag.insertAfterNode( this );
+                       }
                },
 
                /**
@@ -429,7 +452,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                 */
                getHtml: function() {
                        var retval = this.$.innerHTML;
-                       // Strip <?xml:namespace> tags in IE. (#3341).
+                       // Strip <?xml:namespace> tags in IE. (http://dev.ckeditor.com/ticket/3341).
                        return CKEDITOR.env.ie ? retval.replace( /<\?[^>]*>/g, '' ) : retval;
                },
 
@@ -444,7 +467,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                getOuterHtml: function() {
                        if ( this.$.outerHTML ) {
                                // IE includes the <?xml:namespace> tag in the outerHTML of
-                               // namespaced element. So, we must strip it here. (#3341)
+                               // namespaced element. So, we must strip it here. (http://dev.ckeditor.com/ticket/3341)
                                return this.$.outerHTML.replace( /<\?[^>]*>/, '' );
                        }
 
@@ -595,7 +618,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                                        return this.$[ name ];
 
                                                case 'style':
-                                                       // IE does not return inline styles via getAttribute(). See #2947.
+                                                       // IE does not return inline styles via getAttribute(). See http://dev.ckeditor.com/ticket/2947.
                                                        return this.$.style.cssText;
 
                                                case 'contenteditable':
@@ -610,6 +633,28 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                        }
                } )(),
 
+               /**
+                * Gets the values of all element attributes.
+                *
+                * @param {Array} exclude The names of attributes to be excluded from the returned object.
+                * @return {Object} An object containing all element attributes with their values.
+                */
+               getAttributes: function( exclude ) {
+                       var attributes = {},
+                               attrDefs = this.$.attributes,
+                               i;
+
+                       exclude = CKEDITOR.tools.isArray( exclude ) ? exclude : [];
+
+                       for ( i = 0; i < attrDefs.length; i++ ) {
+                               if ( CKEDITOR.tools.indexOf( exclude, attrDefs[ i ].name ) === -1 ) {
+                                       attributes[ attrDefs[ i ].name ] = attrDefs[ i ].value;
+                               }
+                       }
+
+                       return attributes;
+               },
+
                /**
                 * Gets the nodes list containing all children of this element.
                 *
@@ -634,7 +679,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                function( propertyName ) {
                                        var style = this.getWindow().$.getComputedStyle( this.$, null );
 
-                                       // Firefox may return null if we call the above on a hidden iframe. (#9117)
+                                       // Firefox may return null if we call the above on a hidden iframe. (http://dev.ckeditor.com/ticket/9117)
                                        return style ? style.getPropertyValue( propertyName ) : '';
                                } : function( propertyName ) {
                                        return this.$.currentStyle[ CKEDITOR.tools.cssStyleToDomStyle( propertyName ) ];
@@ -927,7 +972,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                elementWindow, elementWindowFrame;
 
                        // Webkit and Opera report non-zero offsetHeight despite that
-                       // element is inside an invisible iframe. (#4542)
+                       // element is inside an invisible iframe. (http://dev.ckeditor.com/ticket/4542)
                        if ( isVisible && CKEDITOR.env.webkit ) {
                                elementWindow = this.getWindow();
 
@@ -988,7 +1033,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                                        // attribute, which will be marked as "specified", even if the
                                                        // outerHTML of the element is not displaying the class attribute.
                                                        // Note : I was not able to reproduce it outside the editor,
-                                                       // but I've faced it while working on the TC of #1391.
+                                                       // but I've faced it while working on the TC of http://dev.ckeditor.com/ticket/1391.
                                                        if ( this.getAttribute( 'class' ) ) {
                                                                return true;
                                                        }
@@ -1012,7 +1057,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                var attrs = this.$.attributes,
                                        attrsNum = attrs.length;
 
-                               // The _moz_dirty attribute might get into the element after pasting (#5455)
+                               // The _moz_dirty attribute might get into the element after pasting (http://dev.ckeditor.com/ticket/5455)
                                var execludeAttrs = { 'data-cke-expando': 1, _moz_dirty: 1 };
 
                                return attrsNum > 0 && ( attrsNum > 2 || !execludeAttrs[ attrs[ 0 ].nodeName ] || ( attrsNum == 2 && !execludeAttrs[ attrs[ 1 ].nodeName ] ) );
@@ -1119,7 +1164,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                        function mergeElements( element, sibling, isNext ) {
                                if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT ) {
                                        // Jumping over bookmark nodes and empty inline elements, e.g. <b><i></i></b>,
-                                       // queuing them to be moved later. (#5567)
+                                       // queuing them to be moved later. (http://dev.ckeditor.com/ticket/5567)
                                        var pendingNodes = [];
 
                                        while ( sibling.data( 'cke-bookmark' ) || sibling.isEmptyInlineRemoveable() ) {
@@ -1149,7 +1194,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                        }
 
                        return function( inlineOnly ) {
-                               // Merge empty links and anchors also. (#5567)
+                               // Merge empty links and anchors also. (http://dev.ckeditor.com/ticket/5567)
                                if ( !( inlineOnly === false || CKEDITOR.dtd.$removeEmpty[ this.getName() ] || this.is( 'a' ) ) ) {
                                        return;
                                }
@@ -1208,7 +1253,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                };
                        } else if ( CKEDITOR.env.ie8Compat && CKEDITOR.env.secure ) {
                                return function( name, value ) {
-                                       // IE8 throws error when setting src attribute to non-ssl value. (#7847)
+                                       // IE8 throws error when setting src attribute to non-ssl value. (http://dev.ckeditor.com/ticket/7847)
                                        if ( name == 'src' && value.match( /^http:\/\// ) ) {
                                                try {
                                                        standard.apply( this, arguments );
@@ -1292,11 +1337,15 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                 */
                removeAttributes: function( attributes ) {
                        if ( CKEDITOR.tools.isArray( attributes ) ) {
-                               for ( var i = 0; i < attributes.length; i++ )
+                               for ( var i = 0; i < attributes.length; i++ ) {
                                        this.removeAttribute( attributes[ i ] );
+                               }
                        } else {
-                               for ( var attr in attributes )
+                               attributes = attributes || this.getAttributes();
+
+                               for ( var attr in attributes ) {
                                        attributes.hasOwnProperty( attr ) && this.removeAttribute( attr );
+                               }
                        }
                },
 
@@ -1442,7 +1491,8 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                body = doc.getBody(),
                                quirks = doc.$.compatMode == 'BackCompat';
 
-                       if ( document.documentElement.getBoundingClientRect ) {
+                       if ( document.documentElement.getBoundingClientRect &&
+                               ( CKEDITOR.env.ie ? CKEDITOR.env.version !== 8 : true ) ) {
                                var box = this.$.getBoundingClientRect(),
                                        $doc = doc.$,
                                        $docElem = $doc.documentElement;
@@ -1451,7 +1501,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                        clientLeft = $docElem.clientLeft || body.$.clientLeft || 0,
                                        needAdjustScrollAndBorders = true;
 
-                               // #3804: getBoundingClientRect() works differently on IE and non-IE
+                               // http://dev.ckeditor.com/ticket/3804: getBoundingClientRect() works differently on IE and non-IE
                                // browsers, regarding scroll positions.
                                //
                                // On IE, the top position of the <html> element is always 0, no matter
@@ -1466,12 +1516,12 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                        needAdjustScrollAndBorders = ( quirks && inBody ) || ( !quirks && inDocElem );
                                }
 
-                               // #12747.
+                               // http://dev.ckeditor.com/ticket/12747.
                                if ( needAdjustScrollAndBorders ) {
                                        var scrollRelativeLeft,
                                                scrollRelativeTop;
 
-                                       // See #12758 to know more about document.(documentElement|body).scroll(Left|Top) in Webkit.
+                                       // See http://dev.ckeditor.com/ticket/12758 to know more about document.(documentElement|body).scroll(Left|Top) in Webkit.
                                        if ( CKEDITOR.env.webkit || ( CKEDITOR.env.ie && CKEDITOR.env.version >= 12 ) ) {
                                                scrollRelativeLeft = body.$.scrollLeft || $docElem.scrollLeft;
                                                scrollRelativeTop = body.$.scrollTop || $docElem.scrollTop;
@@ -1553,7 +1603,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                        parent.$.clientHeight && parent.$.clientHeight < parent.$.scrollHeight;
 
                                // Skip body element, which will report wrong clientHeight when containing
-                               // floated content. (#9523)
+                               // floated content. (http://dev.ckeditor.com/ticket/9523)
                                if ( overflowed && !parent.is( 'body' ) )
                                        this.scrollIntoParent( parent, alignToTop, 1 );
 
@@ -1626,6 +1676,16 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                                return parseInt( element.getComputedStyle( 'margin-' + side ) || 0, 10 ) || 0;
                        }
 
+                       // [WebKit] Reset stored scrollTop value to not break scrollIntoView() method flow.
+                       // Scrolling breaks when range.select() is used right after element.scrollIntoView(). (http://dev.ckeditor.com/ticket/14659)
+                       if ( CKEDITOR.env.webkit ) {
+                               var editor = this.getEditor( false );
+
+                               if ( editor ) {
+                                       editor._.previousScrollTop = null;
+                               }
+                       }
+
                        var win = parent.getWindow();
 
                        var thisPos = screenPos( this, win ),
@@ -1797,7 +1857,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                        this.getParent( true ) && this.$.parentNode.replaceChild( newNode.$, this.$ );
                        newNode.$[ 'data-cke-expando' ] = this.$[ 'data-cke-expando' ];
                        this.$ = newNode.$;
-                       // Bust getName's cache. (#8663)
+                       // Bust getName's cache. (http://dev.ckeditor.com/ticket/8663)
                        delete this.getName;
                },
 
@@ -1905,17 +1965,32 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
                 *              CKEDITOR.replace( element );
                 *              alert( element.getEditor().name ); // 'editor1'
                 *
+                * By default this method considers only original DOM elements upon which the editor
+                * was created. Setting `optimized` parameter to `false` will consider editor editable
+                * and its children.
+                *
+                * @param {Boolean} [optimized=true] If set to `false` it will scan every editor editable.
                 * @returns {CKEDITOR.editor} An editor instance or null if nothing has been found.
                 */
-               getEditor: function() {
+               getEditor: function( optimized ) {
                        var instances = CKEDITOR.instances,
-                               name, instance;
+                               name, instance, editable;
+
+                       optimized = optimized || optimized === undefined;
 
                        for ( name in instances ) {
                                instance = instances[ name ];
 
                                if ( instance.element.equals( this ) && instance.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO )
                                        return instance;
+
+                               if ( !optimized ) {
+                                       editable = instance.editable();
+
+                                       if ( editable && ( editable.equals( this ) || editable.contains( this ) ) ) {
+                                               return instance;
+                                       }
+                               }
                        }
 
                        return null;
@@ -2038,7 +2113,8 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
        }
 
        function getContextualizedSelector( element, selector ) {
-               return '#' + element.$.id + ' ' + selector.split( /,\s*/ ).join( ', #' + element.$.id + ' ' );
+               var id = CKEDITOR.tools.escapeCss( element.$.id );
+               return '#' + id + ' ' + selector.split( /,\s*/ ).join( ', #' + id + ' ' );
        }
 
        var sides = {
@@ -2070,7 +2146,7 @@ CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatab
        function marginAndPaddingSize( type ) {
                var adjustment = 0;
                for ( var i = 0, len = sides[ type ].length; i < len; i++ )
-                       adjustment += parseInt( this.getComputedStyle( sides[ type ][ i ] ) || 0, 10 ) || 0;
+                       adjustment += parseFloat( this.getComputedStyle( sides[ type ][ i ] ) || 0, 10 ) || 0;
                return adjustment;
        }
 
index 1ee551bb62b3561e2f3a585c09133a8b20b72551..dd50f103b50f5de54a9192b1ef48395f17702419 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                // Backward compact.
                root = root || startNode.getDocument().getBody();
 
+               // Assign root value if startNode is null (#424)(https://dev.ckeditor.com/ticket/17028).
+               if ( !e ) {
+                       e = root;
+               }
+
                do {
                        if ( e.type == CKEDITOR.NODE_ELEMENT ) {
                                elements.push( e );
@@ -84,7 +89,7 @@
                                                block = e;
 
                                        if ( pathBlockLimitElements[ elementName ] ) {
-                                               // End level DIV is considered as the block, if no block is available. (#525)
+                                               // End level DIV is considered as the block, if no block is available. (http://dev.ckeditor.com/ticket/525)
                                                // But it must NOT be the root element (checked above).
                                                if ( !block && elementName == 'div' && !checkHasBlock( e ) )
                                                        block = e;
@@ -181,7 +186,9 @@ CKEDITOR.dom.elementPath.prototype = {
         * @returns {CKEDITOR.dom.element} The first matched dom element or `null`.
         */
        contains: function( query, excludeRoot, fromTop ) {
-               var evaluator;
+               var i = 0,
+                       evaluator;
+
                if ( typeof query == 'string' )
                        evaluator = function( node ) {
                                return node.getName() == query;
@@ -203,14 +210,21 @@ CKEDITOR.dom.elementPath.prototype = {
 
                var elements = this.elements,
                        length = elements.length;
-               excludeRoot && length--;
+
+               if ( excludeRoot ) {
+                       if ( !fromTop ) {
+                               length -= 1;
+                       } else {
+                               i += 1;
+                       }
+               }
 
                if ( fromTop ) {
                        elements = Array.prototype.slice.call( elements, 0 );
                        elements.reverse();
                }
 
-               for ( var i = 0; i < length; i++ ) {
+               for ( ; i < length; i++ ) {
                        if ( evaluator( elements[ i ] ) )
                                return elements[ i ];
                }
index 7cc1bd8006bcfd528c328adc9e544a351a4aaf11..8b1193a047fbc0b4aa454aab22d3c2df8ed82751 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 1e1b18022dbac12e04b363834e772922f8bbedc2..9176e332171c446fcc65ec87f2bd8c29be2021ce 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -45,7 +45,7 @@
                 */
                this.forceBrBreak = 0;
 
-               // (#3730).
+               // (http://dev.ckeditor.com/ticket/3730).
                /**
                 * Whether to include `<br>` elements in the enlarged range. Should be
                 * set to `false` when using the iterator in the {@link CKEDITOR#ENTER_BR} mode.
@@ -85,7 +85,7 @@
         */
 
        var beginWhitespaceRegex = /^[\r\n\t ]+$/,
-               // Ignore bookmark nodes.(#3783)
+               // Ignore bookmark nodes.(http://dev.ckeditor.com/ticket/3783)
                bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
                whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
                skipGuard = function( node ) {
                                                }
 
                                                // The range must finish right before the boundary,
-                                               // including possibly skipped empty spaces. (#1603)
+                                               // including possibly skipped empty spaces. (http://dev.ckeditor.com/ticket/1603)
                                                if ( range ) {
                                                        range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
 
                                                        // The found boundary must be set as the next one at this
-                                                       // point. (#1717)
+                                                       // point. (http://dev.ckeditor.com/ticket/1717)
                                                        if ( nodeName != 'br' ) {
                                                                this._.nextNode = currentNode;
                                                        }
                                                        closeRange = 1;
                                                        includeNode = 0;
                                                        isLast = isLast || ( parentNode.equals( lastNode ) );
-                                                       // Make sure range includes bookmarks at the end of the block. (#7359)
+                                                       // Make sure range includes bookmarks at the end of the block. (http://dev.ckeditor.com/ticket/7359)
                                                        range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
                                                        break;
                                                }
                        // Here we are checking in guard function whether current element
                        // reach lastNode(default behaviour) and root node to prevent against
                        // getting out of editor instance root DOM object.
-                       // #12484
+                       // http://dev.ckeditor.com/ticket/12484
                        function guardFunction( node ) {
                                return !( node.equals( lastNode ) || node.equals( rootNode ) );
                        }
                        // Indicate at least one of the range boundaries is inside a preformat block.
                        touchPre,
 
-                       // (#12178)
+                       // (http://dev.ckeditor.com/ticket/12178)
                        // Remember if following situation takes place:
                        // * startAtInnerBoundary: <p>foo[</p>...
                        // * endAtInnerBoundary: ...<p>]bar</p>
                        // Note that we test only if path block exist, because we must properly shrink
                        // range containing table and/or table cells.
                        // Note: When range is collapsed there's no way it can be shrinked.
-                       // By checking if range is collapsed we also prevent #12308.
+                       // By checking if range is collapsed we also prevent http://dev.ckeditor.com/ticket/12308.
                        startPath = range.startPath(),
                        endPath = range.endPath(),
                        startAtInnerBoundary = !range.collapsed && rangeAtInnerBlockBoundary( range, startPath.block ),
                        endAtInnerBoundary = !range.collapsed && rangeAtInnerBlockBoundary( range, endPath.block, 1 );
 
-               // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
+               // Shrink the range to exclude harmful "noises" (http://dev.ckeditor.com/ticket/4087, http://dev.ckeditor.com/ticket/4450, http://dev.ckeditor.com/ticket/5435).
                range.shrink( CKEDITOR.SHRINK_ELEMENT, true );
 
                if ( startAtInnerBoundary )
 
                        // We may have an empty text node at the end of block due to [3770].
                        // If that node is the lastNode, it would cause our logic to leak to the
-                       // next block.(#3887)
+                       // next block.(http://dev.ckeditor.com/ticket/3887)
                        if ( this._.lastNode && this._.lastNode.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( this._.lastNode.getText() ) && this._.lastNode.getParent().isBlockBoundary() ) {
                                var testRange = this.range.clone();
                                testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
index 7818b079d3eb4f8c682ec2834dd4da36947371ea..69b223e68622305d9076211ee6916cfd1dd0b10b 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -200,7 +200,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
                }
 
                // IE8 rename HTML5 nodes by adding `:` at the begging of the tag name when the node is cloned,
-               // so `<figure>` will be `<:figure>` after 'cloneNode'. We need to fix it (#13101).
+               // so `<figure>` will be `<:figure>` after 'cloneNode'. We need to fix it (http://dev.ckeditor.com/ticket/13101).
                function renameNodes( node ) {
                        if ( node.type != CKEDITOR.NODE_ELEMENT && node.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT )
                                return;
@@ -804,7 +804,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
                                } else if ( trimmed.length < originalLength ) {
                                        child.split( originalLength - trimmed.length );
 
-                                       // IE BUG: child.remove() may raise JavaScript errors here. (#81)
+                                       // IE BUG: child.remove() may raise JavaScript errors here. (http://dev.ckeditor.com/ticket/81)
                                        this.$.removeChild( this.$.firstChild );
                                }
                        }
@@ -829,7 +829,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
                                        child.split( trimmed.length );
 
                                        // IE BUG: child.getNext().remove() may raise JavaScript errors here.
-                                       // (#81)
+                                       // (http://dev.ckeditor.com/ticket/81)
                                        this.$.lastChild.parentNode.removeChild( this.$.lastChild );
                                }
                        }
@@ -840,7 +840,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
                        child = this.$.lastChild;
 
                        if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' ) {
-                               // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
+                               // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (http://dev.ckeditor.com/ticket/324).
                                child.parentNode.removeChild( child );
                        }
                }
@@ -874,7 +874,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
                if ( this.type != CKEDITOR.NODE_ELEMENT )
                        element = this.getParent();
 
-               // Prevent Edge crash (#13609, #13919).
+               // Prevent Edge crash (http://dev.ckeditor.com/ticket/13609, http://dev.ckeditor.com/ticket/13919).
                if ( CKEDITOR.env.edge && element && element.is( 'textarea', 'input' ) ) {
                        checkOnlyAttributes = true;
                }
index 0f91eaa1ad324f8003b6676a1ec8a80d6c19ba56..07af314652c9e22d7829fac19a6ae1a5205a46b9 100644 (file)
@@ -1,11 +1,11 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 /**
  * Represents a list of {@link CKEDITOR.dom.node} objects.
- * It's a wrapper for native nodes list.
+ * It is a wrapper for a native nodes list.
  *
  *             var nodeList = CKEDITOR.document.getBody().getChildren();
  *             alert( nodeList.count() ); // number [0;N]
@@ -20,7 +20,7 @@ CKEDITOR.dom.nodeList = function( nativeList ) {
 
 CKEDITOR.dom.nodeList.prototype = {
        /**
-        * Get count of nodes in this list.
+        * Gets the count of nodes in this list.
         *
         * @returns {Number}
         */
@@ -29,7 +29,7 @@ CKEDITOR.dom.nodeList.prototype = {
        },
 
        /**
-        * Get node from the list.
+        * Gets the node from the list.
         *
         * @returns {CKEDITOR.dom.node}
         */
@@ -39,5 +39,16 @@ CKEDITOR.dom.nodeList.prototype = {
 
                var $node = this.$[ index ];
                return $node ? new CKEDITOR.dom.node( $node ) : null;
+       },
+
+       /**
+        * Returns a node list as an array.
+        *
+        * @returns {CKEDITOR.dom.node[]}
+        */
+       toArray: function() {
+               return CKEDITOR.tools.array.map( this.$, function( nativeEl ) {
+                       return new CKEDITOR.dom.node( nativeEl );
+               } );
        }
 };
index b5e8736302e37e30994752caaefe0bba28b135e3..742c24c6586010c06370b67099d12cf8515b4a20 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -204,9 +204,14 @@ CKEDITOR.dom.range = function( root ) {
                // This allows us to not think about startNode == endNode case later on.
                // We do that only when cloning, because in other cases we can safely split this text node
                // and hence we can easily handle this case as many others.
-               if ( isClone && endNode.type == CKEDITOR.NODE_TEXT && startNode.equals( endNode ) ) {
-                       startNode = range.document.createText( startNode.substring( startOffset, endOffset ) );
-                       docFrag.append( startNode );
+
+               // We need to handle situation when selection startNode is type of NODE_ELEMENT (#426).
+               if ( isClone &&
+                       endNode.type == CKEDITOR.NODE_TEXT &&
+                       ( startNode.equals( endNode ) || ( startNode.type === CKEDITOR.NODE_ELEMENT && startNode.getFirst().equals( endNode ) ) ) ) {
+
+                       // Here we should always be inside one text node.
+                       docFrag.append( range.document.createText( endNode.substring( startOffset, endOffset ) ) );
                        return;
                }
 
@@ -214,7 +219,7 @@ CKEDITOR.dom.range = function( root ) {
                // second part. The removal will be handled by the rest of the code.
                if ( endNode.type == CKEDITOR.NODE_TEXT ) {
                        // If Extract or Delete we can split the text node,
-                       // but if Clone (2), then we cannot modify the DOM (#11586) so we mark the text node for cloning.
+                       // but if Clone (2), then we cannot modify the DOM (http://dev.ckeditor.com/ticket/11586) so we mark the text node for cloning.
                        if ( !isClone ) {
                                endNode = endNode.split( endOffset );
                        } else {
@@ -243,7 +248,7 @@ CKEDITOR.dom.range = function( root ) {
                // be handled by the rest of the code .
                if ( startNode.type == CKEDITOR.NODE_TEXT ) {
                        // If Extract or Delete we can split the text node,
-                       // but if Clone (2), then we cannot modify the DOM (#11586) so we mark
+                       // but if Clone (2), then we cannot modify the DOM (http://dev.ckeditor.com/ticket/11586) so we mark
                        // the text node for cloning.
                        if ( !isClone ) {
                                startNode.split( startOffset );
@@ -373,7 +378,7 @@ CKEDITOR.dom.range = function( root ) {
                                // If we don't do that, in next iterations nodes will be appended to wrong parent.
                                //
                                // We can just take first child because the algorithm guarantees
-                               // that this will be the only child on this level. (#13568)
+                               // that this will be the only child on this level. (http://dev.ckeditor.com/ticket/13568)
                                levelParent = levelParent.getChild( 0 );
                        }
                }
@@ -405,7 +410,7 @@ CKEDITOR.dom.range = function( root ) {
 
                                // When Extracting, move the removed node to the docFrag.
                                if ( isExtract ) {
-                                       newParent.append( node );
+                                       newParent.append( node, toStart );
                                }
                        }
 
@@ -574,7 +579,7 @@ CKEDITOR.dom.range = function( root ) {
                        // Tolerant bogus br when checking at the end of block.
                        // Reject any text node unless it's being bookmark
                        // OR it's spaces.
-                       // Reject any element unless it's being invisible empty. (#3883)
+                       // Reject any element unless it's being invisible empty. (http://dev.ckeditor.com/ticket/3883)
                        return !checkStart && isBogus( node ) ||
                                node.type == CKEDITOR.NODE_ELEMENT &&
                                node.is( CKEDITOR.dtd.$removeEmpty );
@@ -1052,7 +1057,7 @@ CKEDITOR.dom.range = function( root ) {
                        }
 
                        // Sometimes the endNode will come right before startNode for collapsed
-                       // ranges. Fix it. (#3780)
+                       // ranges. Fix it. (http://dev.ckeditor.com/ticket/3780)
                        if ( startNode.getPosition( endNode ) & CKEDITOR.POSITION_FOLLOWING )
                                startNode = endNode;
 
@@ -1201,7 +1206,8 @@ CKEDITOR.dom.range = function( root ) {
                /**
                 * Expands the range so that partial units are completely contained.
                 *
-                * @param unit {Number} The unit type to expand with.
+                * @param {Number} unit The unit type to expand with. Use one of following values: {@link CKEDITOR#ENLARGE_BLOCK_CONTENTS},
+                * {@link CKEDITOR#ENLARGE_ELEMENT}, {@link CKEDITOR#ENLARGE_INLINE}, {@link CKEDITOR#ENLARGE_LIST_ITEM_CONTENTS}.
                 * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
                 */
                enlarge: function( unit, excludeBrs ) {
@@ -1323,13 +1329,13 @@ CKEDITOR.dom.range = function( root ) {
 
                                                                isWhiteSpace = /[\s\ufeff]$/.test( siblingText );
                                                        } else {
-                                                               // #12221 (Chrome) plus #11111 (Safari).
+                                                               // http://dev.ckeditor.com/ticket/12221 (Chrome) plus http://dev.ckeditor.com/ticket/11111 (Safari).
                                                                var offsetWidth0 = CKEDITOR.env.webkit ? 1 : 0;
 
                                                                // If this is a visible element.
                                                                // We need to check for the bookmark attribute because IE insists on
-                                                               // rendering the display:none nodes we use for bookmarks. (#3363)
-                                                               // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+                                                               // rendering the display:none nodes we use for bookmarks. (http://dev.ckeditor.com/ticket/3363)
+                                                               // Line-breaks (br) are rendered with zero width, which we don't want to include. (http://dev.ckeditor.com/ticket/7041)
                                                                if ( ( sibling.$.offsetWidth > offsetWidth0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
                                                                        // We'll accept it only if we need
                                                                        // whitespace, and this is an inline
@@ -1398,7 +1404,7 @@ CKEDITOR.dom.range = function( root ) {
 
                                        // Process the end boundary. This is basically the same
                                        // code used for the start boundary, with small changes to
-                                       // make it work in the oposite side (to the right). This
+                                       // make it work in the opposite side (to the right). This
                                        // makes it difficult to reuse the code here. So, fixes to
                                        // the above code are likely to be replicated here.
 
@@ -1481,7 +1487,7 @@ CKEDITOR.dom.range = function( root ) {
                                                        }
                                                }
                                        } else {
-                                               // Get the node right after the boudary to be checked
+                                               // Get the node right after the boundary to be checked
                                                // first.
                                                sibling = container.getChild( offset );
 
@@ -1524,8 +1530,8 @@ CKEDITOR.dom.range = function( root ) {
                                                        } else if ( sibling.type == CKEDITOR.NODE_ELEMENT ) {
                                                                // If this is a visible element.
                                                                // We need to check for the bookmark attribute because IE insists on
-                                                               // rendering the display:none nodes we use for bookmarks. (#3363)
-                                                               // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+                                                               // rendering the display:none nodes we use for bookmarks. (http://dev.ckeditor.com/ticket/3363)
+                                                               // Line-breaks (br) are rendered with zero width, which we don't want to include. (http://dev.ckeditor.com/ticket/7041)
                                                                if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
                                                                        // We'll accept it only if we need
                                                                        // whitespace, and this is an inline
@@ -1616,7 +1622,7 @@ CKEDITOR.dom.range = function( root ) {
                                                boundaryGuard = function( node ) {
                                                        // We should not check contents of non-editable elements. It may happen
                                                        // that inline widget has display:table child which should not block range#enlarge.
-                                                       // When encoutered non-editable element...
+                                                       // When encountered non-editable element...
                                                        if ( node.type == CKEDITOR.NODE_ELEMENT && node.getAttribute( 'contenteditable' ) == 'false' ) {
                                                                if ( inNonEditable ) {
                                                                        // ... in which we already were, reset it (because we're leaving it) and return.
@@ -1638,7 +1644,7 @@ CKEDITOR.dom.range = function( root ) {
                                                                blockBoundary = node;
                                                        return retval;
                                                },
-                                               // Record the encounted 'tailBr' for later use.
+                                               // Record the encountered 'tailBr' for later use.
                                                tailBrGuard = function( node ) {
                                                        var retval = boundaryGuard( node );
                                                        if ( !retval && node.is && node.is( 'br' ) )
@@ -1659,7 +1665,7 @@ CKEDITOR.dom.range = function( root ) {
                                        this.setStartAt( blockBoundary, !blockBoundary.is( 'br' ) && ( !enlargeable && this.checkStartOfBlock() ||
                                                enlargeable && blockBoundary.contains( enlargeable ) ) ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_AFTER_END );
 
-                                       // Avoid enlarging the range further when end boundary spans right after the BR. (#7490)
+                                       // Avoid enlarging the range further when end boundary spans right after the BR. (http://dev.ckeditor.com/ticket/7490)
                                        if ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) {
                                                var theRange = this.clone();
                                                walker = new CKEDITOR.dom.walker( theRange );
@@ -1714,18 +1720,28 @@ CKEDITOR.dom.range = function( root ) {
                },
 
                /**
-                * Descrease the range to make sure that boundaries
-                * always anchor beside text nodes or innermost element.
+                * Decreases the range to make sure that boundaries
+                * always anchor beside text nodes or the innermost element.
                 *
                 * @param {Number} mode The shrinking mode ({@link CKEDITOR#SHRINK_ELEMENT} or {@link CKEDITOR#SHRINK_TEXT}).
                 *
-                * * {@link CKEDITOR#SHRINK_ELEMENT} - Shrink the range boundaries to the edge of the innermost element.
-                * * {@link CKEDITOR#SHRINK_TEXT} - Shrink the range boudaries to anchor by the side of enclosed text
-                *     node, range remains if there's no text nodes on boundaries at all.
-                *
-                * @param {Boolean} selectContents Whether result range anchors at the inner OR outer boundary of the node.
+                * * {@link CKEDITOR#SHRINK_ELEMENT} &ndash; Shrinks the range boundaries to the edge of the innermost element.
+                * * {@link CKEDITOR#SHRINK_TEXT} &ndash; Shrinks the range boundaries to anchor by the side of enclosed text
+                *     node. The range remains if there are no text nodes available on boundaries.
+                *
+                * @param {Boolean} [selectContents=false] Whether the resulting range anchors at the inner OR outer boundary of the node.
+                * @param {Boolean/Object} [options=true] If this parameter is of a Boolean type, it is treated as
+                * `options.shrinkOnBlockBoundary`. This parameter was added in 4.7.0.
+                * @param {Boolean} [options.shrinkOnBlockBoundary=true] Whether the block boundary should be included in
+                * the shrunk range.
+                * @param {Boolean} [options.skipBogus=false] Whether bogus `<br>` elements should be ignored while
+                * `mode` is set to {@link CKEDITOR#SHRINK_TEXT}. This option was added in 4.7.0.
                 */
-               shrink: function( mode, selectContents, shrinkOnBlockBoundary ) {
+               shrink: function( mode, selectContents, options ) {
+                       var shrinkOnBlockBoundary = typeof options === 'boolean' ? options :
+                               ( options && typeof options.shrinkOnBlockBoundary === 'boolean' ? options.shrinkOnBlockBoundary : true ),
+                               skipBogus = options && options.skipBogus;
+
                        // Unable to shrink a collapsed range.
                        if ( !this.collapsed ) {
                                mode = mode || CKEDITOR.SHRINK_TEXT;
@@ -1748,7 +1764,7 @@ CKEDITOR.dom.range = function( root ) {
                                                walkerRange.setStartAfter( startContainer );
                                        else {
                                                // Enlarge the range properly to avoid walker making
-                                               // DOM changes caused by triming the text nodes later.
+                                               // DOM changes caused by trimming the text nodes later.
                                                walkerRange.setStartBefore( startContainer );
                                                moveStart = 0;
                                        }
@@ -1766,7 +1782,8 @@ CKEDITOR.dom.range = function( root ) {
                                }
 
                                var walker = new CKEDITOR.dom.walker( walkerRange ),
-                                       isBookmark = CKEDITOR.dom.walker.bookmark();
+                                       isBookmark = CKEDITOR.dom.walker.bookmark(),
+                                       isBogus = CKEDITOR.dom.walker.bogus();
 
                                walker.evaluator = function( node ) {
                                        return node.type == ( mode == CKEDITOR.SHRINK_ELEMENT ? CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT );
@@ -1774,6 +1791,11 @@ CKEDITOR.dom.range = function( root ) {
 
                                var currentElement;
                                walker.guard = function( node, movingOut ) {
+                                       // Skipping bogus before other cases (http://dev.ckeditor.com/ticket/17010).
+                                       if ( skipBogus && isBogus( node ) ) {
+                                               return true;
+                                       }
+
                                        if ( isBookmark( node ) )
                                                return true;
 
@@ -1815,7 +1837,7 @@ CKEDITOR.dom.range = function( root ) {
 
                /**
                 * Inserts a node at the start of the range. The range will be expanded
-                * the contain the node.
+                * to contain the node.
                 *
                 * @param {CKEDITOR.dom.node} node
                 */
@@ -1842,7 +1864,7 @@ CKEDITOR.dom.range = function( root ) {
                },
 
                /**
-                * Moves the range to given position according to specified node.
+                * Moves the range to a given position according to the specified node.
                 *
                 *              // HTML: <p>Foo <b>bar</b></p>
                 *              range.moveToPosition( elB, CKEDITOR.POSITION_BEFORE_START );
@@ -1850,7 +1872,7 @@ CKEDITOR.dom.range = function( root ) {
                 *
                 * See also {@link #setStartAt} and {@link #setEndAt}.
                 *
-                * @param {CKEDITOR.dom.node} node The node according to which position will be set.
+                * @param {CKEDITOR.dom.node} node The node according to which the position will be set.
                 * @param {Number} position One of {@link CKEDITOR#POSITION_BEFORE_START},
                 * {@link CKEDITOR#POSITION_AFTER_START}, {@link CKEDITOR#POSITION_BEFORE_END},
                 * {@link CKEDITOR#POSITION_AFTER_END}.
@@ -2117,7 +2139,7 @@ CKEDITOR.dom.range = function( root ) {
                        // So even if the initial range was placed before the bogus <br>, after creating the bookmark it
                        // is placed before the bookmark.
                        // Fortunately, getBogus() is able to skip the bookmark so it finds the bogus <br> in this case.
-                       // We remove incorrectly placed one and add a brand new one. (#13001)
+                       // We remove incorrectly placed one and add a brand new one. (http://dev.ckeditor.com/ticket/13001)
                        var bogus = fixedBlock.getBogus();
                        if ( bogus ) {
                                bogus.remove();
@@ -2339,7 +2361,7 @@ CKEDITOR.dom.range = function( root ) {
                                        this.trim( 0, 1 );
                        }
 
-                       // Antecipate the trim() call here, so the walker will not make
+                       // Anticipate the trim() call here, so the walker will not make
                        // changes to the DOM, which would not get reflected into this
                        // range otherwise.
                        this.trim();
@@ -2378,7 +2400,7 @@ CKEDITOR.dom.range = function( root ) {
                                        this.trim( 1, 0 );
                        }
 
-                       // Antecipate the trim() call here, so the walker will not make
+                       // Anticipate the trim() call here, so the walker will not make
                        // changes to the DOM, which would not get reflected into this
                        // range otherwise.
                        this.trim();
@@ -2635,7 +2657,7 @@ CKEDITOR.dom.range = function( root ) {
                getEnclosedNode: function() {
                        var walkerRange = this.clone();
 
-                       // Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
+                       // Optimize and analyze the range to avoid DOM destructive nature of walker. (http://dev.ckeditor.com/ticket/5780)
                        walkerRange.optimize();
                        if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT || walkerRange.endContainer.type != CKEDITOR.NODE_ELEMENT )
                                return null;
@@ -2701,6 +2723,53 @@ CKEDITOR.dom.range = function( root ) {
                 */
                getPreviousEditableNode: getNextEditableNode( 1 ),
 
+               /**
+                * Returns any table element, like `td`, `tbody`, `table` etc. from a given range. The element
+                * is returned only if the range is contained within one table (might be a nested
+                * table, but it cannot be two different tables on the same DOM level).
+                *
+                * @private
+                * @since 4.7
+                * @param {Object} [tableElements] Mapping of element names that should be considered.
+                * @returns {CKEDITOR.dom.element/null}
+                */
+               _getTableElement: function( tableElements ) {
+                       tableElements = tableElements || {
+                               td: 1,
+                               th: 1,
+                               tr: 1,
+                               tbody: 1,
+                               thead: 1,
+                               tfoot: 1,
+                               table: 1
+                       };
+
+                       var start = this.startContainer,
+                               end = this.endContainer,
+                               startTable = start.getAscendant( 'table', true ),
+                               endTable = end.getAscendant( 'table', true );
+
+                       // Super weird edge case in Safari: if there is a table with only one cell inside and that cell
+                       // is selected, then the end boundary of the table is moved into editor's editable.
+                       // That case is also present when selecting the last cell inside nested table.
+                       if ( CKEDITOR.env.safari && startTable && end.equals( this.root ) ) {
+                               return start.getAscendant( tableElements, true );
+                       }
+
+                       if ( this.getEnclosedNode() ) {
+                               return this.getEnclosedNode().getAscendant( tableElements, true );
+                       }
+
+                       // Ensure that selection starts and ends in the same table or one of the table is inside the other.
+                       if ( startTable && endTable && ( startTable.equals( endTable ) || startTable.contains( endTable ) ||
+                               endTable.contains( startTable ) ) ) {
+
+                               return start.getAscendant( tableElements, true );
+                       }
+
+                       return null;
+               },
+
                /**
                 * Scrolls the start of current range into view.
                 */
@@ -2783,9 +2852,112 @@ CKEDITOR.dom.range = function( root ) {
                        }
                        // %REMOVE_END%
                        this.endContainer = endContainer;
+               },
+
+               /**
+                * Looks for elements matching the `query` selector within a range.
+                *
+                * @since 4.5.11
+                * @private
+                * @param {String} query
+                * @param {Boolean} [includeNonEditables=false] Whether elements with `contenteditable` set to `false` should
+                * be included.
+                * @returns {CKEDITOR.dom.element[]}
+                */
+               _find: function( query, includeNonEditables ) {
+                       var ancestor = this.getCommonAncestor(),
+                               boundaries = this.getBoundaryNodes(),
+                               // Contrary to CKEDITOR.dom.element#find we're returning array, that's because NodeList is immutable, and we need
+                               // to do some filtering in returned list.
+                               ret = [],
+                               curItem,
+                               i,
+                               initialMatches,
+                               isStartGood,
+                               isEndGood;
+
+                       if ( ancestor && ancestor.find ) {
+                               initialMatches = ancestor.find( query );
+
+                               for ( i = 0; i < initialMatches.count(); i++ ) {
+                                       curItem = initialMatches.getItem( i );
+
+                                       // Using isReadOnly() method to filterout non editables. It checks isContentEditable including all browser quirks.
+                                       if ( !includeNonEditables && curItem.isReadOnly() ) {
+                                               continue;
+                                       }
+
+                                       // It's not enough to get elements from common ancestor, because it might contain too many matches.
+                                       // We need to ensure that returned items are between boundary points.
+                                       isStartGood = ( curItem.getPosition( boundaries.startNode ) & CKEDITOR.POSITION_FOLLOWING ) || boundaries.startNode.equals( curItem );
+                                       isEndGood = ( curItem.getPosition( boundaries.endNode ) & ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IS_CONTAINED ) ) || boundaries.endNode.equals( curItem );
+
+                                       if ( isStartGood && isEndGood ) {
+                                               ret.push( curItem );
+                                       }
+                               }
+                       }
+
+                       return ret;
                }
        };
 
+       /**
+        * Merges every subsequent range in given set, returning a smaller array of ranges.
+        *
+        * Note that each range in the returned value will be enlarged with `CKEDITOR.ENLARGE_ELEMENT` value.
+        *
+        * @since 4.7.0
+        * @static
+        * @param {CKEDITOR.dom.range[]} ranges
+        * @returns {CKEDITOR.dom.range[]} Set of merged ranges.
+        * @member CKEDITOR.dom.range
+        */
+       CKEDITOR.dom.range.mergeRanges = function( ranges ) {
+               return CKEDITOR.tools.array.reduce( ranges, function( ret, rng ) {
+                       // Last range ATM.
+                       var lastRange = ret[ ret.length - 1 ],
+                               isContinuation = false;
+
+                       // Make a clone, we don't want to modify input.
+                       rng = rng.clone();
+                       rng.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+
+                       if ( lastRange ) {
+                               // The trick is to create a range spanning the gap between the two ranges. Then iterate over
+                               // each node found in this gap. If it contains anything other than whitespace, then it means it
+                               // is not a continuation.
+                               var gapRange = new CKEDITOR.dom.range( rng.root ),
+                                       walker = new CKEDITOR.dom.walker( gapRange ),
+                                       isWhitespace = CKEDITOR.dom.walker.whitespaces(),
+                                       nodeInBetween;
+
+                               gapRange.setStart( lastRange.endContainer, lastRange.endOffset );
+                               gapRange.setEnd( rng.startContainer, rng.startOffset );
+
+                               nodeInBetween = walker.next();
+
+                               while ( isWhitespace( nodeInBetween ) || rng.endContainer.equals( nodeInBetween ) ) {
+                                       // We don't care about whitespaces, and range container. Also we skip the endContainer,
+                                       // as it will also be provided by the iterator (as it visits it's opening tag).
+                                       nodeInBetween = walker.next();
+                               }
+
+                               // Simply, if anything has been found there's a content in between the two.
+                               isContinuation = !nodeInBetween;
+                       }
+
+                       if ( isContinuation ) {
+                               // If last range ends, where the current range starts, then let's merge it.
+                               lastRange.setEnd( rng.endContainer, rng.endOffset );
+                       } else {
+                               // In other case just push cur range into the stack.
+                               ret.push( rng );
+                       }
+
+                       return ret;
+               }, [] );
+       };
 
 } )();
 
@@ -2861,9 +3033,32 @@ CKEDITOR.POSITION_BEFORE_START = 3;
  */
 CKEDITOR.POSITION_AFTER_END = 4;
 
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=1]
+ */
 CKEDITOR.ENLARGE_ELEMENT = 1;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=2]
+ */
 CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=3]
+ */
 CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;
+
+/**
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=4]
+ */
 CKEDITOR.ENLARGE_INLINE = 4;
 
 // Check boundary types.
index d02fc033cdf463bd6f891b37844ffac457d68910..15ccb88882cc74cbfb21b3b827ca6469f8382ed0 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
        };
 
        // Update the specified range which has been mangled by previous insertion of
-       // range bookmark nodes.(#3256)
+       // range bookmark nodes.(http://dev.ckeditor.com/ticket/3256)
        function updateDirtyRange( bookmark, dirtyRange, checkEnd ) {
                var serializable = bookmark.serializable,
                        container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
index c31325900e4f7fe5efd0f9fd1433eff27b7406e6..e77a3d95846aba99530ce4e1ff899a1120a42d74 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -106,7 +106,7 @@ CKEDITOR.tools.extend( CKEDITOR.dom.text.prototype, {
                                retval.insertAfter( this );
                        } else {
                                // IE BUG: IE8+ does not update the childNodes array in DOM after splitText(),
-                               // we need to make some DOM changes to make it update. (#3436)
+                               // we need to make some DOM changes to make it update. (http://dev.ckeditor.com/ticket/3436)
                                var workaround = doc.createText( '' );
                                workaround.insertAfter( retval );
                                workaround.remove();
index 746b40678d21dd3e8bab33fda0b21edc8298407a..86659096309ec09159969a4eb0b907772c773aeb 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
         */
        CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames ) {
                // Whether element is in normal page flow. Floated or positioned elements are out of page flow.
-               // Don't consider floated or positioned formatting as block boundary, fall back to dtd check in that case. (#6297)
+               // Don't consider floated or positioned formatting as block boundary, fall back to dtd check in that case. (http://dev.ckeditor.com/ticket/6297)
                var inPageFlow = this.getComputedStyle( 'float' ) == 'none' && !( this.getComputedStyle( 'position' ) in outOfFlowPositions );
 
                if ( inPageFlow && blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] )
                return function( node ) {
                        var isWhitespace;
                        if ( node && node.type == CKEDITOR.NODE_TEXT ) {
-                               // Whitespace, as well as the Filling Char Sequence text node used in Webkit. (#9384, #13816)
+                               // Whitespace, as well as the Filling Char Sequence text node used in Webkit. (http://dev.ckeditor.com/ticket/9384, http://dev.ckeditor.com/ticket/13816)
                                isWhitespace = !CKEDITOR.tools.trim( node.getText() ) ||
                                        CKEDITOR.env.webkit && node.getText() == CKEDITOR.dom.selection.FILLING_CHAR_SEQUENCE;
                        }
         */
        CKEDITOR.dom.walker.invisible = function( isReject ) {
                var whitespace = CKEDITOR.dom.walker.whitespaces(),
-                       // #12221 (Chrome) plus #11111 (Safari).
+                       // http://dev.ckeditor.com/ticket/12221 (Chrome) plus http://dev.ckeditor.com/ticket/11111 (Safari).
                        offsetWidth0 = CKEDITOR.env.webkit ? 1 : 0;
 
                return function( node ) {
                                // Nodes that take no spaces in wysiwyg:
                                // 1. White-spaces but not including NBSP.
                                // 2. Empty inline elements, e.g. <b></b>.
-                               // 3. <br> elements (bogus, surrounded by text) (#12423).
+                               // 3. <br> elements (bogus, surrounded by text) (http://dev.ckeditor.com/ticket/12423).
                                invisible = node.$.offsetWidth <= offsetWidth0;
                        }
 
         * @returns {CKEDITOR.dom.node/Boolean} Bogus node or `false`.
         */
        CKEDITOR.dom.element.prototype.getBogus = function() {
-               // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
+               // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (http://dev.ckeditor.com/ticket/7070).
                var tail = this;
                do {
                        tail = tail.getPreviousSourceNode();
index edfeb84e4ce60247eb76a3ecae7773e85f22db8d..ceeaeff33ad8afce125af39f19b41128063cb1dd 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index d6dc5a6775b66751b1cf1afc4758c09a6fd6f912..6059d48464ecab4177ba6f3e96fe5964cf3e3d96 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index b9b0270b1443b52a0b6424127022eebad3b2ba28..6b3fa9f7d7e64c4454d9a02e3e8fb3009b912bf3 100644 (file)
@@ -1,9 +1,12 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 ( function() {
+       var isNotWhitespace, isNotBookmark, isEmpty, isBogus, emptyParagraphRegexp,
+               insert, fixTableAfterContentsDeletion, fixListAfterContentsDelete, getHtmlFromRangeHelpers, extractHtmlFromRangeHelpers;
+
        /**
         * Editable class which provides all editing related activities by
         * the `contenteditable` element, dynamically get attached to editor instance.
                                        }
                                }
 
-                               // [IE] Use instead "setActive" method to focus the editable if it belongs to
-                               // the host page document, to avoid bringing an unexpected scroll.
+                               // [Edge] Starting from EdgeHTML 14.14393, it does not support `setActive`. We need to use focus which
+                               // causes unexpected scroll. Store scrollTop value so it can be restored after focusing editor.
+                               // Scroll only happens if the editor is focused for the first time. (http://dev.ckeditor.com/ticket/14825)
+                               if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 && !this.hasFocus && this.getDocument().equals( CKEDITOR.document ) ) {
+                                       this.editor._.previousScrollTop = this.$.scrollTop;
+                               }
+
+                               // [IE] Use instead "setActive" method to focus the editable if it belongs to the host page document,
+                               // to avoid bringing an unexpected scroll.
                                try {
-                                       this.$[ CKEDITOR.env.ie && this.getDocument().equals( CKEDITOR.document ) ? 'setActive' : 'focus' ]();
+                                       if ( CKEDITOR.env.ie && !( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) && this.getDocument().equals( CKEDITOR.document ) ) {
+                                               this.$.setActive();
+                                       } else {
+                                               // We have no control over exactly what happens when the native `focus` method is called,
+                                               // so save the scroll position and restore it later.
+                                               if ( CKEDITOR.env.chrome ) {
+                                                       var scrollPos = this.$.scrollTop;
+                                                       this.$.focus();
+                                                       this.$.scrollTop = scrollPos;
+                                               } else {
+                                                       this.$.focus();
+                                               }
+                                       }
                                } catch ( e ) {
                                        // IE throws unspecified error when focusing editable after closing dialog opened on nested editable.
                                        if ( !CKEDITOR.env.ie )
                                                throw e;
                                }
 
-                               // Remedy if Safari doens't applies focus properly. (#279)
+                               // Remedy if Safari doens't applies focus properly. (http://dev.ckeditor.com/ticket/279)
                                if ( CKEDITOR.env.safari && !this.isInline() ) {
                                        active = CKEDITOR.document.getActive();
                                        if ( !active.equals( this.getWindow().getFrame() ) )
 
                                        // The "focusin/focusout" events bubbled, e.g. If there are elements with layout
                                        // they fire this event when clicking in to edit them but it must be ignored
-                                       // to allow edit their contents. (#4682)
+                                       // to allow edit their contents. (http://dev.ckeditor.com/ticket/4682)
                                        fn = isNotBubbling( fn, this );
                                        args[ 0 ] = name;
                                        args[ 1 ] = fn;
                         * @param {String} text
                         */
                        insertText: function( text ) {
-                               // Focus the editor before calling transformPlainTextToHtml. (#12726)
+                               // Focus the editor before calling transformPlainTextToHtml. (http://dev.ckeditor.com/ticket/12726)
                                this.editor.focus();
                                this.insertHtml( this.transformPlainTextToHtml( text ), 'text' );
                        },
                        insertElement: function( element, range ) {
                                var editor = this.editor;
 
-                               // Prepare for the insertion. For example - focus editor (#11848).
+                               // Prepare for the insertion. For example - focus editor (http://dev.ckeditor.com/ticket/11848).
                                editor.focus();
                                editor.fire( 'saveSnapshot' );
 
                                        range = selection.getRanges()[ 0 ];
                                }
 
-                               // Insert element into first range only and ignore the rest (#11183).
+                               // Insert element into first range only and ignore the rest (http://dev.ckeditor.com/ticket/11183).
                                if ( this.insertElementIntoRange( element, range ) ) {
                                        range.moveToPosition( element, CKEDITOR.POSITION_AFTER_END );
 
                                        // If we're inserting a block element, the new cursor position must be
-                                       // optimized. (#3100,#5436,#8950)
+                                       // optimized. (http://dev.ckeditor.com/ticket/3100,http://dev.ckeditor.com/ticket/5436,http://dev.ckeditor.com/ticket/8950)
                                        if ( isBlock ) {
                                                // Find next, meaningful element.
                                                var next = element.getNext( function( node ) {
                                // Remove the original contents, merge split nodes.
                                range.deleteContents( 1 );
 
-                               // If range is placed in inermediate element (not td or th), we need to do three things:
-                               // * fill emptied <td/th>s with if browser needs them,
-                               // * remove empty text nodes so IE8 won't crash (http://dev.ckeditor.com/ticket/11183#comment:8),
-                               // * fix structure and move range into the <td/th> element.
-                               if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.is( { tr: 1, table: 1, tbody: 1, thead: 1, tfoot: 1 } ) )
-                                       fixTableAfterContentsDeletion( range );
+                               if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT ) {
+                                       // If range is placed in intermediate element (not td or th), we need to do three things:
+                                       // * fill emptied <td/th>s with if browser needs them,
+                                       // * remove empty text nodes so IE8 won't crash
+                                       // (http://dev.ckeditor.com/ticket/11183#comment:8),
+                                       // * fix structure and move range into the <td/th> element.
+                                       if ( range.startContainer.is( { tr: 1, table: 1, tbody: 1, thead: 1, tfoot: 1 } ) ) {
+                                               fixTableAfterContentsDeletion( range );
+                                       } else if ( range.startContainer.is( CKEDITOR.dtd.$list ) ) {
+                                               // Similarly there's a need for lists.
+                                               fixListAfterContentsDelete( range );
+                                       }
+                               }
 
                                // If we're inserting a block at dtd-violated position, split
                                // the parent blocks until we reach blockLimit.
                                                        range.splitElement( current );
 
                                                // If we're in an empty block which indicate a new paragraph,
-                                               // simply replace it with the inserting block.(#3664)
+                                               // simply replace it with the inserting block.(http://dev.ckeditor.com/ticket/3664)
                                                else if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) {
                                                        range.setStartBefore( current );
                                                        range.collapse( true );
                                                range.checkEndOfBlock() &&
                                                path.block &&
                                                !range.root.equals( path.block ) &&
-                                               // Do not remove a block with bookmarks. (#13465)
+                                               // Do not remove a block with bookmarks. (http://dev.ckeditor.com/ticket/13465)
                                                !hasBookmarks( path.block ) ) {
                                                range.moveToPosition( path.block, CKEDITOR.POSITION_BEFORE_START );
                                                path.block.remove();
 
                                        // IE considers control-type element as separate
                                        // focus host when selected, avoid destroying the
-                                       // selection in such case. (#5812) (#8949)
+                                       // selection in such case. (http://dev.ckeditor.com/ticket/5812) (http://dev.ckeditor.com/ticket/8949)
                                        if ( ieSel && ieSel.type == 'Control' )
                                                return;
 
                                        this.hasFocus = true;
                                }, null, null, -1 );
 
+                               if ( CKEDITOR.env.webkit ) {
+                                       // [WebKit] Save scrollTop value so it can be used when restoring locked selection. (http://dev.ckeditor.com/ticket/14659)
+                                       this.on( 'scroll', function() {
+                                               editor._.previousScrollTop = editor.editable().$.scrollTop;
+                                       }, null, null, -1 );
+                               }
+
+                               // [Edge] This is the other part of the workaround for Edge which restores saved
+                               // scrollTop value and removes listener which is not needed anymore. (http://dev.ckeditor.com/ticket/14825)
+                               if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) {
+
+                                       var fixScrollOnFocus = function() {
+                                               var editable = editor.editable();
+
+                                               if ( editor._.previousScrollTop != null && editable.getDocument().equals( CKEDITOR.document ) ) {
+                                                       editable.$.scrollTop = editor._.previousScrollTop;
+                                                       editor._.previousScrollTop = null;
+                                                       this.removeListener( 'scroll', fixScrollOnFocus );
+                                               }
+                                       };
+
+                                       this.on( 'scroll', fixScrollOnFocus );
+                               }
+
                                // Register to focus manager.
                                editor.focusManager.add( this );
 
                                // Create the content stylesheet for this document.
                                var styles = CKEDITOR.getCss();
                                if ( styles ) {
-                                       var head = doc.getHead();
-                                       if ( !head.getCustomData( 'stylesheet' ) ) {
+                                       var head = doc.getHead(),
+                                               stylesElement = head.getCustomData( 'stylesheet' );
+
+                                       if ( !stylesElement ) {
                                                var sheet = doc.appendStyleText( styles );
                                                sheet = new CKEDITOR.dom.element( sheet.ownerNode || sheet.owningElement );
                                                head.setCustomData( 'stylesheet', sheet );
                                                sheet.data( 'cke-temp', 1 );
+                                       } else if ( styles != stylesElement.getText() ) {
+                                               CKEDITOR.env.ie && CKEDITOR.env.version < 9 ? stylesElement.$.styleSheet.cssText = styles : stylesElement.setText( styles );
                                        }
                                }
 
                                // Pass this configuration to styles system.
                                this.setCustomData( 'cke_includeReadonly', !editor.config.disableReadonlyStyling );
 
-                               // Prevent the browser opening read-only links. (#6032 & #10912)
+                               // Prevent the browser opening read-only links. (http://dev.ckeditor.com/ticket/6032 & http://dev.ckeditor.com/ticket/10912)
                                this.attachListener( this, 'click', function( evt ) {
                                        evt = evt.data;
 
                                var backspaceOrDelete = { 8: 1, 46: 1 };
 
                                // Override keystrokes which should have deletion behavior
-                               //  on fully selected element . (#4047) (#7645)
+                               //  on fully selected element . (http://dev.ckeditor.com/ticket/4047) (http://dev.ckeditor.com/ticket/7645)
                                this.attachListener( editor, 'key', function( evt ) {
                                        if ( editor.readOnly )
                                                return true;
                                        var keyCode = evt.data.domEvent.getKey(),
                                                isHandled;
 
+                                       // Prevent of reading path of empty range (http://dev.ckeditor.com/ticket/13096, #457).
+                                       var sel = editor.getSelection();
+                                       if ( sel.getRanges().length === 0 ) {
+                                               return;
+                                       }
+
                                        // Backspace OR Delete.
                                        if ( keyCode in backspaceOrDelete ) {
-                                               var sel = editor.getSelection(),
-                                                       selected,
+                                               var selected,
                                                        range = sel.getRanges()[ 0 ],
                                                        path = range.startPath(),
                                                        block,
                                                        next,
                                                        rtl = keyCode == 8;
 
+
                                                if (
-                                                               // [IE<11] Remove selected image/anchor/etc here to avoid going back in history. (#10055)
+                                                               // [IE<11] Remove selected image/anchor/etc here to avoid going back in history. (http://dev.ckeditor.com/ticket/10055)
                                                                ( CKEDITOR.env.ie && CKEDITOR.env.version < 11 && ( selected = sel.getSelectedElement() ) ) ||
-                                                               // Remove the entire list/table on fully selected content. (#7645)
+                                                               // Remove the entire list/table on fully selected content. (http://dev.ckeditor.com/ticket/7645)
                                                                ( selected = getSelectedTableList( sel ) ) ) {
                                                        // Make undo snapshot.
                                                        editor.fire( 'saveSnapshot' );
 
                                                        // Delete any element that 'hasLayout' (e.g. hr,table) in IE8 will
-                                                       // break up the selection, safely manage it here. (#4795)
+                                                       // break up the selection, safely manage it here. (http://dev.ckeditor.com/ticket/4795)
                                                        range.moveToPosition( selected, CKEDITOR.POSITION_BEFORE_START );
                                                        // Remove the control manually.
                                                        selected.remove();
 
                                                        isHandled = 1;
                                                } else if ( range.collapsed ) {
-                                                       // Handle the following special cases: (#6217)
+                                                       // Handle the following special cases: (http://dev.ckeditor.com/ticket/6217)
                                                        // 1. Del/Backspace key before/after table;
                                                        // 2. Backspace Key after start of table.
                                                        if ( ( block = path.block ) &&
                                        editor.fire( 'doubleclick', data );
                                } );
 
-                               // Prevent automatic submission in IE #6336
+                               // Prevent automatic submission in IE http://dev.ckeditor.com/ticket/6336
                                CKEDITOR.env.ie && this.attachListener( this, 'click', blockInputClick );
 
-                               // Gecko/Webkit need some help when selecting control type elements. (#3448)
-                               // We apply same behavior for IE Edge. (#13386)
+                               // Gecko/Webkit need some help when selecting control type elements. (http://dev.ckeditor.com/ticket/3448)
+                               // We apply same behavior for IE Edge. (http://dev.ckeditor.com/ticket/13386)
                                if ( !CKEDITOR.env.ie || CKEDITOR.env.edge ) {
                                        this.attachListener( this, 'mousedown', function( ev ) {
                                                var control = ev.data.getTarget();
-                                               // #11727. Note: htmlDP assures that input/textarea/select have contenteditable=false
+                                               // http://dev.ckeditor.com/ticket/11727. Note: htmlDP assures that input/textarea/select have contenteditable=false
                                                // attributes. However, they also have data-cke-editable attribute, so isReadOnly() returns false,
                                                // and therefore those elements are correctly selected by this code.
                                                if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) && !control.isReadOnly() ) {
                                                        editor.getSelection().selectElement( control );
 
-                                                       // Prevent focus from stealing from the editable. (#9515)
+                                                       // Prevent focus from stealing from the editable. (http://dev.ckeditor.com/ticket/9515)
                                                        if ( control.is( 'input', 'textarea', 'select' ) )
                                                                ev.data.preventDefault();
                                                }
                                        } );
                                }
 
-                               // For some reason, after click event is done, IE Edge loses focus on the selected element. (#13386)
+                               // For some reason, after click event is done, IE Edge loses focus on the selected element. (http://dev.ckeditor.com/ticket/13386)
                                if ( CKEDITOR.env.edge ) {
                                        this.attachListener( this, 'mouseup', function( ev ) {
                                                var selectedElement = ev.data.getTarget();
                                }
 
                                // Prevent right click from selecting an empty block even
-                               // when selection is anchored inside it. (#5845)
+                               // when selection is anchored inside it. (http://dev.ckeditor.com/ticket/5845)
                                if ( CKEDITOR.env.gecko ) {
                                        this.attachListener( this, 'mouseup', function( ev ) {
                                                if ( ev.data.$.button == 2 ) {
                                }
 
                                // Prevent Webkit/Blink from going rogue when joining
-                               // blocks on BACKSPACE/DEL (#11861,#9998).
+                               // blocks on BACKSPACE/DEL (http://dev.ckeditor.com/ticket/11861,http://dev.ckeditor.com/ticket/9998).
                                if ( CKEDITOR.env.webkit ) {
                                        this.attachListener( editor, 'key', function( evt ) {
                                                if ( editor.readOnly ) {
                                                if ( !( key in backspaceOrDelete ) )
                                                        return;
 
+                                               // Prevent of reading path of empty range (http://dev.ckeditor.com/ticket/13096, #457).
+                                               var sel = editor.getSelection();
+                                               if ( sel.getRanges().length === 0 ) {
+                                                       return;
+                                               }
+
                                                var backspace = key == 8,
-                                                       range = editor.getSelection().getRanges()[ 0 ],
+                                                       range = sel.getRanges()[ 0 ],
                                                        startPath = range.startPath();
 
                                                if ( range.collapsed ) {
                                                                return;
                                                }
 
-                                               // Scroll to the new position of the caret (#11960).
+                                               // Scroll to the new position of the caret (http://dev.ckeditor.com/ticket/11960).
                                                editor.getSelection().scrollIntoView();
                                                editor.fire( 'saveSnapshot' );
 
         *
         * @method editable
         * @member CKEDITOR.editor
-        * @param {CKEDITOR.dom.element/CKEDITOR.editable} elementOrEditable The
+        * @param {CKEDITOR.dom.element/CKEDITOR.editable} [elementOrEditable] The
         * DOM element to become the editable or a {@link CKEDITOR.editable} object.
+        * @returns {CKEDITOR.dom.element/null} The editor's editable element, or `null` if not available.
         */
        CKEDITOR.editor.prototype.editable = function( element ) {
                var editable = this._.editable;
        CKEDITOR.on( 'instanceLoaded', function( evt ) {
                var editor = evt.editor;
 
-               // and flag that the element was locked by our code so it'll be editable by the editor functions (#6046).
+               // and flag that the element was locked by our code so it'll be editable by the editor functions (http://dev.ckeditor.com/ticket/6046).
                editor.on( 'insertElement', function( evt ) {
                        var element = evt.data;
                        if ( element.type == CKEDITOR.NODE_ELEMENT && ( element.is( 'input' ) || element.is( 'textarea' ) ) ) {
                        if ( editor.readOnly )
                                return;
 
-                       // Auto fixing on some document structure weakness to enhance usabilities. (#3190 and #3189)
+                       // Auto fixing on some document structure weakness to enhance usabilities. (http://dev.ckeditor.com/ticket/3190 and http://dev.ckeditor.com/ticket/3189)
                        var sel = editor.getSelection();
-                       // Do it only when selection is not locked. (#8222)
+                       // Do it only when selection is not locked. (http://dev.ckeditor.com/ticket/8222)
                        if ( sel && !sel.isLocked ) {
                                var isDirty = editor.checkDirty();
 
                } );
        } );
 
-       // #9222: Show text cursor in Gecko.
+       // http://dev.ckeditor.com/ticket/9222: Show text cursor in Gecko.
        // Show default cursor over control elements on all non-IEs.
        CKEDITOR.addCss( '.cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}' );
 
        //
        //
 
-       var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
-               isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),
-               isEmpty = CKEDITOR.dom.walker.empty(),
-               isBogus = CKEDITOR.dom.walker.bogus(),
-               // Matching an empty paragraph at the end of document.
-               emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
+       isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
+       isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),
+       isEmpty = CKEDITOR.dom.walker.empty(),
+       isBogus = CKEDITOR.dom.walker.bogus(),
+       // Matching an empty paragraph at the end of document.
+       emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
 
-       // Auto-fixing block-less content by wrapping paragraph (#3190), prevent
-       // non-exitable-block by padding extra br.(#3189)
+       // Auto-fixing block-less content by wrapping paragraph (http://dev.ckeditor.com/ticket/3190), prevent
+       // non-exitable-block by padding extra br.(http://dev.ckeditor.com/ticket/3189)
        // Returns truly value when dom was changed, falsy otherwise.
        function fixDom( evt ) {
                var editor = evt.editor,
                }
 
                // When we're in block enter mode, a new paragraph will be established
-               // to encapsulate inline contents inside editable. (#3657)
+               // to encapsulate inline contents inside editable. (http://dev.ckeditor.com/ticket/3657)
                // Don't autoparagraph if browser (namely - IE) incorrectly anchored selection
                // inside non-editable content. This happens e.g. if non-editable block is the only
                // content of editable.
 
                                selectionUpdateNeeded = 1;
 
-                               // Cancel this selection change in favor of the next (correct). (#6811)
+                               // Cancel this selection change in favor of the next (correct). (http://dev.ckeditor.com/ticket/6811)
                                evt.cancel();
                        }
                }
                if ( selection.isFake )
                        return 0;
 
-               // Ensure bogus br could help to move cursor (out of styles) to the end of block. (#7041)
+               // Ensure bogus br could help to move cursor (out of styles) to the end of block. (http://dev.ckeditor.com/ticket/7041)
                var pathBlock = path.block || path.blockLimit,
                        lastNode = pathBlock && pathBlock.getLast( isNotEmpty );
 
                // Check some specialities of the current path block:
-               // 1. It is really displayed as block; (#7221)
-               // 2. It doesn't end with one inner block; (#7467)
+               // 1. It is really displayed as block; (http://dev.ckeditor.com/ticket/7221)
+               // 2. It doesn't end with one inner block; (http://dev.ckeditor.com/ticket/7467)
                // 3. It doesn't have bogus br yet.
                if (
                        pathBlock && pathBlock.isBlockBoundary() &&
        // Whether in given context (pathBlock, pathBlockLimit and editor settings)
        // editor should automatically wrap inline contents with blocks.
        function shouldAutoParagraph( editor, pathBlock, pathBlockLimit ) {
-               // Check whether pathBlock equals pathBlockLimit to support nested editable (#12162).
+               // Check whether pathBlock equals pathBlockLimit to support nested editable (http://dev.ckeditor.com/ticket/12162).
                return editor.config.autoParagraph !== false &&
                        editor.activeEnterMode != CKEDITOR.ENTER_BR &&
                        (
        //
        // Functions related to insertXXX methods
        //
-       var insert = ( function() {
+       insert = ( function() {
                'use strict';
 
                var DTD = CKEDITOR.dtd;
 
                        // Select range and stop execution.
                        // If data has been totally emptied after the filtering,
-                       // any insertion is pointless (#10339).
+                       // any insertion is pointless (http://dev.ckeditor.com/ticket/10339).
                        if ( data && processDataForInsertion( that, data ) ) {
                                // DATA INSERTION
                                insertDataIntoRange( that );
                                        nodeName = node.getName();
 
                                        // Extract only the list items, when insertion happens
-                                       // inside of a list, reads as rearrange list items. (#7957)
+                                       // inside of a list, reads as rearrange list items. (http://dev.ckeditor.com/ticket/7957)
                                        if ( insideOfList && nodeName in CKEDITOR.dtd.$list ) {
                                                nodesData = nodesData.concat( extractNodesData( node, that ) );
                                                continue;
                        }
 
                        // Don't use String.replace because it fails in IE7 if special replacement
-                       // characters ($$, $&, etc.) are in data (#10367).
+                       // characters ($$, $&, etc.) are in data (http://dev.ckeditor.com/ticket/10367).
                        return wrapper.getOuterHtml().split( '{cke-peak}' ).join( data );
                }
 
        // 1. Fixes a range which is a result of deleteContents() and is placed in an intermediate element (see dtd.$intermediate),
        // inside a table. A goal is to find a closest <td> or <th> element and when this fails, recreate the structure of the table.
        // 2. Fixes empty cells by appending bogus <br>s or deleting empty text nodes in IE<=8 case.
-       var fixTableAfterContentsDeletion = ( function() {
+       fixTableAfterContentsDeletion = ( function() {
                // Creates an element walker which can only "go deeper". It won't
                // move out from any element. Therefore it can be used to find <td>x</td> in cases like:
                // <table><tbody><tr><td>x</td></tr></tbody>^<tfoot>...
                };
        } )();
 
+       fixListAfterContentsDelete = ( function() {
+               // Creates an element walker which operates only within lists.
+               function getFixListSelectionWalker( testRange ) {
+                       var walker = new CKEDITOR.dom.walker( testRange );
+                       walker.guard = function( node, isMovingOut ) {
+                               if ( isMovingOut )
+                                       return false;
+                               if ( node.type == CKEDITOR.NODE_ELEMENT )
+                                       return node.is( CKEDITOR.dtd.$list ) || node.is( CKEDITOR.dtd.$listItem );
+                       };
+                       walker.evaluator = function( node ) {
+                               return node.type == CKEDITOR.NODE_ELEMENT && node.is( CKEDITOR.dtd.$listItem );
+                       };
+
+                       return walker;
+               }
+
+               return function( range ) {
+                       var container = range.startContainer,
+                               appendToStart = false,
+                               testRange,
+                               deeperSibling;
+
+                       // Look left.
+                       testRange = range.clone();
+                       testRange.setStart( container, 0 );
+                       deeperSibling = getFixListSelectionWalker( testRange ).lastBackward();
+
+                       // If left is empty, look right.
+                       if ( !deeperSibling ) {
+                               testRange = range.clone();
+                               testRange.setEndAt( container, CKEDITOR.POSITION_BEFORE_END );
+                               deeperSibling = getFixListSelectionWalker( testRange ).lastForward();
+                               appendToStart = true;
+                       }
+
+                       // If there's no deeper nested element in both direction - container is empty - we'll use it then.
+                       if ( !deeperSibling )
+                               deeperSibling = container;
+
+                       // We found a list what means that it's empty - remove it completely.
+                       if ( deeperSibling.is( CKEDITOR.dtd.$list ) ) {
+                               range.setStartAt( deeperSibling, CKEDITOR.POSITION_BEFORE_START );
+                               range.collapse( true );
+                               deeperSibling.remove();
+                               return;
+                       }
+
+                       // To avoid setting selection after bogus, remove it from the target list item.
+                       // We can safely do that, because we'll insert element into that cell.
+                       var bogus = deeperSibling.getBogus();
+                       if ( bogus )
+                               bogus.remove();
+
+                       range.moveToPosition( deeperSibling, appendToStart ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_END );
+                       range.select();
+               };
+       } )();
+
        function mergeBlocksCollapsedSelection( editor, range, backspace, startPath ) {
                var startBlock = startPath.block;
 
                if ( ( bogus = startBlock.getBogus() ) )
                        bogus.remove();
 
-               // Changing end container to element from text node (#12503).
+               // Changing end container to element from text node (http://dev.ckeditor.com/ticket/12503).
                range.enlarge( CKEDITOR.ENLARGE_INLINE );
 
                // Delete range contents. Do NOT merge. Merging is weird.
                range = editor.getSelection().getRanges()[ 0 ];
                range.collapse( 1 );
 
-               // Optimizing range containers from text nodes to elements (#12503).
+               // Optimizing range containers from text nodes to elements (http://dev.ckeditor.com/ticket/12503).
                range.optimize();
                if ( range.startContainer.getHtml() === '' ) {
                        range.startContainer.appendBogus();
        //
        // Helpers for editable.getHtmlFromRange.
        //
-       var getHtmlFromRangeHelpers = {
+       getHtmlFromRangeHelpers = {
                eol: {
                        detect: function( that, editable ) {
                                var range = that.range,
        //
        // Helpers for editable.extractHtmlFromRange.
        //
-       var extractHtmlFromRangeHelpers = ( function() {
+       extractHtmlFromRangeHelpers = ( function() {
                function optimizeBookmarkNode( node, toStart ) {
                        var parent = node.getParent();
 
                        while ( ( next = endBookmark.getNext() ) ) {
                                next.insertAfter( startBookmark );
 
-                               // Update startBookmark after insertion to avoid the reversal of nodes (#13449).
+                               // Update startBookmark after insertion to avoid the reversal of nodes (http://dev.ckeditor.com/ticket/13449).
                                startBookmark = next;
                        }
 
 
                                walker.guard = function( node, leaving ) {
                                        // Guard may be executed on some node boundaries multiple times,
-                                       // what results in creating more than one range for each selected cell. (#12964)
+                                       // what results in creating more than one range for each selected cell. (http://dev.ckeditor.com/ticket/12964)
                                        if ( node.type == CKEDITOR.NODE_ELEMENT ) {
                                                var key = 'visited_' + ( leaving ? 'out' : 'in' );
                                                if ( node.getCustomData( key ) ) {
index 31188d24cb266f7d87ce624fd4a9dd6f39eb6a8c..640cec0b9720f739f412f4a478266a92b1abddc9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -29,7 +29,7 @@
                // Call the CKEDITOR.event constructor to initialize this instance.
                CKEDITOR.event.call( this );
 
-               // Make a clone of the config object, to avoid having it touched by our code. (#9636)
+               // Make a clone of the config object, to avoid having it touched by our code. (http://dev.ckeditor.com/ticket/9636)
                instanceConfig = instanceConfig && CKEDITOR.tools.clone( instanceConfig );
 
                // if editor is created off one page element.
        function updateCommandsContext( editor, path, forceRefresh ) {
                // Commands cannot be refreshed without a path. In edge cases
                // it may happen that there's no selection when this function is executed.
-               // For example when active filter is changed in #10877.
+               // For example when active filter is changed in http://dev.ckeditor.com/ticket/10877.
                if ( !path )
                        return;
 
                } else {
                        // Load the custom configuration file.
                        // To resolve customConfig race conflicts, use scriptLoader#queue
-                       // instead of scriptLoader#load (#6504).
+                       // instead of scriptLoader#load (http://dev.ckeditor.com/ticket/6504).
                        CKEDITOR.scriptLoader.queue( customConfig, function() {
                                // If the CKEDITOR.editorConfig function has been properly
                                // defined in the custom configuration file, cache it.
                return editor.blockless ? CKEDITOR.ENTER_BR : enterMode;
        }
 
-       // Create DocumentFragment from specified ranges. For now it handles only tables in Firefox
-       // and returns DocumentFragment from the 1. range for other cases. (#13884)
+       // Create DocumentFragment from specified ranges. For now it handles only tables
+       // and returns DocumentFragment from the 1. range for other cases. (http://dev.ckeditor.com/ticket/13884)
        function createDocumentFragmentFromRanges( ranges, editable ) {
                var docFragment = new CKEDITOR.dom.documentFragment(),
                        tableClone,
                        currentRow,
                        currentRowClone;
 
+               // We must handle two cases here:
+               // 1. <tr>[<td>Cell</td>]</tr> (IE9+, Edge, Chrome, Firefox)
+               // 2. <td>[Cell]</td> (IE8-, Safari)
+               function isSelectedCell( range ) {
+                       var start = range.startContainer,
+                               end = range.endContainer;
+
+                       if ( start.is && ( start.is( 'tr' ) ||
+                               ( start.is( 'td' ) && start.equals( end ) && range.endOffset === start.getChildCount() ) ) ) {
+                               return true;
+                       }
+
+                       return false;
+               }
+
+               function cloneCell( range ) {
+                       var start = range.startContainer;
+
+                       if ( start.is( 'tr' ) ) {
+                               return range.cloneContents();
+                       }
+
+                       return start.clone( true );
+               }
+
                for ( var i = 0; i < ranges.length; i++ ) {
                        var range = ranges[ i ],
-                               container = range.startContainer;
+                               container = range.startContainer.getAscendant( 'tr', true );
 
-                       if ( container.getName && container.getName() == 'tr' ) {
+                       if ( isSelectedCell( range ) ) {
                                if ( !tableClone ) {
                                        tableClone = container.getAscendant( 'table' ).clone();
-                                       tableClone.append( container.getAscendant( 'tbody' ).clone() );
+                                       tableClone.append( container.getAscendant( { thead: 1, tbody: 1, tfoot: 1 } ).clone() );
                                        docFragment.append( tableClone );
-                                       tableClone = tableClone.findOne( 'tbody' );
+                                       tableClone = tableClone.findOne( 'thead, tbody, tfoot' );
                                }
 
                                if ( !( currentRow && currentRow.equals( container ) ) ) {
                                        tableClone.append( currentRowClone );
                                }
 
-                               currentRowClone.append( range.cloneContents() );
+                               currentRowClone.append( cloneCell( range ) );
                        } else {
                                // If there was something else copied with table,
                                // append it to DocumentFragment.
                        // This guarantees that commands added before first editor#mode
                        // aren't immediately updated, but waits for editor#mode and that
                        // commands added later are immediately refreshed, even when added
-                       // before instanceReady. #10103, #10249
+                       // before instanceReady. http://dev.ckeditor.com/ticket/10103, http://dev.ckeditor.com/ticket/10249
                        if ( this.mode )
                                updateCommand( this, cmd );
 
                                                } );
                                        }
 
-                                       // Remove 'submit' events registered on form element before destroying.(#3988)
+                                       // Remove 'submit' events registered on form element before destroying.(http://dev.ckeditor.com/ticket/3988)
                                        editor.on( 'destroy', function() {
                                                form.removeListener( 'submit', onSubmit );
                                        } );
                        function onSubmit( evt ) {
                                editor.updateElement();
 
-                               // #8031 If textarea had required attribute and editor is empty fire 'required' event and if
+                               // http://dev.ckeditor.com/ticket/8031 If textarea had required attribute and editor is empty fire 'required' event and if
                                // it was cancelled, prevent submitting the form.
                                if ( editor._.required && !element.getValue() && editor.fire( 'required' ) === false ) {
                                        // When user press save button event (evt) is undefined (see save plugin).
                 *
                 *              editorInstance.execCommand( 'bold' );
                 *
-                * @param {String} commandName The indentifier name of the command.
-                * @param {Object} [data] The data to be passed to the command.
-                * @returns {Boolean} `true` if the command was executed
-                * successfully, otherwise `false`.
+                * @param {String} commandName The identifier name of the command.
+                * @param {Object} [data] The data to be passed to the command. It defaults to
+                * an empty object starting from 4.7.0.
+                * @returns {Boolean} `true` if the command was executed successfully, `false` otherwise.
                 * @see CKEDITOR.editor#addCommand
                 */
                execCommand: function( commandName, data ) {
 
                        var eventData = {
                                name: commandName,
-                               commandData: data,
+                               commandData: data || {},
                                command: command
                        };
 
                                }
                                else {
                                        // If we don't have a proper element, set data to an empty string,
-                                       // as this method is expected to return a string. (#13385)
+                                       // as this method is expected to return a string. (http://dev.ckeditor.com/ticket/13385)
                                        data = '';
                                }
                        }
                                this.readOnly = isReadOnly;
 
                                // Block or release BACKSPACE key according to current read-only
-                               // state to prevent browser's history navigation (#9761).
+                               // state to prevent browser's history navigation (http://dev.ckeditor.com/ticket/9761).
                                this.keystrokeHandler.blockedKeystrokes[ 8 ] = +isReadOnly;
 
                                this.editable().setReadOnly( isReadOnly );
                 */
                extractSelectedHtml: function( toString, removeEmptyBlock ) {
                        var editable = this.editable(),
-                               ranges = this.getSelection().getRanges();
+                               ranges = this.getSelection().getRanges(),
+                               docFragment = new CKEDITOR.dom.documentFragment(),
+                               i;
 
                        if ( !editable || ranges.length === 0 ) {
                                return null;
                        }
 
-                       var range = ranges[ 0 ],
-                               docFragment = editable.extractHtmlFromRange( range, removeEmptyBlock );
+                       for ( i = 0; i < ranges.length; i++ ) {
+                               docFragment.append( editable.extractHtmlFromRange( ranges[ i ], removeEmptyBlock ) );
+                       }
 
                        if ( !removeEmptyBlock ) {
-                               this.getSelection().selectRanges( [ range ] );
+                               this.getSelection().selectRanges( [ ranges[ 0 ] ] );
                        }
 
                        return toString ? docFragment.getHtml() : docFragment;
                        }
                },
 
+               /**
+                * Returns the keystroke that is assigned to a specified {@link CKEDITOR.command}. If no keystroke is assigned,
+                * it returns `null`.
+                *
+                * Since version 4.7.0 this function also accepts a `command` parameter as a string.
+                *
+                * @since 4.6.0
+                * @param {CKEDITOR.command/String} command The {@link CKEDITOR.command} instance or a string with the command name.
+                * @returns {Number/null} The keystroke assigned to the provided command or `null` if there is no keystroke.
+                */
+               getCommandKeystroke: function( command ) {
+                       var commandInstance = ( typeof command === 'string' ? this.getCommand( command ) : command );
+
+                       if ( commandInstance ) {
+                               var commandName = CKEDITOR.tools.object.findKey( this.commands, commandInstance ),
+                                       keystrokes = this.keystrokeHandler.keystrokes,
+                                       key;
+
+                               // Some commands have a fake keystroke - for example CUT/COPY/PASTE commands are handled natively.
+                               if ( commandInstance.fakeKeystroke ) {
+                                       return commandInstance.fakeKeystroke;
+                               }
+
+                               for ( key in keystrokes ) {
+                                       if ( keystrokes.hasOwnProperty( key ) && keystrokes[ key ] == commandName ) {
+                                               return key;
+                                       }
+                               }
+                       }
+                       return null;
+               },
+
                /**
                 * Shorthand for {@link CKEDITOR.filter#addFeature}.
                 *
@@ -1512,7 +1572,7 @@ CKEDITOR.ELEMENT_MODE_INLINE = 3;
  * @member CKEDITOR.config
  */
 
- /**
+/**
  * Customizes the {@link CKEDITOR.editor#title human-readable title} of this editor. This title is displayed in
  * tooltips and impacts various [accessibility aspects](#!/guide/dev_a11y-section-announcing-the-editor-on-the-page),
  * e.g. it is commonly used by screen readers for distinguishing editor instances and for navigation.
@@ -1810,6 +1870,14 @@ CKEDITOR.ELEMENT_MODE_INLINE = 3;
  * @param {CKEDITOR.editor} editor This editor instance.
  */
 
+/**
+ * Event fired when the {@link #method-destroy} method is called,
+ * but before destroying the editor.
+ *
+ * @event beforeDestroy
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
 /**
  * Internal event to get the current data.
  *
index 14f34460b96e7efb5095d5c2dc242d20ef76f982..b7ab5778f0cfbae89655bb4f472af5b961bbd6a6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 4410ce93a318738be39d20dd7266f026dfc71905..cbf089c97d600775bb8dbd074efebfb17e4b649a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -136,7 +136,7 @@ if ( !CKEDITOR.env ) {
                                var domain = document.domain,
                                        hostname = window.location.hostname;
 
-                               return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
+                               return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (http://dev.ckeditor.com/ticket/5434)
                        },
 
                        /**
index 0dd1f412e07289d803098712cd96461167acf3a1..89444b5e2e054886732c3221ab0c87e920dc1f7a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index e1cd65a35c962cbf30b613a835054942e236379d..ea62ac92fa9d91337dee583767f9ca5c11fe1638 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index e9d5a374e3287f7b6b95861b2f9290621e809210..3e64fc5b0dbb4f6d164c089708d44c49f34eff11 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                        },
                        // Object: element name => array of transformations groups.
                        transformations: {},
-                       cachedTests: {}
+                       cachedTests: {},
+                       cachedChecks: {}
                };
 
                // Register filter instance.
                                        if ( el.attributes[ 'data-cke-filter' ] == 'off' )
                                                return false;
 
-                                       // (#10260) Don't touch elements like spans with data-cke-* attribute since they're
+                                       // (http://dev.ckeditor.com/ticket/10260) Don't touch elements like spans with data-cke-* attribute since they're
                                        // responsible e.g. for placing markers, bookmarks, odds and stuff.
                                        // We love 'em and we don't wanna lose anything during the filtering.
                                        // '|' is to avoid tricky joints like data-="foo" + cke-="bar". Yes, they're possible.
                                if ( !element.parent )
                                        continue;
 
-                               // Handle custom elements as inline elements (#12683).
+                               // Handle custom elements as inline elements (http://dev.ckeditor.com/ticket/12683).
                                parentDtd = DTD[ element.parent.name ] || DTD.span;
 
                                switch ( check.check ) {
                        };
                } )(),
 
+               /**
+                * Returns a clone of this filter instance.
+                *
+                * @since 4.7.3
+                * @returns {CKEDITOR.filter}
+                */
+               clone: function() {
+                       var ret = new CKEDITOR.filter(),
+                               clone = CKEDITOR.tools.clone;
+
+                       // Cloning allowed content related things.
+                       ret.allowedContent = clone( this.allowedContent );
+                       ret._.allowedRules = clone( this._.allowedRules );
+
+                       // Disallowed content rules.
+                       ret.disallowedContent = clone( this.disallowedContent );
+                       ret._.disallowedRules = clone( this._.disallowedRules );
+
+                       ret._.transformations = clone( this._.transformations );
+
+                       ret.disabled = this.disabled;
+                       ret.editor = this.editor;
+
+                       return ret;
+               },
+
                /**
                 * Destroys the filter instance and removes it from the global {@link CKEDITOR.filter#instances} object.
                 *
                        styles = styleDef.styles,
                        attrs = styleDef.attributes || {};
 
-               if ( styles ) {
+               if ( styles && !CKEDITOR.tools.isEmpty( styles ) ) {
                        styles = copy( styles );
                        attrs.style = CKEDITOR.tools.writeCssText( styles, true );
                } else {
                        styles = {};
                }
 
-               var el = {
+               return {
                        name: styleDef.element,
                        attributes: attrs,
                        classes: attrs[ 'class' ] ? attrs[ 'class' ].split( /\s+/ ) : [],
                        styles: styles,
                        children: []
                };
-
-               return el;
        }
 
        // Mock hash based on string.
        //
        // TRANSFORMATIONS --------------------------------------------------------
        //
+       var transformationsTools;
 
        // Apply given transformations group to the element.
        function applyTransformationsGroup( filter, element, group ) {
         * @class CKEDITOR.filter.transformationsTools
         * @singleton
         */
-       var transformationsTools = CKEDITOR.filter.transformationsTools = {
+       transformationsTools = CKEDITOR.filter.transformationsTools = {
                /**
                 * Converts `width` and `height` attributes to styles.
                 *
                 * Converts length in the `styleName` style to a valid length attribute (like `width` or `height`).
                 *
                 * @param {CKEDITOR.htmlParser.element} element
-                * @param {String} styleName Name of the style that will be converted.
-                * @param {String} [attrName=styleName] Name of the attribute into which the style will be converted.
+                * @param {String} styleName The name of the style that will be converted.
+                * @param {String} [attrName=styleName] The name of the attribute into which the style will be converted.
                 */
                lengthToAttribute: function( element, styleName, attrName ) {
                        attrName = attrName || styleName;
                },
 
                /**
-                * Converts the `align` attribute to the `float` style if not set. Attribute
+                * Converts the `align` attribute to the `float` style if not set. The attribute
                 * is always removed.
                 *
                 * @param {CKEDITOR.htmlParser.element} element
 
                /**
                 * Converts the `float` style to the `align` attribute if not set.
-                * Style is always removed.
+                * The style is always removed.
                 *
                 * @param {CKEDITOR.htmlParser.element} element
                 */
                        delete element.styles[ 'float' ]; // Uh... GCC doesn't like the 'float' prop name.
                },
 
+               /**
+                * Converts the shorthand form of the `border` style to seperate styles.
+                *
+                * @param {CKEDITOR.htmlParser.element} element
+                */
+               splitBorderShorthand: function( element ) {
+                       if ( !element.styles.border ) {
+                               return;
+                       }
+
+                       var widths = element.styles.border.match( /([\.\d]+\w+)/g ) || [ '0px' ];
+                       switch ( widths.length ) {
+                               case 1:
+                                       element.styles[ 'border-width' ] = widths[0];
+                                       break;
+                               case 2:
+                                       mapStyles( [ 0, 1, 0, 1 ] );
+                                       break;
+                               case 3:
+                                       mapStyles( [ 0, 1, 2, 1 ] );
+                                       break;
+                               case 4:
+                                       mapStyles( [ 0, 1, 2, 3 ] );
+                                       break;
+                       }
+
+                       element.styles[ 'border-style' ] = element.styles[ 'border-style' ] ||
+                               ( element.styles.border.match( /(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|initial|inherit)/ ) || [] )[ 0 ];
+                       if ( !element.styles[ 'border-style' ] )
+                               delete element.styles[ 'border-style' ];
+
+                       delete element.styles.border;
+
+                       function mapStyles( map ) {
+                               element.styles['border-top-width'] = widths[ map[0] ];
+                               element.styles['border-right-width'] = widths[ map[1] ];
+                               element.styles['border-bottom-width'] = widths[ map[2] ];
+                               element.styles['border-left-width'] = widths[ map[3] ];
+                       }
+               },
+
+               listTypeToStyle: function( element ) {
+                       if ( element.attributes.type ) {
+                               switch ( element.attributes.type ) {
+                                       case 'a':
+                                               element.styles[ 'list-style-type' ] = 'lower-alpha';
+                                               break;
+                                       case 'A':
+                                               element.styles[ 'list-style-type' ] = 'upper-alpha';
+                                               break;
+                                       case 'i':
+                                               element.styles[ 'list-style-type' ] = 'lower-roman';
+                                               break;
+                                       case 'I':
+                                               element.styles[ 'list-style-type' ] = 'upper-roman';
+                                               break;
+                                       case '1':
+                                               element.styles[ 'list-style-type' ] = 'decimal';
+                                               break;
+                                       default:
+                                               element.styles[ 'list-style-type' ] = element.attributes.type;
+                               }
+                       }
+               },
+
+               /**
+                * Converts the shorthand form of the `margin` style to seperate styles.
+                *
+                * @param {CKEDITOR.htmlParser.element} element
+                */
+               splitMarginShorthand: function( element ) {
+                       if ( !element.styles.margin ) {
+                               return;
+                       }
+
+                       var widths = element.styles.margin.match( /(\-?[\.\d]+\w+)/g ) || [ '0px' ];
+                       switch ( widths.length ) {
+                               case 1:
+                                       mapStyles( [ 0, 0, 0, 0 ] );
+                                       break;
+                               case 2:
+                                       mapStyles( [ 0, 1, 0, 1 ] );
+                                       break;
+                               case 3:
+                                       mapStyles( [ 0, 1, 2, 1 ] );
+                                       break;
+                               case 4:
+                                       mapStyles( [ 0, 1, 2, 3 ] );
+                                       break;
+                       }
+
+                       delete element.styles.margin;
+
+                       function mapStyles( map ) {
+                               element.styles['margin-top'] = widths[ map[0] ];
+                               element.styles['margin-right'] = widths[ map[1] ];
+                               element.styles['margin-bottom'] = widths[ map[2] ];
+                               element.styles['margin-left'] = widths[ map[3] ];
+                       }
+               },
+
                /**
                 * Checks whether an element matches a given {@link CKEDITOR.style}.
                 * The element can be a "superset" of a style, e.g. it may have
                matchesStyle: elementMatchesStyle,
 
                /**
-                * Transforms element to given form.
+                * Transforms an element to a given form.
                 *
                 * Form may be a:
                 *
                 *      * {@link CKEDITOR.style},
-                *      * string &ndash; the new name of an element.
+                *      * string &ndash; the new name of the element.
                 *
                 * @param {CKEDITOR.htmlParser.element} el
                 * @param {CKEDITOR.style/String} form
  *     * {@link CKEDITOR.filter.allowedContentRules} &ndash; defined rules will be added
  *     to the {@link CKEDITOR.editor#filter}.
  *     * `true` &ndash; will disable the filter (data will not be filtered,
- *     all features will be activated).
+ *     all features will be activated). Reading [security best practices](#!/guide/dev_best_practices) before setting `true` is recommended.
  *     * default &ndash; the filter will be configured by loaded features
  *     (toolbar items, commands, etc.).
  *
index ee1bc39f62f7a22201a099295887fa599440aa91..45c3137801b42d570e78a1515a477736a6910768 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                 * @member CKEDITOR.focusManager
                 */
                blur: function( noDelay ) {
-                       if ( this._.locked )
+                       if ( this._.locked ) {
                                return;
+                       }
 
                        function doBlur() {
                                if ( this.hasFocus ) {
                                }
                        }
 
-                       if ( this._.timer )
+                       if ( this._.timer ) {
                                clearTimeout( this._.timer );
+                       }
 
                        var delay = CKEDITOR.focusManager._.blurDelay;
-                       if ( noDelay || !delay )
+                       if ( noDelay || !delay ) {
                                doBlur.call( this );
-                       else {
+                       else {
                                this._.timer = CKEDITOR.tools.setTimeout( function() {
                                        delete this._.timer;
                                        doBlur.call( this );
index d079e4d4f1e8b37377e1b09b7653fe30c732f2e1..79e996b6c91e57118c57bfa02ad020b813186e73 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -56,7 +56,7 @@
                        // it up and apply the filter.
                        data = protectSource( data, editor );
 
-                       // Protect content of textareas. (#9995)
+                       // Protect content of textareas. (http://dev.ckeditor.com/ticket/9995)
                        // Do this before protecting attributes to avoid breaking:
                        // <textarea><img src="..." /></textarea>
                        data = protectElements( data, protectTextareaRegex );
                        data = protectAttributes( data );
 
                        // Protect elements than can't be set inside a DIV. E.g. IE removes
-                       // style tags from innerHTML. (#3710)
+                       // style tags from innerHTML. (http://dev.ckeditor.com/ticket/3710)
                        data = protectElements( data, protectElementsRegex );
 
                        // Certain elements has problem to go through DOM operation, protect
-                       // them by prefixing 'cke' namespace. (#3591)
+                       // them by prefixing 'cke' namespace. (http://dev.ckeditor.com/ticket/3591)
                        data = protectElementsNames( data );
 
                        // All none-IE browsers ignore self-closed custom elements,
-                       // protecting them into open-close. (#3591)
+                       // protecting them into open-close. (http://dev.ckeditor.com/ticket/3591)
                        data = protectSelfClosingElements( data );
 
                        // Compensate one leading line break after <pre> open as browsers
-                       // eat it up. (#5789)
+                       // eat it up. (http://dev.ckeditor.com/ticket/5789)
                        data = protectPreFormatted( data );
 
                        // There are attributes which may execute JavaScript code inside fixBin.
-                       // Encode them greedily. They will be unprotected right after getting HTML from fixBin. (#10)
+                       // Encode them greedily. They will be unprotected right after getting HTML from fixBin. (http://dev.ckeditor.com/ticket/10)
                        data = protectInsecureAttributes( data );
 
                        var fixBin = evtData.context || editor.editable().getName(),
@@ -99,7 +99,7 @@
                        // Call the browser to help us fixing a possibly invalid HTML
                        // structure.
                        var el = editor.document.createElement( fixBin );
-                       // Add fake character to workaround IE comments bug. (#3801)
+                       // Add fake character to workaround IE comments bug. (http://dev.ckeditor.com/ticket/3801)
                        el.setHtml( 'a' + data );
                        data = el.getHtml().substr( 1 );
 
                        data = CKEDITOR.htmlParser.fragment.fromHtml( data, evtData.context, fixBodyTag );
 
                        // The empty root element needs to be fixed by adding 'p' or 'div' into it.
-                       // This avoids the need to create that element on the first focus (#12630).
+                       // This avoids the need to create that element on the first focus (http://dev.ckeditor.com/ticket/12630).
                        if ( fixBodyTag ) {
                                fixEmptyRoot( data, fixBodyTag );
                        }
                editor.on( 'toDataFormat', function( evt ) {
                        var data = evt.data.dataValue;
 
-                       // #10854 - we need to strip leading blockless <br> which FF adds
+                       // http://dev.ckeditor.com/ticket/10854 - we need to strip leading blockless <br> which FF adds
                        // automatically when editable contains only non-editable content.
                        // We do that for every browser (so it's a constant behavior) and
                        // not in BR mode, in which chance of valid leading blockless <br> is higher.
                        data.writeChildrenHtml( writer );
                        data = writer.getHtml( true );
 
-                       // Restore those non-HTML protected source. (#4475,#4880)
+                       // Restore those non-HTML protected source. (http://dev.ckeditor.com/ticket/4475,http://dev.ckeditor.com/ticket/4880)
                        data = unprotectRealComments( data );
                        data = unprotectSource( data, editor );
 
                                return false;
 
                        // 1. For IE version >=8,  empty blocks are displayed correctly themself in wysiwiyg;
-                       // 2. For the rest, at least table cell and list item need no filler space. (#6248)
+                       // 2. For the rest, at least table cell and list item need no filler space. (http://dev.ckeditor.com/ticket/6248)
                        if ( !isOutput && !CKEDITOR.env.needsBrFiller &&
                                ( document.documentMode > 7 ||
                                        block.name in CKEDITOR.dtd.tr ||
        }
 
        // Regex to scan for &nbsp; at the end of blocks, which are actually placeholders.
-       // Safari transforms the &nbsp; to \xa0. (#4172)
+       // Safari transforms the &nbsp; to \xa0. (http://dev.ckeditor.com/ticket/4172)
        var tailNbspRegex = /(?:&nbsp;|\xa0)$/;
 
        var protectedSourceMarker = '{cke_protected}';
                        // active in the editing area (IE|WebKit).
                        [ ( /^on/ ), 'data-cke-pa-on' ],
 
+                       // Prevent iframe's srcdoc attribute from being evaluated in the editable.
+                       [ ( /^srcdoc/ ), 'data-cke-pa-srcdoc' ],
+
                        // Don't let some old expando enter editor. Concerns only IE8,
                        // but for consistency remove on all browsers.
                        [ ( /^data-cke-expando$/ ), '' ]
-               ]
+               ],
+
+               elements: {
+                       // Prevent iframe's src attribute with javascript code or data protocol from being evaluated in the editable.
+                       iframe: function( element ) {
+                               if ( element.attributes && element.attributes.src ) {
+
+                                       var src = element.attributes.src.toLowerCase().replace( /[^a-z]/gi, '' );
+                                       if ( src.indexOf( 'javascript' ) === 0 || src.indexOf( 'data' ) === 0 ) {
+                                               element.attributes[ 'data-cke-pa-src' ] = element.attributes.src;
+                                               delete element.attributes.src;
+                                       }
+                               }
+                       }
+               }
        };
 
-       // Disable form elements editing mode provided by some browsers. (#5746)
+       // Disable form elements editing mode provided by some browsers. (http://dev.ckeditor.com/ticket/5746)
        function protectReadOnly( element ) {
                var attrs = element.attributes;
 
                // We should flag that the element was locked by our code so
-               // it'll be editable by the editor functions (#6046).
+               // it'll be editable by the editor functions (http://dev.ckeditor.com/ticket/6046).
                if ( attrs.contenteditable != 'false' )
                        attrs[ 'data-cke-editable' ] = attrs.contenteditable ? 'true' : 1;
 
                                }
                        },
 
-                       // Remove empty link but not empty anchor. (#3829, #13516)
+                       // Remove empty link but not empty anchor. (http://dev.ckeditor.com/ticket/3829, http://dev.ckeditor.com/ticket/13516)
                        a: function( element ) {
                                var attrs = element.attributes;
 
                                        if ( attribs[ 'data-cke-temp' ] )
                                                return false;
 
-                                       // Remove duplicated attributes - #3789.
+                                       // Remove duplicated attributes - http://dev.ckeditor.com/ticket/3789.
                                        var attributeNames = [ 'name', 'href', 'src' ],
                                                savedAttributeName;
                                        for ( var i = 0; i < attributeNames.length; i++ ) {
                                return element;
                        },
 
-                       // The contents of table should be in correct order (#4809).
+                       // The contents of table should be in correct order (http://dev.ckeditor.com/ticket/4809).
                        table: function( element ) {
                                // Clone the array as it would become empty during the sort call.
                                var children = element.children.slice( 0 );
                        title: function( element ) {
                                var titleText = element.children[ 0 ];
 
-                               // Append text-node to title tag if not present (i.e. non-IEs) (#9882).
+                               // Append text-node to title tag if not present (i.e. non-IEs) (http://dev.ckeditor.com/ticket/9882).
                                !titleText && append( element, titleText = new CKEDITOR.htmlParser.text() );
 
                                // Transfer data-saved title to title tag.
 
        if ( CKEDITOR.env.ie ) {
                // IE outputs style attribute in capital letters. We should convert
-               // them back to lower case, while not hurting the values (#5930)
+               // them back to lower case, while not hurting the values (http://dev.ckeditor.com/ticket/5930)
                defaultHtmlFilterRulesForAll.attributes.style = function( value ) {
                        return value.replace( /(^|;)([^\:]+)/g, function( match ) {
                                return match.toLowerCase();
                };
        }
 
-       // Disable form elements editing mode provided by some browsers. (#5746)
+       // Disable form elements editing mode provided by some browsers. (http://dev.ckeditor.com/ticket/5746)
        function unprotectReadyOnly( element ) {
                var attrs = element.attributes;
                switch ( attrs[ 'data-cke-editable' ] ) {
                //
                //      'data-x' => '&lt;a href=&quot;X&quot;'
                //
-               // which, can be easily filtered out (#11508).
+               // which, can be easily filtered out (http://dev.ckeditor.com/ticket/11508).
                protectAttributeRegex = /([\w-:]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,
                protectAttributeNameRegex = /^(href|src|name)$/i;
 
        function protectAttributes( html ) {
                return html.replace( protectElementRegex, function( element, tag, attributes ) {
                        return '<' + tag + attributes.replace( protectAttributeRegex, function( fullAttr, attrName ) {
-                               // Avoid corrupting the inline event attributes (#7243).
-                               // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (#5218)
+                               // Avoid corrupting the inline event attributes (http://dev.ckeditor.com/ticket/7243).
+                               // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (http://dev.ckeditor.com/ticket/5218)
                                if ( protectAttributeNameRegex.test( attrName ) && attributes.indexOf( 'data-cke-saved-' + attrName ) == -1 )
                                        return ' data-cke-saved-' + fullAttr + ' data-cke-' + CKEDITOR.rnd + '-' + fullAttr;
 
                        // <noscript> tags (get lost in IE and messed up in FF).
                        /<noscript[\s\S]*?<\/noscript>/gi,
 
-                       // Avoid meta tags being stripped (#8117).
+                       // Avoid meta tags being stripped (http://dev.ckeditor.com/ticket/8117).
                        /<meta[\s\S]*?\/?>/gi
                ].concat( protectRegexes );
 
 
                for ( var i = 0; i < regexes.length; i++ ) {
                        data = data.replace( regexes[ i ], function( match ) {
-                               match = match.replace( tempRegex, // There could be protected source inside another one. (#3869).
+                               match = match.replace( tempRegex, // There could be protected source inside another one. (http://dev.ckeditor.com/ticket/3869).
                                function( $, isComment, id ) {
                                        return protectedHtml[ id ];
                                } );
 
                // Different protection pattern is used for those that
                // live in attributes to avoid from being HTML encoded.
-               // Why so serious? See #9205, #8216, #7805, #11754, #11846.
+               // Why so serious? See http://dev.ckeditor.com/ticket/9205, http://dev.ckeditor.com/ticket/8216, http://dev.ckeditor.com/ticket/7805, http://dev.ckeditor.com/ticket/11754, http://dev.ckeditor.com/ticket/11846.
                data = data.replace( /<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=\/>]+))+\s*\/?>/g, function( match ) {
                        return match.replace( /<!--\{cke_protected\}([^>]*)-->/g, function( match, data ) {
                                store[ store.id ] = decodeURIComponent( data );
 
                // This RegExp searches for innerText in all the title/iframe/textarea elements.
                // This is because browser doesn't allow HTML in these elements, that's why we can't
-               // nest comments in there. (#11223)
+               // nest comments in there. (http://dev.ckeditor.com/ticket/11223)
                data = data.replace( /<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g, function( match, tagName, tagAttributes, innerText ) {
                        return '<' + tagName + tagAttributes + '>' + unprotectSource( unprotectRealComments( innerText ), editor ) + '</' + tagName + '>';
                } );
  *             {@link CKEDITOR.htmlParser.fragment} {@link CKEDITOR.htmlParser.element}.
  *     * 5-9: Data is available in the parsed format, but {@link CKEDITOR.htmlDataProcessor#dataFilter}
  *             is not applied yet.
- *     * 6: Data is filtered with the {CKEDITOR.filter content filter}.
+ *     * 6: Data is filtered with the {@link CKEDITOR.filter content filter}.
  *     * 10: Data is processed with {@link CKEDITOR.htmlDataProcessor#dataFilter}.
  *     * 10-14: Data is available in the parsed format and {@link CKEDITOR.htmlDataProcessor#dataFilter}
  *             has already been applied.
index dffde95e9cbdc0583ca5133a0f01bef5d4519fc3..c95257c6af341e958e2f15a59eb9d0c902f78bfa 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -163,7 +163,7 @@ CKEDITOR.htmlParser = function() {
                                        tagName = tagName.toLowerCase();
 
                                        // There are some tag names that can break things, so let's
-                                       // simply ignore them when parsing. (#5224)
+                                       // simply ignore them when parsing. (http://dev.ckeditor.com/ticket/5224)
                                        if ( /="/.test( tagName ) )
                                                continue;
 
index 62a97ef10ff3fbd222c7c703daa9d9b0d05bbaa1..61447f08e0229d226ac1a6f49453e934429d5d81 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -67,7 +67,7 @@ CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass( {
                 * @param {String} attValue The attribute value.
                 */
                attribute: function( attName, attValue ) {
-                       // Browsers don't always escape special character in attribute values. (#4683, #4719).
+                       // Browsers don't always escape special character in attribute values. (http://dev.ckeditor.com/ticket/4683, http://dev.ckeditor.com/ticket/4719).
                        if ( typeof attValue == 'string' )
                                attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
 
index 4ece2b7e94cfb68c7a6bf90ba950a4038da2724b..be8c5cf21ac28ad6c18006aaee055f070fba1953 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 171c62e4fb3085cef6f5482b3902229fbcad2c38..14a38f3523f38b19fed48bc86afb502274ba18e5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 3654322a2f50226bfbb16d42fb2cbc77e6e23939..224d3e6a16dab29704abb717e717f6775f0e1c19 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -35,7 +35,7 @@ CKEDITOR.htmlParser.element = function( name, attributes ) {
         */
        this.children = [];
 
-       // Reveal the real semantic of our internal custom tag name (#6639),
+       // Reveal the real semantic of our internal custom tag name (http://dev.ckeditor.com/ticket/6639),
        // when resolving whether it's block like.
        var realName = name || '',
                prefixed = realName.match( /^cke:(.*)/ );
@@ -56,7 +56,7 @@ CKEDITOR.htmlParser.element = function( name, attributes ) {
 };
 
 /**
- * Object presentation of CSS style declaration text.
+ * Object presentation of the CSS style declaration text.
  *
  * @class
  * @constructor Creates a `cssStyle` class instance.
@@ -419,7 +419,7 @@ CKEDITOR.htmlParser.cssStyle = function() {
                 *
                 * @since 4.3
                 * @param {Number} index Index at which the element will be split &mdash; `0` means the beginning,
-                * `1` after first child node, etc.
+                * `1` after the first child node, etc.
                 * @returns {CKEDITOR.htmlParser.element} The new element following this one.
                 */
                split: function( index ) {
@@ -442,6 +442,38 @@ CKEDITOR.htmlParser.cssStyle = function() {
                        return clone;
                },
 
+               /**
+                * Searches through the current node children to find nodes matching the `criteria`.
+                *
+                * @param {String/Function} criteria Tag name or evaluator function.
+                * @param {Boolean} [recursive=false]
+                * @returns {CKEDITOR.htmlParser.node[]}
+                */
+               find: function( criteria, recursive ) {
+                       if ( recursive === undefined ) {
+                               recursive = false;
+                       }
+
+                       var ret = [],
+                               i;
+
+                       for     ( i = 0; i < this.children.length; i++ ) {
+                               var curChild = this.children[ i ];
+
+                               if ( typeof criteria == 'function' && criteria( curChild ) ) {
+                                       ret.push( curChild );
+                               } else if ( typeof criteria == 'string' && curChild.name === criteria ) {
+                                       ret.push( curChild );
+                               }
+
+                               if ( recursive && curChild.find ) {
+                                       ret = ret.concat( curChild.find( criteria, recursive ) );
+                               }
+                       }
+
+                       return ret;
+               },
+
                /**
                 * Adds a class name to the list of classes.
                 *
@@ -511,8 +543,8 @@ CKEDITOR.htmlParser.cssStyle = function() {
 
                        if ( !ctx.nonEditable && this.attributes.contenteditable == 'false' )
                                changes.push( 'nonEditable', true );
-                       // A context to be given nestedEditable must be nonEditable first (by inheritance) (#11372, #11698).
-                       // Special case: #11504 - filter starts on <body contenteditable=true>,
+                       // A context to be given nestedEditable must be nonEditable first (by inheritance) (http://dev.ckeditor.com/ticket/11372, http://dev.ckeditor.com/ticket/11698).
+                       // Special case: http://dev.ckeditor.com/ticket/11504 - filter starts on <body contenteditable=true>,
                        // so ctx.nonEditable has not been yet set to true.
                        else if ( ctx.nonEditable && !ctx.nestedEditable && this.attributes.contenteditable == 'true' )
                                changes.push( 'nestedEditable', true );
index 72767b5943e84a3fa2770014c566e80ab353d48f..db6b91c2c6894630d5f701ec49cb3e60e559b0a6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index c06298652af2710c01aa53c3476008288e857d9d..7ef915c023717160be8bbf334a2ab5abd587d4d5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -61,7 +61,7 @@ CKEDITOR.htmlParser.fragment = function() {
                if ( node.attributes[ 'data-cke-survive' ] )
                        return false;
 
-               // Empty link is to be removed when empty but not anchor. (#7894)
+               // Empty link is to be removed when empty but not anchor. (http://dev.ckeditor.com/ticket/7894)
                return node.name == 'a' && node.attributes.href || CKEDITOR.dtd.$removeEmpty[ node.name ];
        }
 
@@ -130,7 +130,7 @@ CKEDITOR.htmlParser.fragment = function() {
                                                i--;
                                        } else {
                                                // Some element of the same type cannot be nested, flat them,
-                                               // e.g. <a href="#">foo<a href="#">bar</a></a>. (#7894)
+                                               // e.g. <a href="#">foo<a href="#">bar</a></a>. (http://dev.ckeditor.com/ticket/7894)
                                                if ( pendingName == currentNode.name )
                                                        addElement( currentNode, currentNode.parent, 1 ), i--;
                                        }
@@ -143,7 +143,7 @@ CKEDITOR.htmlParser.fragment = function() {
                                addElement( pendingBRs.shift(), currentNode );
                }
 
-               // Rtrim empty spaces on block end boundary. (#3585)
+               // Rtrim empty spaces on block end boundary. (http://dev.ckeditor.com/ticket/3585)
                function removeTailWhitespace( element ) {
                        if ( element._.isBlockLike && element.name != 'pre' && element.name != 'textarea' ) {
 
@@ -275,10 +275,10 @@ CKEDITOR.htmlParser.fragment = function() {
                                // If the element cannot be child of the current element.
                                if ( !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] ) {
                                        // Current node doesn't have a close tag, time for a close
-                                       // as this element isn't fit in. (#7497)
+                                       // as this element isn't fit in. (http://dev.ckeditor.com/ticket/7497)
                                        if ( currentNode.isOptionalClose )
                                                parser.onTagClose( currentName );
-                                       // Fixing malformed nested lists by moving it into a previous list item. (#3828)
+                                       // Fixing malformed nested lists by moving it into a previous list item. (http://dev.ckeditor.com/ticket/3828)
                                        else if ( tagName in listBlocks && currentName in listBlocks ) {
                                                var children = currentNode.children,
                                                        lastChild = children[ children.length - 1 ];
@@ -291,7 +291,7 @@ CKEDITOR.htmlParser.fragment = function() {
                                                currentNode = lastChild;
                                        }
                                        // Establish new list root for orphan list items, but NOT to create
-                                       // new list for the following ones, fix them instead. (#6975)
+                                       // new list for the following ones, fix them instead. (http://dev.ckeditor.com/ticket/6975)
                                        // <dl><dt>foo<dd>bar</dl>
                                        // <ul><li>foo<li>bar</ul>
                                        else if ( tagName in CKEDITOR.dtd.$listItem &&
@@ -409,7 +409,7 @@ CKEDITOR.htmlParser.fragment = function() {
                        var currentName = currentNode.name,
                                currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ] || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) ) : rootDtd;
 
-                       // Fix orphan text in list/table. (#8540) (#8870)
+                       // Fix orphan text in list/table. (http://dev.ckeditor.com/ticket/8540) (http://dev.ckeditor.com/ticket/8870)
                        if ( !inTextarea && !currentDtd[ '#' ] && currentName in nonBreakingBlocks ) {
                                parser.onTagOpen( structureFixes[ currentName ] || '' );
                                parser.onText( text );
index 0f1b30759d149de24b1a9ae77ede5d4cfa317a4d..b38c8a80791c1a1f34aaaeeb828e88220ed41376 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 07cb865822d0ed7b3a7796919cc6a420bc845c2b..190e85a07d187dd675a459a7f60841a765d84400 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index e2a6bcdb8c2a36e7bf696f3e664b88d79d52a9ee..c84089b76c4665ae2f5d1d17a1f30ba74ac1971e 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 3519923a2a2db5d258076f8f39782fe6d040ecbe..06f3a2a1662697c023e9777db0dcff6f22495541 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                 *              alert( CKEDITOR.lang.languages.en ); // 1
                 */
                languages: {
-                       af: 1, ar: 1, bg: 1, bn: 1, bs: 1, ca: 1, cs: 1, cy: 1, da: 1, de: 1, 'de-ch': 1, el: 1,
-                       'en-au': 1, 'en-ca': 1, 'en-gb': 1, en: 1, eo: 1, es: 1, et: 1, eu: 1, fa: 1, fi: 1, fo: 1,
+                       af: 1, ar: 1, az: 1, bg: 1, bn: 1, bs: 1, ca: 1, cs: 1, cy: 1, da: 1, de: 1, 'de-ch': 1, el: 1,
+                       'en-au': 1, 'en-ca': 1, 'en-gb': 1, en: 1, eo: 1, es: 1, 'es-mx':1, et: 1, eu: 1, fa: 1, fi: 1, fo: 1,
                        'fr-ca': 1, fr: 1, gl: 1, gu: 1, he: 1, hi: 1, hr: 1, hu: 1, id: 1, is: 1, it: 1, ja: 1, ka: 1,
-                       km: 1, ko: 1, ku: 1, lt: 1, lv: 1, mk: 1, mn: 1, ms: 1, nb: 1, nl: 1, no: 1, pl: 1, 'pt-br': 1,
+                       km: 1, ko: 1, ku: 1, lt: 1, lv: 1, mk: 1, mn: 1, ms: 1, nb: 1, nl: 1, no: 1, oc: 1, pl: 1, 'pt-br': 1,
                        pt: 1, ro: 1, ru: 1, si: 1, sk: 1, sl: 1, sq: 1, 'sr-latn': 1, sr: 1, sv: 1, th: 1, tr: 1, tt: 1, ug: 1,
                        uk: 1, vi: 1, 'zh-cn': 1, zh: 1
                },
index 5a108dffed000ba75248c140064b5a348ce6b72c..dc02511217c43e4d016df21f1bffff4c2d494797 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -142,7 +142,7 @@ if ( !CKEDITOR.loader ) {
                                }
 
                                // We must guarantee the execution order of the scripts, so we
-                               // need to load them one by one. (#4145)
+                               // need to load them one by one. (http://dev.ckeditor.com/ticket/4145)
                                // The following if/else block has been taken from the scriptloader core code.
                                if ( typeof script.onreadystatechange !== 'undefined' ) {
                                        /** @ignore */
@@ -156,7 +156,7 @@ if ( !CKEDITOR.loader ) {
                                        /** @ignore */
                                        script.onload = function() {
                                                // Some browsers, such as Safari, may call the onLoad function
-                                               // immediately. Which will break the loading sequence. (#3661)
+                                               // immediately. Which will break the loading sequence. (http://dev.ckeditor.com/ticket/3661)
                                                setTimeout( function() {
                                                        onScriptLoaded( scriptName );
                                                }, 0 );
index 69816128ea81a2cd23ee343118c69dd15b1a19f4..228789e7d7b6a18f3b9d319e44ef5b34c0460d01 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index caff95750ac2708eaf230cca9704363695fd9841..9ff7683a237c89cad2fc15aa9ae0430a359a1394 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 8e6c95280c1463e5f3494aac5cb5c3b75ccec4fc..75cc41e947db32837a80b9547691e7be534ef194 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 7ba88a8fd673bfb42bc28827f55ac6b22a8506e2..c33c0f8dd0b3d65fab729f4bc03d9ddabd0a33d3 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -124,13 +124,13 @@ CKEDITOR.resourceManager.prototype = {
         * Registers one or more resources to be loaded from an external path
         * instead of the core base path.
         *
-        *              // Loads a plugin from '/myplugin/samples/plugin.js'.
+        *              // Loads a plugin from '/myplugins/sample/plugin.js'.
         *              CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
         *
-        *              // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+        *              // Loads a plugin from '/myplugins/sample/my_plugin.js'.
         *              CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
         *
-        *              // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+        *              // Loads a plugin from '/myplugins/sample/my_plugin.js'.
         *              CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
         *
         * @param {String} names The resource names, separated by commas.
index 9ad536e5bd8778afe4d4e00459b2559a7bb62fdb..356996fb55829950d2be90a51568dacf827aad02 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -119,8 +119,8 @@ CKEDITOR.scriptLoader = ( function() {
                                        } );
 
                                        if ( callback ) {
-                                               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 11 ) {
-                                                       // FIXME: For IE, we are not able to return false on error (like 404).
+                                               // The onload or onerror event does not fire in IE8 and IE9 Quirks Mode (http://dev.ckeditor.com/ticket/14849).
+                                               if ( CKEDITOR.env.ie && ( CKEDITOR.env.version <= 8 || CKEDITOR.env.ie9Compat ) ) {
                                                        script.$.onreadystatechange = function() {
                                                                if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
                                                                        script.$.onreadystatechange = null;
@@ -130,13 +130,12 @@ CKEDITOR.scriptLoader = ( function() {
                                                } else {
                                                        script.$.onload = function() {
                                                                // Some browsers, such as Safari, may call the onLoad function
-                                                               // immediately. Which will break the loading sequence. (#3661)
+                                                               // immediately. Which will break the loading sequence. (http://dev.ckeditor.com/ticket/3661)
                                                                setTimeout( function() {
                                                                        onLoad( url, true );
                                                                }, 0 );
                                                        };
 
-                                                       // FIXME: Opera and Safari will not fire onerror.
                                                        script.$.onerror = function() {
                                                                onLoad( url, false );
                                                        };
index 573b890e18d89bd42f58550f4ccd7e99f456bfe4..d44db3bc282dd62f268cd77ce2c20f34468436c3 100644 (file)
@@ -1,9 +1,217 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 ( function() {
+       var isMSSelection = typeof window.getSelection != 'function',
+               nextRev = 1,
+               // http://dev.ckeditor.com/ticket/13816
+               fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
+               fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' ),
+               isSelectingTable;
+
+       // #### table selection : START
+       // @param {CKEDITOR.dom.range[]} ranges
+       // @param {Boolean} allowPartially Whether a collapsed selection within table is recognized to be a valid selection.
+       // This happens for WebKits on MacOS, when you right click inside the table.
+       function isTableSelection( ranges, allowPartially ) {
+               if ( ranges.length === 0 ) {
+                       return false;
+               }
+
+               var node,
+                       i;
+
+               function isPartiallySelected( range ) {
+                       var startCell = range.startContainer.getAscendant( { td: 1, th: 1 }, true ),
+                               endCell = range.endContainer.getAscendant( { td: 1, th: 1 }, true ),
+                               trim = CKEDITOR.tools.trim,
+                               selected;
+
+                       // Check if the selection is inside one cell and we don't have any nested table contents selected.
+                       if ( !startCell || !startCell.equals( endCell ) || startCell.findOne( 'td, th, tr, tbody, table' ) ) {
+                               return false;
+                       }
+
+                       selected = range.cloneContents();
+
+                       // Empty selection is still partially selected.
+                       if ( !selected.getFirst() ) {
+                               return true;
+                       }
+
+                       return trim( selected.getFirst().getText() ) !== trim( startCell.getText() );
+               }
+
+               // Edge case: partially selected text node inside one table cell or cursor inside cell.
+               if ( !allowPartially && ranges.length === 1 &&
+                       ( ranges[ 0 ].collapsed || isPartiallySelected( ranges[ 0 ] ) ) ) {
+                       return false;
+               }
+
+               for ( i = 0; i < ranges.length; i++ ) {
+                       node = ranges[ i ]._getTableElement();
+
+                       if ( !node ) {
+                               return false;
+                       }
+               }
+
+               return true;
+       }
+
+       // After performing fake table selection, the real selection is limited
+       // to the first selected cell. Therefore to check if the real selection
+       // matches the fake selection, we check if the table cell from fake selection's
+       // first range and real selection's range are the same.
+       // Also if the selection is collapsed, we should check if it's placed inside the table
+       // in which the fake selection is or inside nested table. Such selection occurs after right mouse click.
+       function isRealTableSelection( selection, fakeSelection ) {
+               var ranges = selection.getRanges(),
+                       fakeRanges = fakeSelection.getRanges(),
+                       table = ranges.length && ranges[ 0 ]._getTableElement() &&
+                               ranges[ 0 ]._getTableElement().getAscendant( 'table', true ),
+                       fakeTable = fakeRanges.length && fakeRanges[ 0 ]._getTableElement() &&
+                               fakeRanges[ 0 ]._getTableElement().getAscendant( 'table', true ),
+                       isTableRange = ranges.length === 1 && ranges[ 0 ]._getTableElement() &&
+                                       ranges[ 0 ]._getTableElement().is( 'table' ),
+                       isFakeTableRange = fakeRanges.length === 1 && fakeRanges[ 0 ]._getTableElement() &&
+                                       fakeRanges[ 0 ]._getTableElement().is( 'table' );
+
+               function isValidTableSelection( table, fakeTable, ranges, fakeRanges ) {
+                       var isMenuOpen = ranges.length === 1 && ranges[ 0 ].collapsed,
+                               // In case of WebKit on MacOS, when checking real selection, we must allow selection to be partial.
+                               // Otherwise the check will fail for table selection with opened context menu.
+                               isInTable = isTableSelection( ranges, !!CKEDITOR.env.webkit ) && isTableSelection( fakeRanges );
+
+                       return isSameTable( table, fakeTable ) && ( isMenuOpen || isInTable );
+               }
+
+               function isSameTable( table, fakeTable ) {
+                       if ( !table || !fakeTable ) {
+                               return false;
+                       }
+
+                       return table.equals( fakeTable ) || fakeTable.contains( table );
+               }
+
+               if ( isValidTableSelection( table, fakeTable, ranges, fakeRanges ) ) {
+                       // Edge case: when editor contains only table and that table is selected using selectAll command,
+                       // then the selection is not properly refreshed and it must be done manually.
+                       if ( isTableRange && !isFakeTableRange ) {
+                               fakeSelection.selectRanges( ranges );
+                       }
+                       return true;
+               }
+
+               return false;
+       }
+
+       function getSelectedCells( ranges ) {
+               var cells = [],
+                       node,
+                       i;
+
+               function getCellsFromElement( element ) {
+                       var cells = element.find( 'td, th' ),
+                               cellsArray = [],
+                               i;
+
+                       for ( i = 0; i < cells.count(); i++ ) {
+                               cellsArray.push( cells.getItem( i ) );
+                       }
+
+                       return cellsArray;
+               }
+
+               for ( i = 0; i < ranges.length; i++ ) {
+                       node = ranges[ i ]._getTableElement();
+
+                       if ( node.is && node.is( { td: 1, th: 1 } ) ) {
+                               cells.push( node );
+                       } else {
+                               cells = cells.concat( getCellsFromElement( node ) );
+                       }
+               }
+
+               return cells;
+       }
+
+       // Cells in the same row are separated by tab and the rows are separated by new line, e.g.
+       // Cell 1.1     Cell 1.2
+       // Cell 2.1     Cell 2.2
+       function getTextFromSelectedCells( ranges ) {
+               var cells = getSelectedCells( ranges ),
+                       txt = '',
+                       currentRow = [],
+                       lastRow,
+                       i;
+
+               for ( i = 0; i < cells.length; i++ ) {
+                       if ( lastRow && !lastRow.equals( cells[ i ].getAscendant( 'tr' ) ) ) {
+                               txt += currentRow.join( '\t' ) + '\n';
+                               lastRow = cells[ i ].getAscendant( 'tr' );
+                               currentRow = [];
+                       } else if ( i === 0 ) {
+                               lastRow = cells[ i ].getAscendant( 'tr' );
+                       }
+
+                       currentRow.push( cells[ i ].getText() );
+               }
+
+               txt += currentRow.join( '\t' );
+
+               return txt;
+       }
+
+       function performFakeTableSelection( ranges ) {
+               var editor = this.root.editor,
+                       realSelection = editor.getSelection( 1 ),
+                       cache;
+
+               // Cleanup after previous selection - e.g. remove hidden sel container.
+               this.reset();
+
+               // Indicate that the table is being fake-selected to prevent infinite loop
+               // inside `selectRanges`.
+               isSelectingTable = true;
+
+               // Cancel selectionchange for the real selection.
+               realSelection.root.once( 'selectionchange', function( evt ) {
+                       evt.cancel();
+               }, null, null, 0 );
+
+               // Move real selection to the first selected range.
+               realSelection.selectRanges( [ ranges[ 0 ] ] );
+
+               cache = this._.cache;
+
+               // Caches given ranges.
+               cache.ranges = new CKEDITOR.dom.rangeList( ranges );
+               cache.type = CKEDITOR.SELECTION_TEXT;
+               cache.selectedElement = ranges[ 0 ]._getTableElement();
+
+               // `selectedText` should contain text from all selected data ("plain text table")
+               // to be compatible with Firefox's implementation.
+               cache.selectedText = getTextFromSelectedCells( ranges );
+
+               // Properties that will not be available when isFake.
+               cache.nativeSel = null;
+
+               this.isFake = 1;
+               this.rev = nextRev++;
+
+               // Save this selection, so it can be returned by editor.getSelection().
+               editor._.fakeSelection = this;
+
+               isSelectingTable = false;
+
+               // Fire selectionchange, just like a normal selection.
+               this.root.fire( 'selectionchange' );
+       }
+       // #### table selection : END
+
        // #### checkSelectionChange : START
 
        // The selection change check basically saves the element parent tree of
 
                if ( sel ) {
                        realSel = this.getSelection( 1 );
-
-                       // If real (not locked/stored) selection was moved from hidden container,
-                       // then the fake-selection must be invalidated.
-                       if ( !realSel || !realSel.isHidden() ) {
+                       // If real (not locked/stored) selection was moved from hidden container
+                       // or is not a table one, then the fake-selection must be invalidated.
+                       if ( !realSel || ( !realSel.isHidden() && !isRealTableSelection( realSel, sel ) ) ) {
                                // Remove the cache from fake-selection references in use elsewhere.
                                sel.reset();
 
 
                var currentPath = this.elementPath();
                if ( !currentPath.compare( this._.selectionPreviousPath ) ) {
+                       // Handle case when dialog inserts new element but parent block and path (so also focus context) does not change. (http://dev.ckeditor.com/ticket/13362)
+                       var sameBlockParent = this._.selectionPreviousPath && this._.selectionPreviousPath.blockLimit.equals( currentPath.blockLimit );
                        // Cache the active element, which we'll eventually lose on Webkit.
-                       if ( CKEDITOR.env.webkit )
+                       if ( CKEDITOR.env.webkit && !sameBlockParent )
                                this._.previousActive = this.document.getActive();
 
                        this._.selectionPreviousPath = currentPath;
        // * is a visible node,
        // * is a non-empty element (this rule will accept elements like <strong></strong> because they
        //      they were not accepted by the isVisible() check, not not <br> which cannot absorb the caret).
-       //      See #12621.
+       //      See http://dev.ckeditor.com/ticket/12621.
        function mayAbsorbCaret( node ) {
                if ( isVisible( node ) )
                        return true;
                if ( ctxRequiresFix( previous ) || ctxRequiresFix( next, 1 ) )
                        return true;
 
-               // Empty block/inline element is also affected. <span>^</span>, <p>^</p> (#7222)
-               // If you found this line confusing check #12655.
+               // Empty block/inline element is also affected. <span>^</span>, <p>^</p> (http://dev.ckeditor.com/ticket/7222)
+               // If you found this line confusing check http://dev.ckeditor.com/ticket/12655.
                if ( !( previous || next ) && !( ct.type == CKEDITOR.NODE_ELEMENT && ct.isBlockBoundary() && ct.getBogus() ) )
                        return true;
 
                return fillingChar;
        }
 
-       // Checks if a filling char has been used, eventualy removing it (#1272).
+       // Checks if a filling char has been used, eventually removing it (http://dev.ckeditor.com/ticket/1272).
        function checkFillingCharSequenceNodeReady( editable ) {
                var fillingChar = editable.getCustomData( 'cke-fillingChar' );
 
                        // creating it.
                        if ( fillingChar.getCustomData( 'ready' ) ) {
                                removeFillingCharSequenceNode( editable );
+                               editable.editor.fire( 'selectionCheck' );
                        } else {
                                fillingChar.setCustomData( 'ready', 1 );
                        }
 
                if ( fillingChar ) {
                        // Text selection position might get mangled by
-                       // subsequent dom modification, save it now for restoring. (#8617)
+                       // subsequent dom modification, save it now for restoring. (http://dev.ckeditor.com/ticket/8617)
                        if ( keepSelection !== false ) {
                                var sel = editable.getDocument().getSelection().getNative(),
                                        // Be error proof.
                }
        }
 
-       // #13816
+       // http://dev.ckeditor.com/ticket/13816
        function removeFillingCharSequenceString( str, nbspAware ) {
                if ( nbspAware ) {
                        return str.replace( fillingCharSequenceRegExp, function( m, p ) {
-                               // #10291 if filling char is followed by a space replace it with NBSP.
+                               // http://dev.ckeditor.com/ticket/10291 if filling char is followed by a space replace it with NBSP.
                                return p ? '\xa0' : '';
                        } );
                } else {
        }
 
        // Creates cke_hidden_sel container and puts real selection there.
-       function hideSelection( editor ) {
-               var style = CKEDITOR.env.ie ? 'display:none' : 'position:fixed;top:0;left:-1000px',
+       function hideSelection( editor, ariaLabel ) {
+               var content = ariaLabel || '&nbsp;',
+                       style = CKEDITOR.env.ie && CKEDITOR.env.version < 14 ? 'display:none' : 'position:fixed;top:0;left:-1000px',
                        hiddenEl = CKEDITOR.dom.element.createFromHtml(
-                               '<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '">&nbsp;</div>',
+                               '<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '">' + content + '</div>',
                                editor.document );
 
                editor.fire( 'lockSnapshot' );
                        ( enclosedNode = range.getEnclosedNode() ) && enclosedNode.type == CKEDITOR.NODE_ELEMENT ) {
                        // So far we can't say that enclosed element is non-editable. Before checking,
                        // we'll shrink range (clone). Shrinking will stop on non-editable range, or
-                       // innermost element (#11114).
+                       // innermost element (http://dev.ckeditor.com/ticket/11114).
                        clone = range.clone();
                        clone.shrink( CKEDITOR.SHRINK_ELEMENT, true );
 
 
                        // Give the editable an initial selection on first focus,
                        // put selection at a consistent position at the start
-                       // of the contents. (#9507)
+                       // of the contents. (http://dev.ckeditor.com/ticket/9507)
                        if ( CKEDITOR.env.gecko ) {
                                editable.attachListener( editable, 'focus', function( evt ) {
                                        evt.removeListener();
                                        if ( restoreSel !== 0 ) {
                                                var nativ = editor.getSelection().getNative();
                                                // Do it only if the native selection is at an unwanted
-                                               // place (at the very start of the editable). #10119
+                                               // place (at the very start of the editable). http://dev.ckeditor.com/ticket/10119
                                                if ( nativ && nativ.isCollapsed && nativ.anchorNode == editable.$ ) {
                                                        var rng = editor.createRange();
                                                        rng.moveToElementEditStart( editable );
                                // On Webkit we use DOMFocusIn which is fired more often than focus - e.g. when moving from main editable
                                // to nested editable (or the opposite). Unlock selection all, but restore only when it was locked
                                // for the same active element, what will e.g. mean restoring after displaying dialog.
-                               if ( restoreSel && CKEDITOR.env.webkit )
+                               if ( restoreSel && CKEDITOR.env.webkit ) {
                                        restoreSel = editor._.previousActive && editor._.previousActive.equals( doc.getActive() );
 
+                                       // On Webkit when editor uses divarea, native focus causes editable viewport to scroll
+                                       // to the top (when there is no active selection inside while focusing) so the scroll
+                                       // position should be restored after focusing back editable area. (http://dev.ckeditor.com/ticket/14659)
+                                       if ( restoreSel && editor._.previousScrollTop != null && editor._.previousScrollTop != editable.$.scrollTop ) {
+                                               editable.$.scrollTop = editor._.previousScrollTop;
+                                       }
+                               }
+
                                editor.unlockSelection( restoreSel );
                                restoreSel = 0;
                        }, null, null, -1 );
                                editable.attachListener( editable, 'mousedown', function( evt ) {
                                        // IE scrolls document to top on right mousedown
                                        // when editor has no focus, remember this scroll
-                                       // position and revert it before context menu opens. (#5778)
+                                       // position and revert it before context menu opens. (http://dev.ckeditor.com/ticket/5778)
                                        if ( evt.data.$.button == 2 ) {
                                                var sel = editor.document.getSelection();
                                                if ( !sel || sel.getType() == CKEDITOR.SELECTION_NONE )
 
                                // When content doc is in standards mode, IE doesn't focus the editor when
                                // clicking at the region below body (on html element) content, we emulate
-                               // the normal behavior on old IEs. (#1659, #7932)
+                               // the normal behavior on old IEs. (http://dev.ckeditor.com/ticket/1659, http://dev.ckeditor.com/ticket/7932)
                                if ( doc.$.compatMode != 'BackCompat' ) {
                                        if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+                                               var textRng,
+                                                       startRng;
+
                                                html.on( 'mousedown', function( evt ) {
                                                        evt = evt.data;
 
                                                                html.removeListener( 'mousemove', onHover );
                                                                removeListeners();
 
-                                                               // Make it in effect on mouse up. (#9022)
+                                                               // Make it in effect on mouse up. (http://dev.ckeditor.com/ticket/9022)
                                                                textRng.select();
                                                        }
 
                                                                        evt.$.y < html.$.clientHeight &&
                                                                        evt.$.x < html.$.clientWidth ) {
                                                                // Start to build the text range.
-                                                               var textRng = body.$.createTextRange();
+                                                               textRng = body.$.createTextRange();
                                                                moveRangeToPoint( textRng, evt.$.clientX, evt.$.clientY );
 
                                                                // Records the dragging start of the above text range.
-                                                               var startRng = textRng.duplicate();
+                                                               startRng = textRng.duplicate();
 
                                                                html.on( 'mousemove', onHover );
                                                                outerDoc.on( 'mouseup', onSelectEnd );
                                        if ( CKEDITOR.env.version > 7 && CKEDITOR.env.version < 11 ) {
                                                html.on( 'mousedown', function( evt ) {
                                                        if ( evt.data.getTarget().is( 'html' ) ) {
-                                                               // Limit the text selection mouse move inside of editable. (#9715)
+                                                               // Limit the text selection mouse move inside of editable. (http://dev.ckeditor.com/ticket/9715)
                                                                outerDoc.on( 'mouseup', onSelectEnd );
                                                                html.on( 'mouseup', onSelectEnd );
                                                        }
                        // 2. After the accomplish of keyboard and mouse events.
                        editable.attachListener( editable, 'selectionchange', checkSelectionChange, editor );
                        editable.attachListener( editable, 'keyup', checkSelectionChangeTimeout, editor );
+                       // http://dev.ckeditor.com/ticket/14407 - Don't even let anything happen if the selection is in a non-editable element.
+                       editable.attachListener( editable, 'keydown', function( evt ) {
+                               var sel = this.getSelection( 1 );
+                               if ( nonEditableAscendant( sel ) ) {
+                                       sel.selectElement( nonEditableAscendant( sel ) );
+                                       evt.data.preventDefault();
+                               }
+                       }, editor );
                        // Always fire the selection change on focus gain.
                        // On Webkit do this on DOMFocusIn, because the selection is unlocked on it too and
                        // we need synchronization between those listeners to not lost cached editor._.previousActive property
                                editor.selectionChange( 1 );
                        } );
 
-                       // #9699: On Webkit&Gecko in inline editor we have to check selection when it was changed
+                       // http://dev.ckeditor.com/ticket/9699: On Webkit&Gecko in inline editor we have to check selection when it was changed
                        // by dragging and releasing mouse button outside editable. Dragging (mousedown)
                        // has to be initialized in editable, but for mouseup we listen on document element.
                        if ( isInline && ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) ) {
                                        mouseDown = 0;
                                } );
                        }
-                       // In all other cases listen on simple mouseup over editable, as we did before #9699.
+                       // In all other cases listen on simple mouseup over editable, as we did before http://dev.ckeditor.com/ticket/9699.
                        //
                        // Use document instead of editable in non-IEs for observing mouseup
                        // since editable won't fire the event if selection process started within iframe and ended out
-                       // of the editor (#9851).
+                       // of the editor (http://dev.ckeditor.com/ticket/9851).
                        else {
                                editable.attachListener( CKEDITOR.env.ie ? editable : doc.getDocumentElement(), 'mouseup', checkSelectionChangeTimeout, editor );
                        }
                                                case 8: // BACKSPACE
                                                case 45: // INS
                                                case 46: // DEl
-                                                       removeFillingCharSequenceNode( editable );
+                                                       if ( editable.hasFocus ) {
+                                                               removeFillingCharSequenceNode( editable );
+                                                       }
                                        }
 
                                }, null, null, -1 );
                        }
 
-                       // Automatically select non-editable element when navigating into
-                       // it by left/right or backspace/del keys.
                        editable.attachListener( editable, 'keydown', getOnKeyDownListener( editor ), null, null, -1 );
 
                        function moveRangeToPoint( range, x, y ) {
-                               // Error prune in IE7. (#9034, #9110)
+                               // Error prune in IE7. (http://dev.ckeditor.com/ticket/9034, http://dev.ckeditor.com/ticket/9110)
                                try {
                                        range.moveToPoint( x, y );
                                } catch ( e ) {}
                                        range = sel.createRange();
 
                                // The selection range is reported on host, but actually it should applies to the content doc.
-                               if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
+                               // The parentElement may be null for read only mode in IE10 and below (http://dev.ckeditor.com/ticket/9780).
+                               if ( sel.type != 'None' && range.parentElement() && range.parentElement().ownerDocument == doc.$ )
                                        range.select();
                        }
+
+                       function nonEditableAscendant( sel ) {
+                               if ( CKEDITOR.env.ie ) {
+                                       var range = sel.getRanges()[ 0 ],
+                                               ascendant = range ? range.startContainer.getAscendant( function( parent ) {
+                                                               return parent.type == CKEDITOR.NODE_ELEMENT &&
+                                                                       ( parent.getAttribute( 'contenteditable' ) == 'false' || parent.getAttribute( 'contenteditable' ) == 'true' );
+                                                       }, true ) : null ;
+
+                                       return range && ascendant.getAttribute( 'contenteditable' ) == 'false' && ascendant;
+                               }
+                       }
                } );
 
                editor.on( 'setData', function() {
                        // Invalidate locked selection when unloading DOM.
-                       // (#9521, #5217#comment:32 and #11500#comment:11)
+                       // (http://dev.ckeditor.com/ticket/9521, http://dev.ckeditor.com/ticket/5217#comment:32 and http://dev.ckeditor.com/ticket/11500#comment:11)
                        editor.unlockSelection();
 
                        // Webkit's selection will mess up after the data loading.
                        editor.unlockSelection();
                } );
 
-               // IE9 might cease to work if there's an object selection inside the iframe (#7639).
+               // IE9 might cease to work if there's an object selection inside the iframe (http://dev.ckeditor.com/ticket/7639).
                if ( CKEDITOR.env.ie9Compat )
                        editor.on( 'beforeDestroy', clearSelection, null, null, 9 );
 
                // When loaded data are ready check whether hidden selection container was not loaded.
                editor.on( 'loadSnapshot', function() {
                        var isElement = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ),
-                               // TODO replace with el.find() which will be introduced in #9764,
+                               // TODO replace with el.find() which will be introduced in http://dev.ckeditor.com/ticket/9764,
                                // because it may happen that hidden sel container won't be the last element.
                                last = editor.editable().getLast( isElement );
 
        } );
 
        // On WebKit only, we need a special "filling" char on some situations
-       // (#1272). Here we set the events that should invalidate that char.
+       // (http://dev.ckeditor.com/ticket/1272). Here we set the events that should invalidate that char.
        if ( CKEDITOR.env.webkit ) {
                CKEDITOR.on( 'instanceReady', function( evt ) {
                        var editor = evt.editor;
 
                        // Filter Undo snapshot's HTML to get rid of Filling Char Sequence.
                        // Note: CKEDITOR.dom.range.createBookmark2() normalizes snapshot's
-                       // bookmarks to anticipate the removal of FCSeq from the snapshot's HTML (#13816).
+                       // bookmarks to anticipate the removal of FCSeq from the snapshot's HTML (http://dev.ckeditor.com/ticket/13816).
                        editor.on( 'getSnapshot', function( evt ) {
                                if ( evt.data ) {
                                        evt.data = removeFillingCharSequenceString( evt.data );
 
                        // Filter data to get rid of Filling Char Sequence. Filter on #toDataFormat
                        // instead of #getData because once removed, FCSeq may leave an empty element,
-                       // which should be pruned by the dataProcessor (#13816).
+                       // which should be pruned by the dataProcessor (http://dev.ckeditor.com/ticket/13816).
                        // Note: Used low priority to filter when dataProcessor works on strings,
                        // not pseudo–DOM.
                        editor.on( 'toDataFormat', function( evt ) {
         */
        CKEDITOR.SELECTION_ELEMENT = 3;
 
-       var isMSSelection = typeof window.getSelection != 'function',
-               nextRev = 1;
-
        /**
         * Manipulates the selection within a DOM element. If the current browser selection
         * spans outside of the element, an empty selection object is returned.
 
                // Selection out of concerned range, empty the selection.
                // TODO check whether this condition cannot be reverted to its old
-               // form (commented out) after we closed #10438.
+               // form (commented out) after we closed http://dev.ckeditor.com/ticket/10438.
                //if ( !( rangeParent && ( root.equals( rangeParent ) || root.contains( rangeParent ) ) ) ) {
                if ( !(
                        rangeParent &&
        var styleObjectElements = { img: 1, hr: 1, li: 1, table: 1, tr: 1, td: 1, th: 1, embed: 1, object: 1, ol: 1, ul: 1,
                        a: 1, input: 1, form: 1, select: 1, textarea: 1, button: 1, fieldset: 1, thead: 1, tfoot: 1 };
 
-       // #13816
-       var fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
-               fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
-
        CKEDITOR.tools.extend( CKEDITOR.dom.selection, {
                _removeFillingCharSequenceString: removeFillingCharSequenceString,
                _createFillingCharSequenceNode: createFillingCharSequenceNode,
                 *
                 *              var selection = editor.getSelection().getNative();
                 *
-                * @returns {Object} The native browser selection object.
+                * @returns {Object} The native browser selection object or null if this is a fake selection.
                 */
                getNative: function() {
                        if ( this._.cache.nativeSel !== undefined )
                 *              alert( ranges.length );
                 *
                 * @method
-                * @param {Boolean} [onlyEditables] If set to `true`, this function retrives editable ranges only.
+                * @param {Boolean} [onlyEditables] If set to `true`, this function retrieves editable ranges only.
                 * @returns {Array} Range instances that represent the current selection.
                 */
                getRanges: ( function() {
                                                index = -1,
                                                position, distance, container;
 
-                                       // Binary search over all element childs to test the range to see whether
+                                       // Binary search over all element children to test the range to see whether
                                        // range is right on the boundary of one element.
                                        while ( startIndex <= endIndex ) {
                                                index = Math.floor( ( startIndex + endIndex ) / 2 );
                                                        return { container: parent, offset: getNodeIndex( child ) };
                                        }
 
-                                       // All childs are text nodes,
-                                       // or to the right hand of test range are all text nodes. (#6992)
+                                       // All children are text nodes,
+                                       // or to the right hand of test range are all text nodes. (http://dev.ckeditor.com/ticket/6992)
                                        if ( index == -1 || index == siblings.length - 1 && position < 0 ) {
                                                // Adapt test range to embrace the entire parent contents.
                                                testRange.moveToElementText( parent );
 
                                                // IE report line break as CRLF with range.text but
                                                // only LF with textnode.nodeValue, normalize them to avoid
-                                               // breaking character counting logic below. (#3949)
+                                               // breaking character counting logic below. (http://dev.ckeditor.com/ticket/3949)
                                                distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
 
                                                siblings = parent.childNodes;
 
                                                // IE report line break as CRLF with range.text but
                                                // only LF with textnode.nodeValue, normalize them to avoid
-                                               // breaking character counting logic below. (#3949)
+                                               // breaking character counting logic below. (http://dev.ckeditor.com/ticket/3949)
                                                distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
 
                                                // Actual range anchor right beside test range at the inner boundary of text node.
                                                                }
                                                                child = sibling;
                                                        }
-                                                       // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
+                                                       // Measurement in IE could be sometimes wrong because of <select> element. (http://dev.ckeditor.com/ticket/4611)
                                                        catch ( e ) {
                                                                return { container: parent, offset: getNodeIndex( child ) };
                                                        }
                                                boundaryInfo = getBoundaryInformation( nativeRange );
                                                range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
 
-                                               // Correct an invalid IE range case on empty list item. (#5850)
+                                               // Correct an invalid IE range case on empty list item. (http://dev.ckeditor.com/ticket/5850)
                                                if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING && range.endOffset <= range.startContainer.getIndex() )
                                                        range.collapse();
 
                        } )() :
                        function() {
                                // On browsers implementing the W3C range, we simply
-                               // tranform the native ranges in CKEDITOR.dom.range
+                               // transform the native ranges in CKEDITOR.dom.range
                                // instances.
 
                                var ranges = [],
                                        return ranges;
 
                                // Split range into multiple by read-only nodes.
-                               // Clone ranges array to avoid changing cached ranges (#11493).
+                               // Clone ranges array to avoid changing cached ranges (http://dev.ckeditor.com/ticket/11493).
                                return extractEditableRanges( new CKEDITOR.dom.rangeList( ranges.slice() ) );
                        };
                } )(),
 
                                                        // Decrease the range content to exclude particial
                                                        // selected node on the start which doesn't have
-                                                       // visual impact. ( #3231 )
+                                                       // visual impact. ( http://dev.ckeditor.com/ticket/3231 )
                                                        while ( 1 ) {
                                                                var startContainer = range.startContainer,
                                                                        startOffset = range.startOffset;
-                                                               // Limit the fix only to non-block elements.(#3950)
+                                                               // Limit the fix only to non-block elements.(http://dev.ckeditor.com/ticket/3950)
                                                                if ( startOffset == ( startContainer.getChildCount ? startContainer.getChildCount() : startContainer.getLength() ) && !startContainer.isBlockBoundary() )
                                                                        range.setStartAfter( startContainer );
                                                                else
                 *              var element = editor.getSelection().getSelectedElement();
                 *              alert( element.getName() );
                 *
-                * @returns {CKEDITOR.dom.element} The selected element. Null if no
+                * @returns {CKEDITOR.dom.element/null} The selected element. `null` if no
                 * selection is available or the selection type is not {@link CKEDITOR#SELECTION_ELEMENT}.
                 */
                getSelectedElement: function() {
 
                        if ( restore ) {
                                var selectedElement = this.getSelectedElement(),
-                                       ranges = !selectedElement && this.getRanges(),
+                                       ranges = this.getRanges(),
                                        faked = this.isFake;
                        }
 
                                if ( !( common && common.getAscendant( 'body', 1 ) ) )
                                        return;
 
-                               if ( faked )
+                               if ( isTableSelection( ranges ) ) {
+                                       // Tables have it's own selection method.
+                                       performFakeTableSelection.call( this, ranges );
+                               } else if ( faked )
                                        this.fake( selectedElement );
                                else if ( selectedElement )
                                        this.selectElement( selectedElement );
                        // Check if there's a hiddenSelectionContainer in editable at some index.
                        // Some ranges may be anchored after the hiddenSelectionContainer and,
                        // once the container is removed while resetting the selection, they
-                       // may need new endOffset (one element less within the range) (#11021 #11393).
+                       // may need new endOffset (one element less within the range) (http://dev.ckeditor.com/ticket/11021 http://dev.ckeditor.com/ticket/11393).
                        if ( hadHiddenSelectionContainer )
                                fixRangesAfterHiddenSelectionContainer( ranges, this.root );
 
                                return;
                        }
 
+                       // Handle special case - fake selection of table cells.
+                       if ( editor && editor.plugins.tableselection &&
+                               CKEDITOR.plugins.tableselection.isSupportedEnvironment &&
+                               isTableSelection( ranges ) && !isSelectingTable
+                       ) {
+                               performFakeTableSelection.call( this, ranges );
+                               return;
+                       }
+
                        if ( isMSSelection ) {
                                var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
                                        fillerTextRegex = /\ufeff|\u00a0/,
                                if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.getName() in nonCells ||
                                        range.endContainer.type == CKEDITOR.NODE_ELEMENT && range.endContainer.getName() in nonCells ) {
                                        range.shrink( CKEDITOR.NODE_ELEMENT, true );
-                                       // The range might get collapsed (#7975). Update cached variable.
+                                       // The range might get collapsed (http://dev.ckeditor.com/ticket/7975). Update cached variable.
                                        collapsed = range.collapsed;
                                }
 
 
                                        // Append a temporary <span>&#65279;</span> before the selection.
                                        // This is needed to avoid IE destroying selections inside empty
-                                       // inline elements, like <b></b> (#253).
+                                       // inline elements, like <b></b> (http://dev.ckeditor.com/ticket/253).
                                        // It is also needed when placing the selection right after an inline
                                        // element to avoid the selection moving inside of it.
                                        dummySpan = range.document.createElement( 'span' );
-                                       dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See #1359.
+                                       dummySpan.setHtml( '&#65279;' ); // Zero Width No-Break Space (U+FEFF). See http://dev.ckeditor.com/ticket/1359.
                                        dummySpan.insertBefore( startNode );
 
                                        if ( isStartMarkerAlone ) {
                                                // To expand empty blocks or line spaces after <br>, we need
                                                // instead to have any char, which will be later deleted using the
                                                // selection.
-                                               // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
+                                               // \ufeff = Zero Width No-Break Space (U+FEFF). (http://dev.ckeditor.com/ticket/1359)
                                                range.document.createText( '\ufeff' ).insertBefore( startNode );
                                        }
                                }
                        } else {
                                var sel = this.getNative();
 
-                               // getNative() returns null if iframe is "display:none" in FF. (#6577)
+                               // getNative() returns null if iframe is "display:none" in FF. (http://dev.ckeditor.com/ticket/6577)
                                if ( !sel )
                                        return;
 
                                                between.setStart( left.endContainer, left.endOffset );
                                                between.setEnd( right.startContainer, right.startOffset );
 
-                                               // Don't confused by Firefox adjancent multi-ranges
+                                               // Don't confused by Firefox adjacent multi-ranges
                                                // introduced by table cells selection.
                                                if ( !between.collapsed ) {
                                                        between.shrink( CKEDITOR.NODE_ELEMENT, true );
 
                                                        // The following cases has to be considered:
                                                        // 1. <span contenteditable="false">[placeholder]</span>
-                                                       // 2. <input contenteditable="false"  type="radio"/> (#6621)
+                                                       // 2. <input contenteditable="false"  type="radio"/> (http://dev.ckeditor.com/ticket/6621)
                                                        if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() ) {
                                                                right.setStart( left.startContainer, left.startOffset );
                                                                ranges.splice( i--, 1 );
 
                                        if ( range.collapsed && CKEDITOR.env.webkit && rangeRequiresFix( range ) ) {
                                                // Append a zero-width space so WebKit will not try to
-                                               // move the selection by itself (#1272).
+                                               // move the selection by itself (http://dev.ckeditor.com/ticket/1272).
                                                var fillingChar = createFillingCharSequenceNode( this.root );
                                                range.insertNode( fillingChar );
 
                 * displayed to the user.
                 *
                 * @param {CKEDITOR.dom.element} element The element to be "selected".
+                * @param {String} [ariaLabel] A string to be used by the screen reader to describe the selection.
                 */
-               fake: function( element ) {
+               fake: function( element, ariaLabel ) {
                        var editor = this.root.editor;
 
+                       // Attempt to retrieve aria-label if possible (http://dev.ckeditor.com/ticket/14539).
+                       if ( ariaLabel === undefined && element.hasAttribute( 'aria-label' ) ) {
+                               ariaLabel = element.getAttribute( 'aria-label' );
+                       }
+
                        // Cleanup after previous selection - e.g. remove hidden sel container.
                        this.reset();
 
-                       hideSelection( editor );
+                       hideSelection( editor, ariaLabel );
 
                        // Set this value after executing hiseSelection, because it may
                        // cause reset() which overwrites cache.
                        return !!( el && el.data( 'cke-hidden-sel' ) );
                },
 
+               /**
+                * Checks if the selection contains an HTML element inside a table.
+                * Returns `false` for text selection inside a table (e.g. it will return `false`
+                * for text selected in one cell).
+                *
+                *              editor.getSelection().isInTable();
+                *
+                * @since 4.7.0
+                * @param {Boolean} [allowPartialSelection=false] Whether a partial cell selection should be included.
+                * Added in 4.7.2.
+                * @returns {Boolean}
+                */
+               isInTable: function( allowPartialSelection ) {
+                       return isTableSelection( this.getRanges(), allowPartialSelection );
+               },
+
+               /**
+                * Checks if the selection contains only one range which is collapsed.
+                *
+                *              if ( editor.getSelection().isCollapsed() ) {
+                *                      // Do something when the selection is collapsed.
+                *              }
+                *
+                * @since 4.7.3
+                * @returns {Boolean}
+                */
+               isCollapsed: function() {
+                       var ranges = this.getRanges();
+
+                       return ranges.length === 1 && ranges[ 0 ].collapsed;
+               },
+
                /**
                 * Creates a bookmark for each range of this selection (from {@link #getRanges})
                 * by calling the {@link CKEDITOR.dom.range#createBookmark} method,
 
                        // It may happen that the content change during loading, before selection is set so bookmark leads to text node.
                        if ( bookmarks.isFake ) {
-                               node = ranges[ 0 ].getEnclosedNode();
+                               node = isTableSelection( ranges ) ? ranges[ 0 ]._getTableElement() : ranges[ 0 ].getEnclosedNode();
+
                                if ( !node || node.type != CKEDITOR.NODE_ELEMENT ) {
                                        CKEDITOR.warn( 'selection-not-fake' );
                                        bookmarks.isFake = 0;
                                }
                        }
 
-                       if ( bookmarks.isFake )
+                       if ( bookmarks.isFake && !isTableSelection( ranges ) ) {
                                this.fake( node );
-                       else
+                       } else {
                                this.selectRanges( ranges );
+                       }
 
                        return this;
                },
                 * Remove all the selection ranges from the document.
                 */
                removeAllRanges: function() {
-                       // Don't clear selection outside this selection's root (#11500).
+                       // Don't clear selection outside this selection's root (http://dev.ckeditor.com/ticket/11500).
                        if ( this.getType() == CKEDITOR.SELECTION_NONE )
                                return;
 
index 98b85361158216b22ac9966ebd3b18518147658e..290157d4bdc9008c108506e5f2056131a940266c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                        offset = overrideOffset || ( icon && icon.offset );
                        bgsize = overrideBgsize || ( icon && icon.bgsize ) || '16px';
 
-                       // If we use apostrophes in background-image, we must escape apostrophes in path (just to be sure). (#13361)
+                       // If we use apostrophes in background-image, we must escape apostrophes in path (just to be sure). (http://dev.ckeditor.com/ticket/13361)
                        if ( path )
                                path = path.replace( /'/g, '\\\'' );
 
index 09b117baf59b0645de05d1b3e55f8273cd377084..b3cf0bc9f79adf13130bbdb228cf8f846deab02d 100644 (file)
@@ -1,5 +1,5 @@
-/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -235,7 +235,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                                var initialEnterMode = this._.enterMode;
 
                                // Before CKEditor 4.4 style knew nothing about editor, so in order to provide enterMode
-                               // which should be used developers were forced to hack the style object (see #10190).
+                               // which should be used developers were forced to hack the style object (see http://dev.ckeditor.com/ticket/10190).
                                // Since CKEditor 4.4 style knows about editor (at least when it's being applied/removed), but we
                                // use _.enterMode for backward compatibility with those hacks.
                                // Note: we should not change style's enter mode if it was already set.
@@ -569,7 +569,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                        var styleVal = stylesDef[ style ],
                                text = ( style + ':' + styleVal ).replace( semicolonFixRegex, ';' );
 
-                       // Some browsers don't support 'inherit' property value, leave them intact. (#5242)
+                       // Some browsers don't support 'inherit' property value, leave them intact. (http://dev.ckeditor.com/ticket/5242)
                        if ( styleVal == 'inherit' )
                                specialStylesText += text;
                        else
@@ -1024,7 +1024,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                                        if ( !CKEDITOR.env.ie )
                                                styleNode.$.normalize();
                                }
-                               // Style already inherit from parents, left just to clear up any internal overrides. (#5931)
+                               // Style already inherit from parents, left just to clear up any internal overrides. (http://dev.ckeditor.com/ticket/5931)
                                else {
                                        styleNode = new CKEDITOR.dom.element( 'span' );
                                        styleRange.extractContents().appendTo( styleNode );
@@ -1042,7 +1042,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                // Remove the bookmark nodes.
                range.moveToBookmark( boundaryNodes );
 
-               // Minimize the result range to exclude empty text nodes. (#5374)
+               // Minimize the result range to exclude empty text nodes. (http://dev.ckeditor.com/ticket/5374)
                range.shrink( CKEDITOR.SHRINK_TEXT );
 
                // Get inside the remaining element if range.shrink( TEXT ) has failed because of non-editable elements inside.
@@ -1058,27 +1058,31 @@ CKEDITOR.STYLE_OBJECT = 3;
                range.enlarge( CKEDITOR.ENLARGE_INLINE, 1 );
 
                var bookmark = range.createBookmark(),
-                       startNode = bookmark.startNode;
+                       startNode = bookmark.startNode,
+                       alwaysRemoveElement = this._.definition.alwaysRemoveElement;
 
                if ( range.collapsed ) {
                        var startPath = new CKEDITOR.dom.elementPath( startNode.getParent(), range.root ),
-                               // The topmost element in elementspatch which we should jump out of.
+                               // The topmost element in elements path which we should jump out of.
                                boundaryElement;
 
-
                        for ( var i = 0, element; i < startPath.elements.length && ( element = startPath.elements[ i ] ); i++ ) {
                                // 1. If it's collaped inside text nodes, try to remove the style from the whole element.
                                //
                                // 2. Otherwise if it's collapsed on element boundaries, moving the selection
                                //  outside the styles instead of removing the whole tag,
-                               //  also make sure other inner styles were well preserverd.(#3309)
-                               if ( element == startPath.block || element == startPath.blockLimit )
+                               //  also make sure other inner styles were well preserved.(http://dev.ckeditor.com/ticket/3309)
+                               //
+                               // 3. Force removing the element even if it's an boundary element when alwaysRemoveElement is true.
+                               // Without it, the links won't be unlinked if the cursor is placed right before/after it. (http://dev.ckeditor.com/ticket/13062)
+                               if ( element == startPath.block || element == startPath.blockLimit ) {
                                        break;
+                               }
 
                                if ( this.checkElementRemovable( element ) ) {
                                        var isStart;
 
-                                       if ( range.collapsed && ( range.checkBoundaryOfElement( element, CKEDITOR.END ) || ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) ) {
+                                       if ( !alwaysRemoveElement && range.collapsed && ( range.checkBoundaryOfElement( element, CKEDITOR.END ) || ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) ) {
                                                boundaryElement = element;
                                                boundaryElement.match = isStart ? 'start' : 'end';
                                        } else {
@@ -1087,10 +1091,11 @@ CKEDITOR.STYLE_OBJECT = 3;
                                                // no difference that they're separate entities in the DOM tree. So, merge
                                                // them before removal.
                                                element.mergeSiblings();
-                                               if ( element.is( this.element ) )
+                                               if ( element.is( this.element ) ) {
                                                        removeFromElement.call( this, element );
-                                               else
+                                               } else {
                                                        removeOverrides( element, getOverrides( this )[ element.getName() ] );
+                                               }
                                        }
                                }
                        }
@@ -1235,7 +1240,7 @@ CKEDITOR.STYLE_OBJECT = 3;
        }
 
        function applyObjectStyle( range ) {
-               // Selected or parent element. (#9651)
+               // Selected or parent element. (http://dev.ckeditor.com/ticket/9651)
                var start = range.getEnclosedNode() || range.getCommonAncestor( false, true ),
                        element = new CKEDITOR.dom.elementPath( start, range.root ).contains( this.element, 1 );
 
@@ -1276,7 +1281,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                var iterator = range.createIterator();
                iterator.enforceRealBlocks = true;
 
-               // make recognize <br /> tag as a separator in ENTER_BR mode (#5121)
+               // make recognize <br /> tag as a separator in ENTER_BR mode (http://dev.ckeditor.com/ticket/5121)
                if ( this._.enterMode )
                        iterator.enlargeBr = ( this._.enterMode != CKEDITOR.ENTER_BR );
 
@@ -1326,7 +1331,7 @@ CKEDITOR.STYLE_OBJECT = 3;
 
        // Replace the original block with new one, with special treatment
        // for <pre> blocks to make sure content format is well preserved, and merging/splitting adjacent
-       // when necessary. (#3188)
+       // when necessary. (http://dev.ckeditor.com/ticket/3188)
        function replaceBlock( block, newBlock ) {
                // Block is to be removed, create a temp element to
                // save contents.
@@ -1502,11 +1507,11 @@ CKEDITOR.STYLE_OBJECT = 3;
 
                // Remove definition attributes/style from the elemnt.
                for ( var attName in attributes ) {
-                       // The 'class' element value must match (#1318).
+                       // The 'class' element value must match (http://dev.ckeditor.com/ticket/1318).
                        if ( ( attName == 'class' || this._.definition.fullMatch ) && element.getAttribute( attName ) != normalizeProperty( attName, attributes[ attName ] ) )
                                continue;
 
-                       // Do not touch data-* attributes (#11011) (#11258).
+                       // Do not touch data-* attributes (http://dev.ckeditor.com/ticket/11011) (http://dev.ckeditor.com/ticket/11258).
                        if ( keepDataAttrs && attName.slice( 0, 5 ) == 'data-' )
                                continue;
 
@@ -1515,7 +1520,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                }
 
                for ( var styleName in styles ) {
-                       // Full match style insist on having fully equivalence. (#5018)
+                       // Full match style insist on having fully equivalence. (http://dev.ckeditor.com/ticket/5018)
                        if ( this._.definition.fullMatch && element.getStyle( styleName ) != normalizeProperty( styleName, styles[ styleName ], true ) )
                                continue;
 
@@ -1649,7 +1654,7 @@ CKEDITOR.STYLE_OBJECT = 3;
                // Create the element.
                el = new CKEDITOR.dom.element( elementName, targetDocument );
 
-               // #6226: attributes should be copied before the new ones are applied
+               // http://dev.ckeditor.com/ticket/6226: attributes should be copied before the new ones are applied
                if ( element )
                        element.copyAttributes( el );
 
@@ -1794,15 +1799,28 @@ CKEDITOR.STYLE_OBJECT = 3;
        // is treated as a wildcard which will match any value.
        // @param {Object/String} source
        // @param {Object/String} target
+       // @returns {Boolean}
        function compareCssText( source, target ) {
+               function filter( string, propertyName ) {
+                       // In case of font-families we'll skip quotes. (http://dev.ckeditor.com/ticket/10750)
+                       return propertyName.toLowerCase() == 'font-family' ? string.replace( /["']/g, '' ) : string;
+               }
+
                if ( typeof source == 'string' )
                        source = CKEDITOR.tools.parseCssText( source );
                if ( typeof target == 'string' )
                        target = CKEDITOR.tools.parseCssText( target, true );
 
                for ( var name in source ) {
-                       if ( !( name in target && ( target[ name ] == source[ name ] || source[ name ] == 'inherit' || target[ name ] == 'inherit' ) ) )
+                       if ( !( name in target ) ) {
                                return false;
+                       }
+
+                       if ( !( filter( target[ name ], name ) == filter( source[ name ], name ) ||
+                               source[ name ] == 'inherit' ||
+                               target[ name ] == 'inherit' ) ) {
+                               return false;
+                       }
                }
                return true;
        }
@@ -1811,13 +1829,25 @@ CKEDITOR.STYLE_OBJECT = 3;
                var doc = selection.document,
                        ranges = selection.getRanges(),
                        func = remove ? this.removeFromRange : this.applyToRange,
-                       range;
+                       originalRanges,
+                       range,
+                       i;
+
+               // In case of fake table selection, we would like to apply all styles and then select
+               // the original ranges. Otherwise browsers would complain about discontiguous selection.
+               if ( selection.isFake && selection.isInTable() ) {
+                       originalRanges = [];
+
+                       for ( i = 0; i < ranges.length; i++ ) {
+                               originalRanges.push( ranges[ i ].clone() );
+                       }
+               }
 
                var iterator = ranges.createIterator();
                while ( ( range = iterator.getNextRange() ) )
                        func.call( this, range, editor );
 
-               selection.selectRanges( ranges );
+               selection.selectRanges( originalRanges || ranges );
                doc.removeCustomData( 'doc_processing_style' );
        }
 } )();
@@ -1888,7 +1918,7 @@ CKEDITOR.styleCommand.prototype.exec = function( editor ) {
  */
 CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
 
-// Backward compatibility (#5025).
+// Backward compatibility (http://dev.ckeditor.com/ticket/5025).
 CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
 CKEDITOR.loadStylesSet = function( name, url, callback ) {
        CKEDITOR.stylesSet.addExternal( name, url, '' );
@@ -1991,7 +2021,7 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
                                return;
                        }
 
-                       // #5352 Allow to define the styles directly in the config object
+                       // http://dev.ckeditor.com/ticket/5352 Allow to define the styles directly in the config object
                        if ( configStyleSet instanceof Array ) {
                                editor._.stylesDefinitions = configStyleSet;
                                callback( configStyleSet );
index a3fe55b54215ff43108e12abc64d52745dbfd10c..a627c34d2281ebb494d105af710048240e24805f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -9,11 +9,7 @@
  */
 
 ( function() {
-       var cache = {},
-               rePlaceholder = /{([^}]+)}/g,
-               reEscapableChars = /([\\'])/g,
-               reNewLine = /\n/g,
-               reCarriageReturn = /\r/g;
+       var rePlaceholder = /{([^}]+)}/g;
 
        /**
         * Lightweight template used to build the output string from variables.
         * @param {String} source The template source.
         */
        CKEDITOR.template = function( source ) {
-               // Builds an optimized function body for the output() method, focused on performance.
-               // For example, if we have this "source":
-               //      '<div style="{style}">{editorName}</div>'
-               // ... the resulting function body will be (apart from the "buffer" handling):
-               //      return [ '<div style="', data['style'] == undefined ? '{style}' : data['style'], '">', data['editorName'] == undefined ? '{editorName}' : data['editorName'], '</div>' ].join('');
+               /**
+                * The current template source.
+                *
+                * @readonly
+                * @member CKEDITOR.template
+                * @property {String}
+                */
+               this.source = String( source );
+       };
 
-               // Try to read from the cache.
-               if ( cache[ source ] )
-                       this.output = cache[ source ];
-               else {
-                       var fn = source
-                               // Escape chars like slash "\" or single quote "'".
-                               .replace( reEscapableChars, '\\$1' )
-                               .replace( reNewLine, '\\n' )
-                               .replace( reCarriageReturn, '\\r' )
-                               // Inject the template keys replacement.
-                               .replace( rePlaceholder, function( m, key ) {
-                                       return "',data['" + key + "']==undefined?'{" + key + "}':data['" + key + "'],'";
-                               } );
+       /**
+        * Processes the template, filling its variables with the provided data.
+        *
+        * @method
+        * @member CKEDITOR.template
+        * @param {Object} data An object containing properties whose values will be
+        * used to fill the template variables. The property names must match the
+        * template variables names. Variables without matching properties will be
+        * kept untouched.
+        * @param {Array} [buffer] An array that the output data will be pushed into.
+        * The number of entries appended to the array is unknown.
+        * @returns {String/Number} If `buffer` has not been provided, the processed
+        * template output data; otherwise the new length of `buffer`.
+        */
+       CKEDITOR.template.prototype.output = function( data, buffer ) {
+               var output = this.source.replace( rePlaceholder, function( fullMatch, dataKey ) {
+                       return data[ dataKey ] !== undefined ? data[ dataKey ] : fullMatch;
+               } );
 
-                       fn = "return buffer?buffer.push('" + fn + "'):['" + fn + "'].join('');";
-                       this.output = cache[ source ] = Function( 'data', 'buffer', fn );
-               }
+               return buffer ? buffer.push( output ) : output;
        };
 } )();
-
-/**
- * Processes the template, filling its variables with the provided data.
- *
- * @method output
- * @param {Object} data An object containing properties which values will be
- * used to fill the template variables. The property names must match the
- * template variables names. Variables without matching properties will be
- * kept untouched.
- * @param {Array} [buffer] An array into which the output data will be pushed into.
- * The number of entries appended to the array is unknown.
- * @returns {String/Number} If `buffer` has not been provided, the processed
- * template output data, otherwise the new length of `buffer`.
- */
index ae5b4d0ff3a9c18144ab88dfbd73f000b7775657..a4b736d647700bb6b59f3701a0f19b398f14dc9c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
                        } );
                },
 
+               /**
+                * Normalizes hexadecimal notation so that the color string is always 6 characters long and lowercase.
+                *
+                * @param {String} styleText The style data (or just a string containing hex colors) to be converted.
+                * @returns {String} The style data with hex colors normalized.
+                */
+               normalizeHex: function( styleText ) {
+                       return styleText.replace( /#(([0-9a-f]{3}){1,2})($|;|\s+)/gi, function( match, hexColor, hexColorPart, separator ) {
+                               var normalizedHexColor = hexColor.toLowerCase();
+                               if ( normalizedHexColor.length == 3 ) {
+                                       var parts = normalizedHexColor.split( '' );
+                                       normalizedHexColor = [ parts[ 0 ], parts[ 0 ], parts[ 1 ], parts[ 1 ], parts[ 2 ], parts[ 2 ] ].join( '' );
+                               }
+                               return '#' + normalizedHexColor + separator;
+                       } );
+               },
+
                /**
                 * Turns inline style text properties into one hash.
                 *
                                // Injects the style in a temporary span object, so the browser parses it,
                                // retrieving its final format.
                                var temp = new CKEDITOR.dom.element( 'span' );
-                               temp.setAttribute( 'style', styleText );
-                               styleText = CKEDITOR.tools.convertRgbToHex( temp.getAttribute( 'style' ) || '' );
+                               styleText = temp.setAttribute( 'style', styleText ).getAttribute( 'style' ) || '';
+                       }
+
+                       // Normalize colors.
+                       if ( styleText ) {
+                               styleText = CKEDITOR.tools.normalizeHex( CKEDITOR.tools.convertRgbToHex( styleText ) );
                        }
 
-                       // IE will leave a single semicolon when failed to parse the style text. (#3891)
+                       // IE will leave a single semicolon when failed to parse the style text. (http://dev.ckeditor.com/ticket/3891)
                        if ( !styleText || styleText == ';' )
                                return retval;
 
                        styleText.replace( /&quot;/g, '"' ).replace( /\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) {
                                if ( normalize ) {
                                        name = name.toLowerCase();
-                                       // Normalize font-family property, ignore quotes and being case insensitive. (#7322)
-                                       // http://www.w3.org/TR/css3-fonts/#font-family-the-font-family-property
+                                       // Drop extra whitespacing from font-family.
                                        if ( name == 'font-family' )
-                                               value = value.toLowerCase().replace( /["']/g, '' ).replace( /\s*,\s*/g, ',' );
+                                               value = value.replace( /\s*,\s*/g, ',' );
                                        value = CKEDITOR.tools.trim( value );
                                }
 
                        return false;
                },
 
+               /**
+                * Converts a keystroke to its string representation. Returns an object with two fields:
+                *
+                * * `display` &ndash; A string that should be used for visible labels.
+                * For Mac devices it uses `⌥` for `ALT`, `⇧` for `SHIFT` and `⌘` for `COMMAND`.
+                * * `aria` &ndash; A string that should be used for ARIA descriptions.
+                * It does not use special characters such as `⌥`, `⇧` or `⌘`.
+                *
+                *              var lang = editor.lang.common.keyboard;
+                *              var shortcut = CKEDITOR.tools.keystrokeToString( lang, CKEDITOR.CTRL + 88 );
+                *              console.log( shortcut.display ); // 'CTRL + X', on Mac '⌘ + X'.
+                *              console.log( shortcut.aria ); // 'CTRL + X', on Mac 'COMMAND + X'.
+                *
+                * @since 4.6.0
+                * @param {Object} lang A language object with the key name translation.
+                * @param {Number} keystroke The keystroke to convert.
+                * @returns {{display: String, aria: String}}
+                */
+               keystrokeToString: function( lang, keystroke ) {
+                       var special = keystroke & 0xFF0000,
+                               key = keystroke & 0x00FFFF,
+                               isMac = CKEDITOR.env.mac,
+                               CTRL = 17,
+                               CMD = 224,
+                               ALT = 18,
+                               SHIFT = 16,
+                               display = [],
+                               aria = [];
+
+
+                       if ( special & CKEDITOR.CTRL ) {
+                               display.push( isMac ? '⌘' : lang[ CTRL ] );
+                               aria.push( isMac ? lang[ CMD ] : lang[ CTRL ] );
+                       }
+
+                       if ( special & CKEDITOR.ALT ) {
+                               display.push( isMac ? '⌥' : lang[ ALT ] );
+                               aria.push( lang[ ALT ] );
+                       }
+
+                       if ( special & CKEDITOR.SHIFT ) {
+                               display.push( isMac ? '⇧' : lang[ SHIFT ] );
+                               aria.push( lang[ SHIFT ] );
+                       }
+
+                       if ( key ) {
+                               if ( lang[ key ] ) {
+                                       display.push( lang[ key ] );
+                                       aria.push( lang[ key ] );
+                               } else {
+                                       display.push( String.fromCharCode( key ) );
+                                       aria.push( String.fromCharCode( key ) );
+                               }
+                       }
+
+                       return {
+                               display: display.join( '+' ),
+                               aria: aria.join( '+' )
+                       };
+               },
+
                /**
                 * The data URI of a transparent image. May be used e.g. in HTML as an image source or in CSS in `url()`.
                 *
                        }
 
                        return token;
+               },
+
+               /**
+                * Returns an escaped CSS selector. `CSS.escape()` is used if defined, leading digit is escaped otherwise.
+                *
+                * @since 4.5.10
+                * @param {String} selector A CSS selector to escape.
+                * @returns {String} An escaped selector.
+                */
+               escapeCss: function( selector ) {
+                       // Invalid input.
+                       if ( !selector ) {
+                               return '';
+                       }
+
+                       // CSS.escape() can be used.
+                       if ( window.CSS && CSS.escape ) {
+                               return CSS.escape( selector );
+                       }
+
+                       // Simple leading digit escape.
+                       if ( !isNaN( parseInt( selector.charAt( 0 ), 10 ) ) ) {
+                               return '\\3' + selector.charAt( 0 ) + ' ' + selector.substring( 1, selector.length );
+                       }
+
+                       return selector;
+               },
+
+               /**
+                * Detects which mouse button generated a given DOM event.
+                *
+                * @since 4.7.3
+                * @param {CKEDITOR.dom.event} evt DOM event.
+                * @returns {Number|Boolean} Returns a number indicating the mouse button or `false`
+                * if the mouse button cannot be determined.
+                */
+               getMouseButton: function( evt ) {
+                       var evtData = evt.data,
+                               domEvent = evtData && evtData.$;
+
+                       if ( !( evtData && domEvent ) ) {
+                               // Added in case when there's no data available. That's the case in some unit test in built version which
+                               // mock event but doesn't put data object.
+                               return false;
+                       }
+
+                       if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {
+                               if ( domEvent.button === 4 ) {
+                                       return CKEDITOR.MOUSE_BUTTON_MIDDLE;
+                               } else if ( domEvent.button === 1 ) {
+                                       return CKEDITOR.MOUSE_BUTTON_LEFT;
+                               } else {
+                                       return CKEDITOR.MOUSE_BUTTON_RIGHT;
+                               }
+                       }
+
+                       return domEvent.button;
+               },
+
+               /**
+                * A set of functions for operations on styles.
+                *
+                * @property {CKEDITOR.tools.style}
+                */
+               style: {
+                       /**
+                        * Methods to parse miscellaneous CSS properties.
+                        *
+                        * @property {CKEDITOR.tools.style.parse}
+                        * @member CKEDITOR.tools.style
+                        */
+                       parse: {
+                               // Color list based on https://www.w3.org/TR/css-color-4/#named-colors.
+                               _colors: {
+                                       aliceblue: '#F0F8FF',
+                                       antiquewhite: '#FAEBD7',
+                                       aqua: '#00FFFF',
+                                       aquamarine: '#7FFFD4',
+                                       azure: '#F0FFFF',
+                                       beige: '#F5F5DC',
+                                       bisque: '#FFE4C4',
+                                       black: '#000000',
+                                       blanchedalmond: '#FFEBCD',
+                                       blue: '#0000FF',
+                                       blueviolet: '#8A2BE2',
+                                       brown: '#A52A2A',
+                                       burlywood: '#DEB887',
+                                       cadetblue: '#5F9EA0',
+                                       chartreuse: '#7FFF00',
+                                       chocolate: '#D2691E',
+                                       coral: '#FF7F50',
+                                       cornflowerblue: '#6495ED',
+                                       cornsilk: '#FFF8DC',
+                                       crimson: '#DC143C',
+                                       cyan: '#00FFFF',
+                                       darkblue: '#00008B',
+                                       darkcyan: '#008B8B',
+                                       darkgoldenrod: '#B8860B',
+                                       darkgray: '#A9A9A9',
+                                       darkgreen: '#006400',
+                                       darkgrey: '#A9A9A9',
+                                       darkkhaki: '#BDB76B',
+                                       darkmagenta: '#8B008B',
+                                       darkolivegreen: '#556B2F',
+                                       darkorange: '#FF8C00',
+                                       darkorchid: '#9932CC',
+                                       darkred: '#8B0000',
+                                       darksalmon: '#E9967A',
+                                       darkseagreen: '#8FBC8F',
+                                       darkslateblue: '#483D8B',
+                                       darkslategray: '#2F4F4F',
+                                       darkslategrey: '#2F4F4F',
+                                       darkturquoise: '#00CED1',
+                                       darkviolet: '#9400D3',
+                                       deeppink: '#FF1493',
+                                       deepskyblue: '#00BFFF',
+                                       dimgray: '#696969',
+                                       dimgrey: '#696969',
+                                       dodgerblue: '#1E90FF',
+                                       firebrick: '#B22222',
+                                       floralwhite: '#FFFAF0',
+                                       forestgreen: '#228B22',
+                                       fuchsia: '#FF00FF',
+                                       gainsboro: '#DCDCDC',
+                                       ghostwhite: '#F8F8FF',
+                                       gold: '#FFD700',
+                                       goldenrod: '#DAA520',
+                                       gray: '#808080',
+                                       green: '#008000',
+                                       greenyellow: '#ADFF2F',
+                                       grey: '#808080',
+                                       honeydew: '#F0FFF0',
+                                       hotpink: '#FF69B4',
+                                       indianred: '#CD5C5C',
+                                       indigo: '#4B0082',
+                                       ivory: '#FFFFF0',
+                                       khaki: '#F0E68C',
+                                       lavender: '#E6E6FA',
+                                       lavenderblush: '#FFF0F5',
+                                       lawngreen: '#7CFC00',
+                                       lemonchiffon: '#FFFACD',
+                                       lightblue: '#ADD8E6',
+                                       lightcoral: '#F08080',
+                                       lightcyan: '#E0FFFF',
+                                       lightgoldenrodyellow: '#FAFAD2',
+                                       lightgray: '#D3D3D3',
+                                       lightgreen: '#90EE90',
+                                       lightgrey: '#D3D3D3',
+                                       lightpink: '#FFB6C1',
+                                       lightsalmon: '#FFA07A',
+                                       lightseagreen: '#20B2AA',
+                                       lightskyblue: '#87CEFA',
+                                       lightslategray: '#778899',
+                                       lightslategrey: '#778899',
+                                       lightsteelblue: '#B0C4DE',
+                                       lightyellow: '#FFFFE0',
+                                       lime: '#00FF00',
+                                       limegreen: '#32CD32',
+                                       linen: '#FAF0E6',
+                                       magenta: '#FF00FF',
+                                       maroon: '#800000',
+                                       mediumaquamarine: '#66CDAA',
+                                       mediumblue: '#0000CD',
+                                       mediumorchid: '#BA55D3',
+                                       mediumpurple: '#9370DB',
+                                       mediumseagreen: '#3CB371',
+                                       mediumslateblue: '#7B68EE',
+                                       mediumspringgreen: '#00FA9A',
+                                       mediumturquoise: '#48D1CC',
+                                       mediumvioletred: '#C71585',
+                                       midnightblue: '#191970',
+                                       mintcream: '#F5FFFA',
+                                       mistyrose: '#FFE4E1',
+                                       moccasin: '#FFE4B5',
+                                       navajowhite: '#FFDEAD',
+                                       navy: '#000080',
+                                       oldlace: '#FDF5E6',
+                                       olive: '#808000',
+                                       olivedrab: '#6B8E23',
+                                       orange: '#FFA500',
+                                       orangered: '#FF4500',
+                                       orchid: '#DA70D6',
+                                       palegoldenrod: '#EEE8AA',
+                                       palegreen: '#98FB98',
+                                       paleturquoise: '#AFEEEE',
+                                       palevioletred: '#DB7093',
+                                       papayawhip: '#FFEFD5',
+                                       peachpuff: '#FFDAB9',
+                                       peru: '#CD853F',
+                                       pink: '#FFC0CB',
+                                       plum: '#DDA0DD',
+                                       powderblue: '#B0E0E6',
+                                       purple: '#800080',
+                                       rebeccapurple: '#663399',
+                                       red: '#FF0000',
+                                       rosybrown: '#BC8F8F',
+                                       royalblue: '#4169E1',
+                                       saddlebrown: '#8B4513',
+                                       salmon: '#FA8072',
+                                       sandybrown: '#F4A460',
+                                       seagreen: '#2E8B57',
+                                       seashell: '#FFF5EE',
+                                       sienna: '#A0522D',
+                                       silver: '#C0C0C0',
+                                       skyblue: '#87CEEB',
+                                       slateblue: '#6A5ACD',
+                                       slategray: '#708090',
+                                       slategrey: '#708090',
+                                       snow: '#FFFAFA',
+                                       springgreen: '#00FF7F',
+                                       steelblue: '#4682B4',
+                                       tan: '#D2B48C',
+                                       teal: '#008080',
+                                       thistle: '#D8BFD8',
+                                       tomato: '#FF6347',
+                                       turquoise: '#40E0D0',
+                                       violet: '#EE82EE',
+                                       wheat: '#F5DEB3',
+                                       white: '#FFFFFF',
+                                       whitesmoke: '#F5F5F5',
+                                       yellow: '#FFFF00',
+                                       yellowgreen: '#9ACD32'
+                               },
+
+                               _borderStyle: [
+                                       'none',
+                                       'hidden',
+                                       'dotted',
+                                       'dashed',
+                                       'solid',
+                                       'double',
+                                       'groove',
+                                       'ridge',
+                                       'inset',
+                                       'outset'
+                               ],
+
+                               _widthRegExp: /^(thin|medium|thick|[\+-]?\d+(\.\d+)?[a-z%]+|[\+-]?0+(\.0+)?|\.\d+[a-z%]+)$/,
+
+                               _rgbaRegExp: /rgba?\(\s*\d+%?\s*,\s*\d+%?\s*,\s*\d+%?\s*(?:,\s*[0-9.]+\s*)?\)/gi,
+
+                               _hslaRegExp: /hsla?\(\s*[0-9.]+\s*,\s*\d+%\s*,\s*\d+%\s*(?:,\s*[0-9.]+\s*)?\)/gi,
+
+                               /**
+                                * Parses the `value` used as a `background` property shorthand and returns information as an object.
+                                *
+                                * **Note:** Currently only the `color` property is extracted. Any other parts will go into the `unprocessed` property.
+                                *
+                                *              var background = CKEDITOR.tools.style.parse.background( '#0C0 url(foo.png)' );
+                                *              console.log( background );
+                                *              // Logs: { color: '#0C0', unprocessed: 'url(foo.png)' }
+                                *
+                                * @param {String} value The value of the `background` property.
+                                * @returns {Object} An object with information extracted from the background.
+                                * @returns {String} return.color The **first** color value found. The color format remains the same as in input.
+                                * @returns {String} return.unprocessed The remaining part of the `value` that has not been processed.
+                                * @member CKEDITOR.tools.style.parse
+                                */
+                               background: function( value ) {
+                                       var ret = {},
+                                               colors = this._findColor( value );
+
+                                       if ( colors.length ) {
+                                               ret.color = colors[ 0 ];
+
+                                               CKEDITOR.tools.array.forEach( colors, function( colorToken ) {
+                                                       value = value.replace( colorToken, '' );
+                                               } );
+                                       }
+
+                                       value = CKEDITOR.tools.trim( value );
+
+                                       if ( value ) {
+                                               // If anything was left unprocessed include it as unprocessed part.
+                                               ret.unprocessed = value;
+                                       }
+
+                                       return ret;
+                               },
+
+                               /**
+                                * Parses the `margin` CSS property shorthand format.
+                                *
+                                *              console.log( CKEDITOR.tools.parse.margin( '3px 0 2' ) );
+                                *              // Logs: { top: "3px", right: "0", bottom: "2", left: "0" }
+                                *
+                                * @param {String} value The `margin` property value.
+                                * @returns {Object}
+                                * @returns {Number} return.top Top margin.
+                                * @returns {Number} return.right Right margin.
+                                * @returns {Number} return.bottom Bottom margin.
+                                * @returns {Number} return.left Left margin.
+                                * @member CKEDITOR.tools.style.parse
+                                */
+                               margin: function( value ) {
+                                       var ret = {};
+
+                                       var widths = value.match( /(?:\-?[\.\d]+(?:%|\w*)|auto|inherit|initial|unset)/g ) || [ '0px' ];
+
+                                       switch ( widths.length ) {
+                                               case 1:
+                                                       mapStyles( [ 0, 0, 0, 0 ] );
+                                                       break;
+                                               case 2:
+                                                       mapStyles( [ 0, 1, 0, 1 ] );
+                                                       break;
+                                               case 3:
+                                                       mapStyles( [ 0, 1, 2, 1 ] );
+                                                       break;
+                                               case 4:
+                                                       mapStyles( [ 0, 1, 2, 3 ] );
+                                                       break;
+                                       }
+
+                                       function mapStyles( map ) {
+                                               ret.top = widths[ map[ 0 ] ];
+                                               ret.right = widths[ map[ 1 ] ];
+                                               ret.bottom = widths[ map[ 2 ] ];
+                                               ret.left = widths[ map[ 3 ] ];
+                                       }
+
+                                       return ret;
+                               },
+
+                               /**
+                                * Parses the `border` CSS property shorthand format.
+                                * This CSS property does not support inheritance (https://www.w3.org/TR/css3-background/#the-border-shorthands).
+                                *
+                                *              console.log( CKEDITOR.tools.style.parse.border( '3px solid #ffeedd' ) );
+                                *              // Logs: { width: "3px", style: "solid", color: "#ffeedd" }
+                                *
+                                * @param {String} value The `border` property value.
+                                * @returns {Object}
+                                * @returns {String} return.width The border-width attribute.
+                                * @returns {String} return.style The border-style attribute.
+                                * @returns {String} return.color The border-color attribute.
+                                * @member CKEDITOR.tools.style.parse
+                                */
+                               border: function( value ) {
+                                       var ret = {},
+                                               input = value.split( /\s+/ );
+
+                                       CKEDITOR.tools.array.forEach( input, function( val ) {
+                                               if ( !ret.color ) {
+                                                       var parseColor = CKEDITOR.tools.style.parse._findColor( val );
+                                                       if ( parseColor.length ) {
+                                                               ret.color = parseColor[ 0 ];
+                                                               return;
+                                                       }
+                                               }
+
+                                               if ( !ret.style ) {
+                                                       if ( CKEDITOR.tools.indexOf( CKEDITOR.tools.style.parse._borderStyle, val ) !== -1 ) {
+                                                               ret.style = val;
+                                                               return;
+                                                       }
+                                               }
+
+                                               if ( !ret.width ) {
+                                                       if ( CKEDITOR.tools.style.parse._widthRegExp.test( val ) ) {
+                                                               ret.width = val;
+                                                               return;
+                                                       }
+                                               }
+
+                                       } );
+                                       return ret;
+                               },
+
+                               /**
+                                * Searches the `value` for any CSS color occurrences and returns it.
+                                *
+                                * @private
+                                * @param {String} value
+                                * @returns {String[]} An array of matched results.
+                                * @member CKEDITOR.tools.style.parse
+                                */
+                               _findColor: function( value ) {
+                                       var ret = [],
+                                               arrayTools = CKEDITOR.tools.array;
+
+
+                                       // Check for rgb(a).
+                                       ret = ret.concat( value.match( this._rgbaRegExp ) || [] );
+
+                                       // Check for hsl(a).
+                                       ret = ret.concat( value.match( this._hslaRegExp ) || [] );
+
+                                       ret = ret.concat( arrayTools.filter( value.split( /\s+/ ), function( colorEntry ) {
+                                               // Check for hex format.
+                                               if ( colorEntry.match( /^\#[a-f0-9]{3}(?:[a-f0-9]{3})?$/gi ) ) {
+                                                       return true;
+                                               }
+
+                                               // Check for preset names.
+                                               return colorEntry.toLowerCase() in CKEDITOR.tools.style.parse._colors;
+                                       } ) );
+
+                                       return ret;
+                               }
+                       }
+               },
+
+               /**
+                * A set of array helpers.
+                *
+                * @property {CKEDITOR.tools.array}
+                * @member CKEDITOR.tools
+                */
+               array: {
+                       /**
+                        * Returns a copy of `array` filtered using the `fn` function. Any elements that the `fn` will return `false` for
+                        * will get removed from the returned array.
+                        *
+                        *              var filtered = this.array.filter( [ 0, 1, 2, 3 ], function( value ) {
+                        *                      // Leave only values equal or greater than 2.
+                        *                      return value >= 2;
+                        *              } );
+                        *              console.log( filtered );
+                        *              // Logs: [ 2, 3 ]
+                        *
+                        * @param {Array} array
+                        * @param {Function} fn A function that gets called with each `array` item. Any item that `fn`
+                        * returned a `false`-alike value for will be filtered out of the `array`.
+                        * @param {Mixed} fn.value The currently iterated array value.
+                        * @param {Number} fn.index The index of the currently iterated value in an array.
+                        * @param {Array} fn.array The original array passed as the `array` variable.
+                        * @param {Mixed} [thisArg=undefined] A context object for `fn`.
+                        * @returns {Array} The filtered array.
+                        * @member CKEDITOR.tools.array
+                        */
+                       filter: function( array, fn, thisArg ) {
+                               var ret = [];
+
+                               this.forEach( array, function( val, i ) {
+                                       if ( fn.call( thisArg, val, i, array ) ) {
+                                               ret.push( val );
+                                       }
+                               } );
+
+                               return ret;
+                       },
+
+                       /**
+                        * Iterates over every element in the `array`.
+                        *
+                        * @param {Array} array An array to be iterated over.
+                        * @param {Function} fn The function called for every `array` element.
+                        * @param {Mixed} fn.value The currently iterated array value.
+                        * @param {Number} fn.index The index of the currently iterated value in an array.
+                        * @param {Array} fn.array The original array passed as an `array` variable.
+                        * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+                        * @member CKEDITOR.tools.array
+                        */
+                       forEach: function( array, fn, thisArg ) {
+                               var len = array.length,
+                                       i;
+
+                               for ( i = 0; i < len; i++ ) {
+                                       fn.call( thisArg, array[ i ], i, array );
+                               }
+                       },
+
+                       /**
+                        * Applies a function to each element of an array and returns the array of results in the same order.
+                        * Note the order of the parameters.
+                        *
+                        * @param {Array} array An array of elements that `fn` is applied on.
+                        * @param {Function} fn A function with the signature `a -> b`.
+                        * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+                        * @returns {Array} An array of mapped elements.
+                        * @member CKEDITOR.tools.array
+                        * @since 4.6.2
+                        */
+                       map: function( array, fn, thisArg ) {
+                               var result = [];
+                               for ( var i = 0; i < array.length; i++ ) {
+                                       result.push( fn.call( thisArg, array[ i ], i, array ) );
+                               }
+                               return result;
+                       },
+
+                       /**
+                        * Applies a function against each value in an array storing the result in an accumulator passed to the next iteration.
+                        * Note the order of the parameters.
+                        *
+                        * @param {Array} array An array of elements that `fn` is applied on.
+                        * @param {Function} fn A function with the signature `(accumulator, a, index, array) -> b`.
+                        * @param {Mixed} initial Initial value of the accumulator.
+                        * @param {Mixed} [thisArg=undefined] The context object for `fn`.
+                        * @returns {Mixed} The final value of the accumulator.
+                        * @member CKEDITOR.tools.array
+                        * @since 4.6.2
+                       */
+                       reduce: function( array, fn, initial, thisArg ) {
+                               var acc = initial;
+                               for ( var i = 0; i < array.length; i++ ) {
+                                       acc = fn.call( thisArg, acc, array[ i ], i, array );
+                               }
+                               return acc;
+                       }
+               },
+
+               /**
+                * A set of object helpers.
+                *
+                * @property {CKEDITOR.tools.object}
+                * @member CKEDITOR.tools
+                */
+               object: {
+                       /**
+                        * Returns the first key from `obj` which has a given `value`.
+                        *
+                        * @param {Object} obj An object whose `key` is looked for.
+                        * @param {Mixed} value An object's `value` to be looked for.
+                        * @returns {String/null} Matched `key` or `null` if not found.
+                        * @member CKEDITOR.tools.object
+                        */
+
+                       findKey: function( obj, value ) {
+                               if ( typeof obj !== 'object' ) {
+                                       return null;
+                               }
+
+                               var key;
+
+                               for ( key in obj ) {
+                                       if ( obj[ key ] === value ) {
+                                               return key;
+                                       }
+                               }
+
+                               return null;
+                       }
                }
        };
 
 
                return result;
        }
+
+       /**
+        * @member CKEDITOR.tools.array
+        * @method indexOf
+        * @inheritdoc CKEDITOR.tools#indexOf
+        */
+       CKEDITOR.tools.array.indexOf = CKEDITOR.tools.indexOf;
+
+       /**
+        * @member CKEDITOR.tools.array
+        * @method isArray
+        * @inheritdoc CKEDITOR.tools#isArray
+        */
+       CKEDITOR.tools.array.isArray = CKEDITOR.tools.isArray;
+
+       /**
+        * Left mouse button.
+        *
+        * @since 4.7.3
+        * @readonly
+        * @property {Number} [=0]
+        * @member CKEDITOR
+        */
+       CKEDITOR.MOUSE_BUTTON_LEFT = 0;
+
+       /**
+        * Middle mouse button.
+        *
+        * @since 4.7.3
+        * @readonly
+        * @property {Number} [=1]
+        * @member CKEDITOR
+        */
+       CKEDITOR.MOUSE_BUTTON_MIDDLE = 1;
+
+       /**
+        * Right mouse button.
+        *
+        * @since 4.7.3
+        * @readonly
+        * @property {Number} [=2]
+        * @member CKEDITOR
+        */
+       CKEDITOR.MOUSE_BUTTON_RIGHT = 2;
+
+       /**
+        * The namespace containing functions to work on CSS properties.
+        *
+        * @since 4.6.1
+        * @class CKEDITOR.tools.style
+        */
+
+       /**
+        * The namespace with helper functions to parse some common CSS properties.
+        *
+        * @since 4.6.1
+        * @class CKEDITOR.tools.style.parse
+        */
+
+       /**
+        * The namespace with helper functions and polyfills for arrays.
+        *
+        * @since 4.6.1
+        * @class CKEDITOR.tools.array
+        */
+
+       /**
+        * The namespace with helper functions and polyfills for objects.
+        *
+        * @since 4.7.1
+        * @class CKEDITOR.tools.object
+        */
 } )();
 
 // PACKAGER_RENAME( CKEDITOR.tools )
index 29ab0adb7529e742bf9a33cc07cc5a655f2d12ad..ac5a285478c09bd419dd58b4b970f978040a8a0a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 5573f8040ab90972efa886543748d4fd563efe0c..233ed53b372a8a55ab75bbdb63206374b90067ea 100644 (file)
@@ -1,4 +1,4 @@
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 
 af.js      Found: 62 Missing: 4
index 2cd440d2e4d862ab514c43524bb8969d5e63d1a9..ea941be8251647598c9008b1b0e75b022c978ad9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'af' ] = {
                alignMiddle: 'Middel',
                alignBottom: 'Onder',
                alignNone: 'Geen',
-               invalidValue    : 'Ongeldige waarde',
+               invalidValue: 'Ongeldige waarde',
                invalidHeight: 'Hoogte moet \'n getal wees',
                invalidWidth: 'Breedte moet \'n getal wees.',
                invalidCssLength: 'Die waarde vir die "%1" veld moet \'n posetiewe getal wees met of sonder \'n geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'af' ] = {
                cssLengthTooltip: 'Voeg \'n getal wert in pixel in, of \'n waarde met geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>'
+               unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Skuif',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Spasie',
+                       35: 'Einde',
+                       36: 'Tuis',
+                       46: 'Verwyder',
+                       224: 'Bevel'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Sleutel kombenasie'
        }
 };
index 4697f915149b2f9b366d92220cb415f348f4afc8..1412f228da029735430488635836a6e83f461d72 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ar' ] = {
                alignMiddle: 'وسط',
                alignBottom: 'أسفل',
                alignNone: 'None', // MISSING
-               invalidValue    : 'قيمة غير مفبولة.',
+               invalidValue: 'قيمة غير مفبولة.',
                invalidHeight: 'الارتفاع يجب أن يكون عدداً.',
                invalidWidth: 'العرض يجب أن يكون عدداً.',
                invalidCssLength: 'قيمة الخانة المخصصة لـ "%1" يجب أن تكون رقما موجبا، باستخدام أو من غير استخدام وحدة CSS قياس مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ar' ] = {
                cssLengthTooltip: 'أدخل رقما للقيمة بالبكسل أو رقما بوحدة CSS مقبولة (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, غير متاح</span>'
+               unavailable: '%1<span class="cke_accessibility">, غير متاح</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
diff --git a/sources/lang/az.js b/sources/lang/az.js
new file mode 100644 (file)
index 0000000..796fec7
--- /dev/null
@@ -0,0 +1,117 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Azerbaijani language.
+ */
+
+/**#@+
+   @type String
+   @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'az' ] = {
+       // ARIA description.
+       editor: 'Mətn Redaktoru',
+       editorPanel: 'Mətn Redaktorun Paneli',
+
+       // Common messages and labels.
+       common: {
+               // Screenreader titles. Please note that screenreaders are not always capable
+               // of reading non-English words. So be careful while translating it.
+               editorHelp: 'Yardım üçün ALT 0 düymələrini basın',
+
+               browseServer: 'Fayların siyahı',
+               url: 'URL',
+               protocol: 'Protokol',
+               upload: 'Serverə yüklə',
+               uploadSubmit: 'Göndər',
+               image: 'Şəkil',
+               flash: 'Flash',
+               form: 'Forma',
+               checkbox: 'Çekboks',
+               radio: 'Radio düyməsi',
+               textField: 'Mətn xanası',
+               textarea: 'Mətn',
+               hiddenField: 'Gizli xana',
+               button: 'Düymə',
+               select: 'Opsiyaların seçilməsi',
+               imageButton: 'Şəkil tipli düymə',
+               notSet: '<seçilməmiş>',
+               id: 'Id',
+               name: 'Ad',
+               langDir: 'Yaziların istiqaməti',
+               langDirLtr: 'Soldan sağa (LTR)',
+               langDirRtl: 'Sağdan sola (RTL)',
+               langCode: 'Dilin kodu',
+               longDescr: 'URL-ın ətraflı izahı',
+               cssClass: 'CSS klassları',
+               advisoryTitle: 'Başlıq',
+               cssStyle: 'CSS',
+               ok: 'Tədbiq et',
+               cancel: 'İmtina et',
+               close: 'Bağla',
+               preview: 'Baxış',
+               resize: 'Eni dəyiş',
+               generalTab: 'Əsas',
+               advancedTab: 'Əlavə',
+               validateNumberFailed: 'Rəqəm deyil.',
+               confirmNewPage: 'Yadda saxlanılmamış dəyişikliklər itiriləcək. Davam etmək istədiyinizə əminsinizmi?',
+               confirmCancel: 'Dəyişikliklər edilib. Pəncərəni bağlamaq istəyirsizə əminsinizmi?',
+               options: 'Seçimlər',
+               target: 'Hədəf çərçivə',
+               targetNew: 'Yeni pəncərə (_blank)',
+               targetTop: 'Əsas pəncərə (_top)',
+               targetSelf: 'Carı pəncərə (_self)',
+               targetParent: 'Ana pəncərə (_parent)',
+               langDirLTR: 'Soldan sağa (LTR)',
+               langDirRTL: 'Sağdan sola (RTL)',
+               styles: 'Üslub',
+               cssClasses: 'Üslub klası',
+               width: 'En',
+               height: 'Uzunluq',
+               align: 'Yerləşmə',
+               alignLeft: 'Sol',
+               alignRight: 'Sağ',
+               alignCenter: 'Mərkəz',
+               alignJustify: 'Eninə görə',
+               alignTop: 'Yuxarı',
+               alignMiddle: 'Orta',
+               alignBottom: 'Aşağı',
+               alignNone: 'Yoxdur',
+               invalidValue: 'Yanlışdır.',
+               invalidHeight: 'Hündürlük rəqəm olmalıdır.',
+               invalidWidth: 'En rəqəm olmalıdır.',
+               invalidCssLength: '"%1" xanasında göstərilən məzmun tam və müsbət olmalıdır, CSS-də olan ölçü vahidlərin (px, %, in, cm, mm, em, ex, pt, or pc) istifadısinə icazə verilir.',
+               invalidHtmlLength: '"%1" xanasında göstərilən məzmun tam və müsbət olmalıdır HTML-də olan ölçü vahidlərin (px və ya %) istifadısinə icazə verilir.',
+               invalidInlineStyle: 'Teq içində olan üslub "ad :  məzmun" şəklidə, nöqtə-verqül işarəsi ilə bitməlidir',
+               cssLengthTooltip: 'Piksel sayı və ya digər CSS ölçü vahidləri (px, %, in, cm, mm, em, ex, pt, or pc) daxil edin.',
+
+               // Put the voice-only part of the label in the span.
+               unavailable: '%1<span class="cke_accessibility">, mövcud deyil</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Boşluq',
+                       35: 'Son',
+                       36: 'Evə',
+                       46: 'Sil',
+                       224: 'Əmr'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Qısayol düymələri'
+       }
+};
index 4a0097e1d9864b6476f24830fffa8f0a43f0d761..84a1d55afaaad65e847279faed1b10a99a55c431 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'bg' ] = {
                alignMiddle: 'По средата',
                alignBottom: 'Долу',
                alignNone: 'Без подравняване',
-               invalidValue    : 'Невалидна стойност.',
+               invalidValue: 'Невалидна стойност.',
                invalidHeight: 'Височината трябва да е число.',
                invalidWidth: 'Ширина требе да е число.',
                invalidCssLength: 'Стойността на полето "%1" трябва да бъде положително число с или без валидна CSS измервателна единица (px, %, in, cm, mm, em, ex, pt, или pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'bg' ] = {
                cssLengthTooltip: 'Въведете числена стойност в пиксели или друга валидна CSS единица (px, %, in, cm, mm, em, ex, pt, или pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, недостъпно</span>'
+               unavailable: '%1<span class="cke_accessibility">, недостъпно</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 9c943837622d1cbc1ee5bea3b51712a398297d3b..9c6e69b7a32b0c5119c32e1be9a1e343d2e688de 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'bn' ] = {
                alignMiddle: 'মধ্য',
                alignBottom: 'নীচে',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'bn' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 49d794e5121fd9939734e9b8cbcc2a281e1ef7b5..f214df8b2f8c309bc9766e35c5a5d9956e6a84a7 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'bs' ] = {
                alignMiddle: 'Sredina',
                alignBottom: 'Dno',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'bs' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 090c6885888f8dd8e3a7b7871de3867f3ab52a47..5ca9450abb4de6d4ab345cbb3258bca932b6faa6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,8 +85,8 @@ CKEDITOR.lang[ 'ca' ] = {
                alignTop: 'Superior',
                alignMiddle: 'Centre',
                alignBottom: 'Inferior',
-               alignNone: 'None', // MISSING
-               invalidValue    : 'Valor no vàlid.',
+               alignNone: 'Cap',
+               invalidValue: 'Valor no vàlid.',
                invalidHeight: 'L\'alçada ha de ser un número.',
                invalidWidth: 'L\'amplada ha de ser un número.',
                invalidCssLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ca' ] = {
                cssLengthTooltip: 'Introduïu un número per un valor en píxels o un número amb una unitat vàlida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+               unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retrocés',
+                       13: 'Intro',
+                       16: 'Majúscules',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'Fi',
+                       36: 'Inici',
+                       46: 'Eliminar',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index ece4c6b95df9952d3d67f2259780befe21d4dde6..b5cf2269097a4c5dc77facc9e82c36a1d1b77608 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'cs' ] = {
                alignMiddle: 'Na střed',
                alignBottom: 'Dolů',
                alignNone: 'Žádné',
-               invalidValue    : 'Neplatná hodnota.',
+               invalidValue: 'Neplatná hodnota.',
                invalidHeight: 'Zadaná výška musí být číslo.',
                invalidWidth: 'Šířka musí být číslo.',
                invalidCssLength: 'Hodnota určená pro pole "%1" musí být kladné číslo bez nebo s platnou jednotkou míry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'cs' ] = {
                cssLengthTooltip: 'Zadejte číslo jako hodnotu v pixelech nebo číslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nedostupné</span>'
+               unavailable: '%1<span class="cke_accessibility">, nedostupné</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Mezerník',
+                       35: 'Konec',
+                       36: 'Domů',
+                       46: 'Smazat',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Klávesová zkratka'
        }
 };
index 916206e538fe71e1a2ca2e26bc115c09cb55eec9..3f075aa0c64ab632b9c1e5a0facbf4850da7c9bd 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'cy' ] = {
                alignMiddle: 'Canol',
                alignBottom: 'Gwaelod',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Gwerth annilys.',
+               invalidValue: 'Gwerth annilys.',
                invalidHeight: 'Mae\'n rhaid i\'r uchder fod yn rhif.',
                invalidWidth: 'Mae\'n rhaid i\'r lled fod yn rhif.',
                invalidCssLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'cy' ] = {
                cssLengthTooltip: 'Rhowch rif am werth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>'
+               unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 46bbe733aa48a1e4ef36ba24353d651a98955883..9b0a63d8860c89acd3412c3907d6995d36541e80 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'da' ] = {
                alignMiddle: 'Centreret',
                alignBottom: 'Nederst',
                alignNone: 'Ingen',
-               invalidValue    : 'Ugyldig værdi.',
+               invalidValue: 'Ugyldig værdi.',
                invalidHeight: 'Højde skal være et tal.',
                invalidWidth: 'Bredde skal være et tal.',
                invalidCssLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed  (px, %, in, cm, mm, em, ex, pt, eller pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'da' ] = {
                cssLengthTooltip: 'Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, eller pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>'
+               unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Retur',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Mellemrum',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Slet',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Tastatur genvej'
        }
 };
index 5322a81b832322b6ef42218afdb244ae98149f35..8f9c196360259cefbbb86feeeef8848b5fd36a6f 100644 (file)
@@ -1,10 +1,10 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 /**
-* @fileOverview 
+* @fileOverview
 */
 
 /**#@+
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'de-ch' ] = {
                alignMiddle: 'Mitte',
                alignBottom: 'Unten',
                alignNone: 'Keine',
-               invalidValue    : 'Ungültiger Wert.',
+               invalidValue: 'Ungültiger Wert.',
                invalidHeight: 'Höhe muss eine Zahl sein.',
                invalidWidth: 'Breite muss eine Zahl sein.',
                invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'de-ch' ] = {
                cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
+               unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Rücktaste',
+                       13: 'Eingabe',
+                       16: 'Umschalt',
+                       17: 'Strg',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'Ende',
+                       36: 'Pos1',
+                       46: 'Entfernen',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 0d895fdbccaa49ac31867adf7eafe3814666056f..441179acd18a5654ac845c1713e492cffee57772 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -63,7 +63,7 @@ CKEDITOR.lang[ 'de' ] = {
                generalTab: 'Allgemein',
                advancedTab: 'Erweitert',
                validateNumberFailed: 'Dieser Wert ist keine Nummer.',
-               confirmNewPage: 'Alle nicht gespeicherten Änderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?',
+               confirmNewPage: 'Alle nicht gespeicherten Änderungen gehen verloren. Sind Sie sicher die neue Seite zu laden?',
                confirmCancel: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schließen?',
                options: 'Optionen',
                target: 'Zielseite',
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'de' ] = {
                alignMiddle: 'Mitte',
                alignBottom: 'Unten',
                alignNone: 'Keine',
-               invalidValue    : 'Ungültiger Wert.',
+               invalidValue: 'Ungültiger Wert.',
                invalidHeight: 'Höhe muss eine Zahl sein.',
                invalidWidth: 'Breite muss eine Zahl sein.',
                invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'de' ] = {
                cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
+               unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Rücktaste',
+                       13: 'Eingabe',
+                       16: 'Umschalt',
+                       17: 'Strg',
+                       18: 'Alt',
+                       32: 'Leer',
+                       35: 'Ende',
+                       36: 'Pos1',
+                       46: 'Entfernen',
+                       224: 'Befehl'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Tastaturkürzel'
        }
 };
index 255f3754c7304a1d7051ade3774ec8491fb64c60..635ce36b2e4d32b289c833c9ea2d86a0fe4b43ee 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'el' ] = {
                alignMiddle: 'Μέση',
                alignBottom: 'Κάτω',
                alignNone: 'Χωρίς',
-               invalidValue    : 'Μη έγκυρη τιμή.',
+               invalidValue: 'Μη έγκυρη τιμή.',
                invalidHeight: 'Το ύψος πρέπει να είναι ένας αριθμός.',
                invalidWidth: 'Το πλάτος πρέπει να είναι ένας αριθμός.',
                invalidCssLength: 'Η τιμή που ορίζεται για το πεδίο "%1" πρέπει να είναι ένας θετικός αριθμός με ή χωρίς μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'el' ] = {
                cssLengthTooltip: 'Εισάγεται μια τιμή σε pixel ή έναν αριθμό μαζί με μια έγκυρη μονάδα μέτρησης CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθέσιμο</span>'
+               unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθέσιμο</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Συντόμευση πληκτρολογίου'
        }
 };
index 2d29b51e99845f3191ed28bf48d0418912c89ceb..4fc57f08054661c6c5f4068f55967d747310a432 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'en-au' ] = {
                alignMiddle: 'Middle', // MISSING
                alignBottom: 'Bottom', // MISSING
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'en-au' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 33c65348503bb2d59fad820b130ad4df715bb4cf..42d1aff495f5cbdf739dbb72faa53f492dc56d21 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'en-ca' ] = {
                alignMiddle: 'Middle', // MISSING
                alignBottom: 'Bottom', // MISSING
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'en-ca' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 1cf67a72bab3a8bb53e6b6f2a4b0380b090667d3..04cc61dff6a47d27560b36d7d88a111f7d8fcd36 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'en-gb' ] = {
                alignMiddle: 'Middle',
                alignBottom: 'Bottom',
                alignNone: 'None',
-               invalidValue    : 'Invalid value.',
+               invalidValue: 'Invalid value.',
                invalidHeight: 'Height must be a number.',
                invalidWidth: 'Width must be a number.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'en-gb' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 8d4986dd9743dbe7c9dd881ea3ce975dabca5b4e..aa509fee38642674b4d570af9d93adf020c979dc 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'en' ] = {
                alignMiddle: 'Middle',
                alignBottom: 'Bottom',
                alignNone: 'None',
-               invalidValue    : 'Invalid value.',
+               invalidValue: 'Invalid value.',
                invalidHeight: 'Height must be a number.',
                invalidWidth: 'Width must be a number.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'en' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut'
        }
 };
index 4a2586217d181be1d055571cb182178c0bd6f6b1..4ea1b8491a8d1ffdd8170f59494b7df9b3628ea4 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'eo' ] = {
                alignMiddle: 'Centre',
                alignBottom: 'Malsupre',
                alignNone: 'Neniu',
-               invalidValue    : 'Nevalida Valoro',
+               invalidValue: 'Nevalida Valoro',
                invalidHeight: 'Alto devas esti nombro.',
                invalidWidth: 'Larĝo devas esti nombro.',
                invalidCssLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aŭ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'eo' ] = {
                cssLengthTooltip: 'Entajpu nombron por rastrumera valoro aŭ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nehavebla</span>'
+               unavailable: '%1<span class="cke_accessibility">, nehavebla</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retropaŝo',
+                       13: 'Enigi',
+                       16: 'Registrumo',
+                       17: 'Stirklavo',
+                       18: 'Alt-klavo',
+                       32: 'Spaco',
+                       35: 'Fino',
+                       36: 'Hejmo',
+                       46: 'Forigi',
+                       224: 'Komando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Fulmoklavo'
        }
 };
diff --git a/sources/lang/es-mx.js b/sources/lang/es-mx.js
new file mode 100644 (file)
index 0000000..3b8c1c3
--- /dev/null
@@ -0,0 +1,116 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview 
+*/
+
+/**#@+
+   @type String
+   @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'es-mx' ] = {
+       // ARIA description.
+       editor: 'Editor de texto enriquecido',
+       editorPanel: 'Panel del editor de texto',
+
+       // Common messages and labels.
+       common: {
+               // Screenreader titles. Please note that screenreaders are not always capable
+               // of reading non-English words. So be careful while translating it.
+               editorHelp: 'Presiona ALT + 0 para ayuda',
+
+               browseServer: 'Examinar servidor',
+               url: 'URL',
+               protocol: 'Protocolo',
+               upload: 'Subir',
+               uploadSubmit: 'Enviar al servidor',
+               image: 'Imagen',
+               flash: 'Flash',
+               form: 'Formulario',
+               checkbox: 'Casilla de verificación',
+               radio: 'Botón de opción',
+               textField: 'Campo de texto',
+               textarea: 'Área de texto',
+               hiddenField: 'Campo oculto',
+               button: 'Botón',
+               select: 'Campo de selección',
+               imageButton: 'Botón de imagen',
+               notSet: '<not set>',
+               id: 'Id',
+               name: 'Nombre',
+               langDir: 'Dirección de idiomas',
+               langDirLtr: 'Izquierda a derecha (LTR)',
+               langDirRtl: 'Derecha a izquierda (RTL)',
+               langCode: 'Código de lenguaje',
+               longDescr: 'URL descripción larga',
+               cssClass: 'Clases de hoja de estilo',
+               advisoryTitle: 'Título del anuncio',
+               cssStyle: 'Estilo',
+               ok: 'OK',
+               cancel: 'Cancelar',
+               close: 'Cerrar',
+               preview: 'Vista previa',
+               resize: 'Redimensionar',
+               generalTab: 'General',
+               advancedTab: 'Avanzada',
+               validateNumberFailed: 'Este valor no es un número.',
+               confirmNewPage: 'Se perderán todos los cambios no guardados en este contenido. ¿Seguro que quieres cargar nueva página?',
+               confirmCancel: 'Ha cambiado algunas opciones. ¿Está seguro de que desea cerrar la ventana de diálogo?',
+               options: 'Opciones',
+               target: 'Objetivo',
+               targetNew: 'Nueva ventana (_blank)',
+               targetTop: 'Ventana superior (_top)',
+               targetSelf: 'Misma ventana (_self)',
+               targetParent: 'Ventana principal (_parent)',
+               langDirLTR: 'Izquierda a Derecha (LTR)',
+               langDirRTL: 'Derecha a Izquierda (RTL)',
+               styles: 'Estilo',
+               cssClasses: 'Clases de hojas de estilo',
+               width: 'Ancho',
+               height: 'Alto',
+               align: 'Alineación',
+               alignLeft: 'Izquierda',
+               alignRight: 'Derecha',
+               alignCenter: 'Centrado',
+               alignJustify: 'Justificado',
+               alignTop: 'Arriba',
+               alignMiddle: 'En medio',
+               alignBottom: 'Abajo',
+               alignNone: 'Ninguno',
+               invalidValue: 'Valor inválido',
+               invalidHeight: 'La altura debe ser un número.',
+               invalidWidth: 'La anchura debe ser un número.',
+               invalidCssLength: 'El valor especificado para el campo "% 1" debe ser un número positivo con o sin una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).',
+               invalidHtmlLength: 'El valor especificado para el campo "% 1" debe ser un número positivo con o sin una unidad de medición HTML válida (px or %).',
+               invalidInlineStyle: 'El valor especificado para el estilo en línea debe constar de una o más tuplas con el formato de "nombre: valor", separados por punto y coma',
+               cssLengthTooltip: 'Introduzca un número para un valor en píxeles o un número con una unidad CSS válida  (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+               // Put the voice-only part of the label in the span.
+               unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retroceso',
+                       13: 'Intro',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Espacio',
+                       35: 'Fin',
+                       36: 'Inicio',
+                       46: 'Borrar',
+                       224: 'Comando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Atajo de teclado'
+       }
+};
index 64468309f638720ddac8c816e0770aab061b0d37..40d9ae08ba629397cfb2f0a431c9dc59985ef6a2 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'es' ] = {
                alignMiddle: 'Centro',
                alignBottom: 'Pie',
                alignNone: 'Ninguno',
-               invalidValue    : 'Valor no válido',
+               invalidValue: 'Valor no válido',
                invalidHeight: 'Altura debe ser un número.',
                invalidWidth: 'Anchura debe ser un número.',
                invalidCssLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'es' ] = {
                cssLengthTooltip: 'Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+               unavailable: '%1<span class="cke_accessibility">, no disponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retroceso',
+                       13: 'Ingresar',
+                       16: 'Mayús.',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'Fin',
+                       36: 'Inicio',
+                       46: 'Suprimir',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 2ec5b1c749b9d2c8e18c27a15cc95c33feb99617..c98ea811df4c319f67bb9d5f03a7bee805138a53 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'et' ] = {
                alignMiddle: 'Keskele',
                alignBottom: 'Alla',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Vigane väärtus.',
+               invalidValue: 'Vigane väärtus.',
                invalidHeight: 'Kõrgus peab olema number.',
                invalidWidth: 'Laius peab olema number.',
                invalidCssLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'et' ] = {
                cssLengthTooltip: 'Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>'
+               unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index c0c0476b195ea197b06cb2f8dd38030f10949fab..98b92ef012d850e662a6d57e3a462b84dec904d0 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'eu' ] = {
                alignMiddle: 'Erdian',
                alignBottom: 'Behean',
                alignNone: 'Bat ere ez',
-               invalidValue    : 'Balio desegokia.',
+               invalidValue: 'Balio desegokia.',
                invalidHeight: 'Altuera zenbaki bat izan behar da.',
                invalidWidth: 'Zabalera zenbaki bat izan behar da.',
                invalidCssLength: '"%1" eremurako zehaztutako balioak zenbaki positibo bat izan behar du, CSS neurri unitate batekin edo gabe (px, %, in, cm, mm, em, ex, pt edo pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'eu' ] = {
                cssLengthTooltip: 'Sartu zenbaki bat edo zenbaki bat baliozko CSS unitate batekin (px, %, in, cm, mm, em, ex, pt, edo pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, erabilezina</span>'
+               unavailable: '%1<span class="cke_accessibility">, erabilezina</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Sartu',
+                       16: 'Maius',
+                       17: 'Ktrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'Buka',
+                       36: 'Etxea',
+                       46: 'Ezabatu',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 22c5349fe0b7264d786a66c09ac01733c2bac8a7..354051095de60a29a994e3665f55208238755684 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'fa' ] = {
                alignMiddle: 'میانه',
                alignBottom: 'پائین',
                alignNone: 'هیچ',
-               invalidValue    : 'مقدار نامعتبر.',
+               invalidValue: 'مقدار نامعتبر.',
                invalidHeight: 'ارتفاع باید یک عدد باشد.',
                invalidWidth: 'عرض باید یک عدد باشد.',
                invalidCssLength: 'عدد تعیین شده برای فیلد "%1" باید یک عدد مثبت با یا بدون یک واحد اندازه گیری CSS معتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'fa' ] = {
                cssLengthTooltip: 'یک عدد برای یک مقدار بر حسب پیکسل و یا یک عدد با یک واحد CSS معتبر وارد کنید (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">، غیر قابل دسترس</span>'
+               unavailable: '%1<span class="cke_accessibility">، غیر قابل دسترس</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'عقبگرد',
+                       13: 'ورود',
+                       16: 'تعویض',
+                       17: 'کنترل',
+                       18: 'دگرساز',
+                       32: 'Space', // MISSING
+                       35: 'پایان',
+                       36: 'خانه',
+                       46: 'حذف',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index b7587abc9d4ab127bf5f2049198335bf688e890e..d10adabbfcff62615a51d415c38f440fbd6c22ca 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'fi' ] = {
                alignMiddle: 'Keskelle',
                alignBottom: 'Alas',
                alignNone: 'Ei asetettu',
-               invalidValue    : 'Virheellinen arvo.',
+               invalidValue: 'Virheellinen arvo.',
                invalidHeight: 'Korkeuden täytyy olla numero.',
                invalidWidth: 'Leveyden täytyy olla numero.',
                invalidCssLength: 'Kentän "%1" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'fi' ] = {
                cssLengthTooltip: 'Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>'
+               unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 195454f97d970b5d59aff99ba46f3350cd5b02de..205b20f4e66d3b47f2e24193f3e29ad22d87025c 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'fo' ] = {
                alignMiddle: 'Miðja',
                alignBottom: 'Botnur',
                alignNone: 'Eingin',
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Hædd má vera eitt tal.',
                invalidWidth: 'Breidd má vera eitt tal.',
                invalidCssLength: 'Virðið sett í "%1" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'fo' ] = {
                cssLengthTooltip: 'Skriva eitt tal fyri eitt virði í pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>'
+               unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index a5f6279890f61e6390903aa190da7182717736fc..2702f0c212479fcbe3e0b1d83502bacc88d1b57a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'fr-ca' ] = {
                alignMiddle: 'Milieu',
                alignBottom: 'Bas',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Valeur invalide.',
+               invalidValue: 'Valeur invalide.',
                invalidHeight: 'La hauteur doit être un nombre.',
                invalidWidth: 'La largeur doit être un nombre.',
                invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'fr-ca' ] = {
                cssLengthTooltip: 'Entrer un nombre pour la valeur en pixel ou un nombre avec une unité CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, indisponible</span>'
+               unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 416ad76bf300e3d27c08352bf15b47c77f763ac9..5cd39b063ada144ee46a21cc042ef1fe2b8485be 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
  */
 CKEDITOR.lang[ 'fr' ] = {
        // ARIA description.
-       editor: 'Éditeur de Texte Enrichi',
+       editor: 'Éditeur de texte enrichi',
        editorPanel: 'Tableau de bord de l\'éditeur de texte enrichi',
 
        // Common messages and labels.
        common: {
                // Screenreader titles. Please note that screenreaders are not always capable
                // of reading non-English words. So be careful while translating it.
-               editorHelp: 'Appuyez sur ALT-0 pour l\'aide',
+               editorHelp: 'Utilisez le raccourci Alt-0 pour obtenir de l\'aide',
 
-               browseServer: 'Explorer le serveur',
+               browseServer: 'Parcourir le serveur',
                url: 'URL',
                protocol: 'Protocole',
                upload: 'Télécharger',
@@ -37,42 +37,42 @@ CKEDITOR.lang[ 'fr' ] = {
                flash: 'Flash',
                form: 'Formulaire',
                checkbox: 'Case à cocher',
-               radio: 'Bouton Radio',
+               radio: 'Bouton radio',
                textField: 'Champ texte',
                textarea: 'Zone de texte',
-               hiddenField: 'Champ caché',
+               hiddenField: 'Champ invisible',
                button: 'Bouton',
                select: 'Liste déroulante',
-               imageButton: 'Bouton image',
-               notSet: '<non défini>',
-               id: 'Id',
+               imageButton: 'Bouton avec image',
+               notSet: '<indéfini>',
+               id: 'ID',
                name: 'Nom',
                langDir: 'Sens d\'écriture',
                langDirLtr: 'Gauche à droite (LTR)',
                langDirRtl: 'Droite à gauche (RTL)',
                langCode: 'Code de langue',
-               longDescr: 'URL de description longue (longdesc => malvoyant)',
-               cssClass: 'Classe CSS',
-               advisoryTitle: 'Description (title)',
+               longDescr: 'URL de description longue',
+               cssClass: 'Classes de style',
+               advisoryTitle: 'Infobulle',
                cssStyle: 'Style',
                ok: 'OK',
                cancel: 'Annuler',
                close: 'Fermer',
                preview: 'Aperçu',
-               resize: 'Déplacer pour modifier la taille',
+               resize: 'Redimensionner',
                generalTab: 'Général',
                advancedTab: 'Avancé',
                validateNumberFailed: 'Cette valeur n\'est pas un nombre.',
-               confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
-               confirmCancel: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
+               confirmNewPage: 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?',
+               confirmCancel: 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?',
                options: 'Options',
-               target: 'Cible (Target)',
+               target: 'Cible',
                targetNew: 'Nouvelle fenêtre (_blank)',
                targetTop: 'Fenêtre supérieure (_top)',
                targetSelf: 'Même fenêtre (_self)',
                targetParent: 'Fenêtre parent (_parent)',
-               langDirLTR: 'Gauche à Droite (LTR)',
-               langDirRTL: 'Droite à Gauche (RTL)',
+               langDirLTR: 'Gauche à droite (LTR)',
+               langDirRTL: 'Droite à gauche (RTL)',
                styles: 'Style',
                cssClasses: 'Classes de style',
                width: 'Largeur',
@@ -80,21 +80,38 @@ CKEDITOR.lang[ 'fr' ] = {
                align: 'Alignement',
                alignLeft: 'Gauche',
                alignRight: 'Droite',
-               alignCenter: 'Centré',
+               alignCenter: 'Centrer',
                alignJustify: 'Justifier',
                alignTop: 'Haut',
                alignMiddle: 'Milieu',
                alignBottom: 'Bas',
                alignNone: 'Aucun',
-               invalidValue    : 'Valeur incorrecte.',
+               invalidValue: 'Valeur invalide.',
                invalidHeight: 'La hauteur doit être un nombre.',
                invalidWidth: 'La largeur doit être un nombre.',
-               invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
-               invalidHtmlLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
-               invalidInlineStyle: 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
+               invalidCssLength: 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
+               invalidHtmlLength: 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
+               invalidInlineStyle: 'La valeur spécifiée pour le style en ligne doit être composée d\'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.',
                cssLengthTooltip: 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, Indisponible</span>'
+               unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retour arrière',
+                       13: 'Entrée',
+                       16: 'Majuscule',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Espace',
+                       35: 'Fin',
+                       36: 'Origine',
+                       46: 'Supprimer',
+                       224: 'Commande'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Raccourci clavier'
        }
 };
index 95e779dc53dc5af559c0ff457d7d1074cc7395c9..092db98e9febe5e52943b5681f84577156d1b2f9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'gl' ] = {
                alignMiddle: 'Centro',
                alignBottom: 'Abaixo',
                alignNone: 'Ningún',
-               invalidValue    : 'Valor incorrecto.',
+               invalidValue: 'Valor incorrecto.',
                invalidHeight: 'O alto debe ser un número.',
                invalidWidth: 'O largo debe ser un número.',
                invalidCssLength: 'O valor especificado para o campo «%1» debe ser un número positivo con ou sen unha unidade de medida CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'gl' ] = {
                cssLengthTooltip: 'Escriba un número para o valor en píxeles ou un número cunha unidade CSS correcta (px, %, in, cm, mm, em, ex, pt, ou pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, non dispoñíbel</span>'
+               unavailable: '%1<span class="cke_accessibility">, non dispoñíbel</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Ir atrás',
+                       13: 'Intro',
+                       16: 'Maiús',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Espazo',
+                       35: 'Fin',
+                       36: 'Inicio',
+                       46: 'Supr',
+                       224: 'Orde'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Atallo de teclado'
        }
 };
index 5e1755375435d50b84c80d3036c3ee2cd8b47ee5..17862d0d26f98e929554424ad5a09c679ced00dc 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'gu' ] = {
                alignMiddle: 'વચ્ચે',
                alignBottom: 'નીચે',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'ઉંચાઈ એક આંકડો હોવો જોઈએ.',
                invalidWidth: 'પોહળ ઈ એક આંકડો હોવો જોઈએ.',
                invalidCssLength: '"%1" ની વેલ્યુ એક પોસીટીવ આંકડો હોવો જોઈએ અથવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વગર.',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'gu' ] = {
                cssLengthTooltip: 'પિક્ષ્લ્ નો આંકડો CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માં નાખો.',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, નથી મળતું</span>'
+               unavailable: '%1<span class="cke_accessibility">, નથી મળતું</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 59e17119d04b0a8256c7786efaf61da5e9e9e057..27b57bd4bc6027e6ff30893460f35cb579a3cc2d 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'he' ] = {
                alignMiddle: 'לאמצע',
                alignBottom: 'לתחתית',
                alignNone: 'None', // MISSING
-               invalidValue    : 'ערך לא חוקי.',
+               invalidValue: 'ערך לא חוקי.',
                invalidHeight: 'הגובה חייב להיות מספר.',
                invalidWidth: 'הרוחב חייב להיות מספר.',
                invalidCssLength: 'הערך שצוין לשדה "%1" חייב להיות מספר חיובי עם או ללא יחידת מידה חוקית של CSS (px, %, in, cm, mm, em, ex, pt, או pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'he' ] = {
                cssLengthTooltip: 'יש להכניס מספר המייצג פיקסלים או מספר עם יחידת גליונות סגנון תקינה (px, %, in, cm, mm, em, ex, pt, או pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, לא זמין</span>'
+               unavailable: '%1<span class="cke_accessibility">, לא זמין</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'מחק',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index bd6ca83626f7b8777f87a22f1ccf5ee3a37f14ef..e0b29a30bf998eec04389bbfb98520062cf9f0af 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'hi' ] = {
                alignMiddle: 'मध्य',
                alignBottom: 'नीचे',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'hi' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 52db97047854330d4d67b163dbc734ab8b23a060..7bf089e29559d50a7bc51ac538e92b87f47764a5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,8 +85,8 @@ CKEDITOR.lang[ 'hr' ] = {
                alignTop: 'Vrh',
                alignMiddle: 'Sredina',
                alignBottom: 'Dolje',
-               alignNone: 'None', // MISSING
-               invalidValue    : 'Neispravna vrijednost.',
+               alignNone: 'Bez poravnanja',
+               invalidValue: 'Neispravna vrijednost.',
                invalidHeight: 'Visina mora biti broj.',
                invalidWidth: 'Širina mora biti broj.',
                invalidCssLength: 'Vrijednost određena za "%1" polje mora biti pozitivni broj sa ili bez važećih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'hr' ] = {
                cssLengthTooltip: 'Unesite broj za vrijednost u pikselima ili broj s važećim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nedostupno</span>'
+               unavailable: '%1<span class="cke_accessibility">, nedostupno</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Prečica na tipkovnici'
        }
 };
index 91746f194081b7a5d2fbaf331c3ae4b4d557d8e7..6f6e91eb42d2eba387d414183255d8038521ad31 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,8 +85,8 @@ CKEDITOR.lang[ 'hu' ] = {
                alignTop: 'Tetejére',
                alignMiddle: 'Középre',
                alignBottom: 'Aljára',
-               alignNone: 'None', // MISSING
-               invalidValue    : 'Érvénytelen érték.',
+               alignNone: 'Semmi',
+               invalidValue: 'Érvénytelen érték.',
                invalidHeight: 'A magasság mezőbe csak számokat írhat.',
                invalidWidth: 'A szélesség mezőbe csak számokat írhat.',
                invalidCssLength: '"%1"-hez megadott érték csakis egy pozitív szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'hu' ] = {
                cssLengthTooltip: 'Adjon meg egy számot értéknek pixelekben vagy egy számot érvényes CSS mértékegységben (px, %, in, cm, mm, em, ex, pt, vagy pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nem elérhető</span>'
+               unavailable: '%1<span class="cke_accessibility">, nem elérhető</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Gyorsbillentyű'
        }
 };
index f48c51b8b20767883f3a4d3c83dc2caab717d880..86e70760d6175e12aba8ddc90b2c41e6f34040e6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -19,7 +19,7 @@
 CKEDITOR.lang[ 'id' ] = {
        // ARIA description.
        editor: 'Rich Text Editor',
-       editorPanel: 'Rich Text Editor panel', // MISSING
+       editorPanel: 'Panel Rich Text Editor',
 
        // Common messages and labels.
        common: {
@@ -60,16 +60,16 @@ CKEDITOR.lang[ 'id' ] = {
                preview: 'Pratinjau',
                resize: 'Ubah ukuran',
                generalTab: 'Umum',
-               advancedTab: 'Advanced', // MISSING
+               advancedTab: 'Lebih Lanjut',
                validateNumberFailed: 'Nilai ini tidak sebuah angka',
                confirmNewPage: 'Semua perubahan yang tidak disimpan di konten ini akan hilang. Apakah anda yakin ingin memuat halaman baru?',
                confirmCancel: 'Beberapa opsi telah berubah. Apakah anda yakin ingin menutup dialog?',
                options: 'Opsi',
                target: 'Sasaran',
                targetNew: 'Jendela Baru (_blank)',
-               targetTop: 'Topmost Window (_top)', // MISSING
+               targetTop: 'Laman Atas (_top)',
                targetSelf: 'Jendela yang Sama (_self)',
-               targetParent: 'Parent Window (_parent)', // MISSING
+               targetParent: 'Jendela Induk (_parent)',
                langDirLTR: 'Kiri ke Kanan (LTR)',
                langDirRTL: 'Kanan ke Kiri (RTL)',
                styles: 'Gaya',
@@ -84,16 +84,33 @@ CKEDITOR.lang[ 'id' ] = {
                alignTop: 'Atas',
                alignMiddle: 'Tengah',
                alignBottom: 'Bawah',
-               alignNone: 'None', // MISSING
-               invalidValue    : 'Nilai tidak sah.',
+               alignNone: 'Tidak ada',
+               invalidValue: 'Nilai tidak sah.',
                invalidHeight: 'Tinggi harus sebuah angka.',
                invalidWidth: 'Lebar harus sebuah angka.',
                invalidCssLength: 'Nilai untuk "%1" harus sebuah angkat positif dengan atau tanpa pengukuran unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
                invalidHtmlLength: 'Nilai yang dispesifikasian untuk kolom "%1" harus sebuah angka positif dengan atau tanpa sebuah unit pengukuran HTML (px atau %) yang valid.',
-               invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+               invalidInlineStyle: 'Nilai pada inline style merupakan pasangan nama dan nilai dengan format "nama : nilai", yang dipisahkan dengan titik dua.',
                cssLengthTooltip: 'Masukkan sebuah angka untuk sebuah nilai dalam pixel atau sebuah angka dengan unit CSS yang sah (px, %, in, cm, mm, em, ex, pt, or pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, tidak tersedia</span>'
+               unavailable: '%1<span class="cke_accessibility">, tidak tersedia</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Spasi',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Hapus',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Pintasan Keyboard'
        }
 };
index ecdb31878c0806ac62558c1c60e1c5f25784bd12..256b6678843135e205abccdb9075b16b5a4dd328 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'is' ] = {
                alignMiddle: 'Miðjuð',
                alignBottom: 'Neðst',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'is' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 5c7863ffd5c5e2f8df9fc66c8b2ec9351f6b8228..8229aad6d3259d4f06fb8c2f8ee50ebb08181d97 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'it' ] = {
                alignMiddle: 'Centrato',
                alignBottom: 'In Basso',
                alignNone: 'Nessuno',
-               invalidValue    : 'Valore non valido.',
+               invalidValue: 'Valore non valido.',
                invalidHeight: 'L\'altezza dev\'essere un numero',
                invalidWidth: 'La Larghezza dev\'essere un numero',
                invalidCssLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'it' ] = {
                cssLengthTooltip: 'Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, non disponibile</span>'
+               unavailable: '%1<span class="cke_accessibility">, non disponibile</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Invio',
+                       16: 'Maiusc',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Spazio',
+                       35: 'Fine',
+                       36: 'Inizio',
+                       46: 'Canc',
+                       224: 'Comando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Scorciatoia da tastiera'
        }
 };
index 50df2a2daa1fdc29e648ac093ec91cbaa7f45f21..17dcefc8d189b387a03f9d2f0d7c94452f80f705 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -62,7 +62,7 @@ CKEDITOR.lang[ 'ja' ] = {
                resize: 'ドラッグしてリサイズ',
                generalTab: '全般',
                advancedTab: '高度な設定',
-               validateNumberFailed: '値が数ではありません',
+               validateNumberFailed: '値が数ではありません',
                confirmNewPage: '変更内容を保存せず、 新しいページを開いてもよろしいでしょうか?',
                confirmCancel: 'オプション設定を変更しました。ダイアログを閉じてもよろしいでしょうか?',
                options: 'オプション',
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ja' ] = {
                alignMiddle: '中央',
                alignBottom: '下',
                alignNone: 'なし',
-               invalidValue    : '不正な値です。',
+               invalidValue: '不正な値です。',
                invalidHeight: '高さは数値で入力してください。',
                invalidWidth: '幅は数値で入力してください。',
                invalidCssLength: '入力された "%1" 項目の値は、CSSの大きさ(px, %, in, cm, mm, em, ex, pt, または pc)が正しいものである/ないに関わらず、正の値である必要があります。',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ja' ] = {
                cssLengthTooltip: 'ピクセル数もしくはCSSにセットできる数値を入力してください。(px,%,in,cm,mm,em,ex,pt,or pc)',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, 利用不可能</span>'
+               unavailable: '%1<span class="cke_accessibility">, 利用不可能</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'キーボードショートカット'
        }
 };
index a3279596ef68ca930b90d6c4b1e0ae15b7298d80..999132ee20285ecfa362dff9cc580fa8035e4620 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ka' ] = {
                alignMiddle: 'შუა',
                alignBottom: 'ქვემოთა',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'სიმაღლე რიცხვით უნდა იყოს წარმოდგენილი.',
                invalidWidth: 'სიგანე რიცხვით უნდა იყოს წარმოდგენილი.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ka' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, მიუწვდომელია</span>'
+               unavailable: '%1<span class="cke_accessibility">, მიუწვდომელია</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 50066860117be6767ec3f69d2ba30cd4ed27d676..b9908d9861470fa11b66110f72718cf4faad9d6f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'km' ] = {
                alignMiddle: 'កណ្តាល',
                alignBottom: 'ខាងក្រោម',
                alignNone: 'គ្មាន',
-               invalidValue    : 'តម្លៃ​មិន​ត្រឹម​ត្រូវ។',
+               invalidValue: 'តម្លៃ​មិន​ត្រឹម​ត្រូវ។',
                invalidHeight: 'តម្លៃ​កំពស់​ត្រូវ​តែ​ជា​លេខ។',
                invalidWidth: 'តម្លៃ​ទទឹង​ត្រូវ​តែ​ជា​លេខ។',
                invalidCssLength: 'តម្លៃ​កំណត់​សម្រាប់​វាល "%1" ត្រូវ​តែ​ជា​លេខ​វិជ្ជមាន​ ដោយ​ភ្ជាប់ឬ​មិន​ភ្ជាប់​ជាមួយ​នឹង​ឯកតា​រង្វាស់​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'km' ] = {
                cssLengthTooltip: 'បញ្ចូល​លេខ​សម្រាប់​តម្លៃ​ជា​ភិចសែល ឬ​លេខ​ដែល​មាន​ឯកតា​ត្រឹមត្រូវ​របស់ CSS (px, %, in, cm, mm, em, ex, pt ឬ pc) ។',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, មិន​មាន</span>'
+               unavailable: '%1<span class="cke_accessibility">, មិន​មាន</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'លុបថយក្រោយ',
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'ចុង',
+                       36: 'ផ្ទះ',
+                       46: 'លុប',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 43a6f8001159847042ecf27a10f3cc907bc37b91..fe575d98daab7eb715a6b6309ad89eb03f1fe2e3 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -28,7 +28,7 @@ CKEDITOR.lang[ 'ko' ] = {
                // of reading non-English words. So be careful while translating it.
                editorHelp: '도움이 필요하면 ALT 0 을 누르세요',
 
-               browseServer: '서버 보기',
+               browseServer: '서버 탐색',
                url: 'URL',
                protocol: '프로토콜',
                upload: '업로드',
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ko' ] = {
                alignMiddle: '중간',
                alignBottom: '아래',
                alignNone: '기본',
-               invalidValue    : '잘못된 값.',
+               invalidValue: '잘못된 값.',
                invalidHeight: '높이는 숫자여야 합니다.',
                invalidWidth: '넓이는 숫자여야 합니다.',
                invalidCssLength: '"%1" 값은 유효한 CSS 측정 단위(px, %, in, cm, mm, em, ex, pt, or pc)를 포함하거나 포함하지 않은 양수 여야 합니다.',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ko' ] = {
                cssLengthTooltip: '픽셀 단위의 숫자만 입력하시거나 유효한 CSS 단위(px, %, in, cm, mm, em, ex, pt, or pc)와 함께 숫자를 입력해주세요.',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, 사용불가</span>'
+               unavailable: '%1<span class="cke_accessibility">, 사용불가</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: '백스페이스',
+                       13: '엔터',
+                       16: '시프트',
+                       17: '컨트롤',
+                       18: '알트',
+                       32: '간격',
+                       35: '엔드',
+                       36: '홈',
+                       46: '딜리트',
+                       224: '커맨드'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: '키보드 단축키'
        }
 };
index 0ed14a410032872f0c86d2c3f87da7c4cd7bb889..171059b995f16c4f5fd3c61425452020033562f2 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'ku' ] = {
                alignMiddle: 'ناوەند',
                alignBottom: 'ژێرەوە',
                alignNone: 'هیچ',
-               invalidValue    : 'نرخێکی نادرووست.',
+               invalidValue: 'نرخێکی نادرووست.',
                invalidHeight: 'درێژی دەبێت ژمارە بێت.',
                invalidWidth: 'پانی دەبێت ژمارە بێت.',
                invalidCssLength: 'ئەم نرخەی دراوە بۆ خانەی "%1" دەبێت ژمارەکی درووست بێت یان بێ ناونیشانی ئامرازی (px, %, in, cm, mm, em, ex, pt, یان pc).',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'ku' ] = {
                cssLengthTooltip: 'ژمارەیەك بنووسه‌ بۆ نرخی piksel یان ئامرازێکی درووستی CSS (px, %, in, cm, mm, em, ex, pt, یان pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, ئامادە نیە</span>'
+               unavailable: '%1<span class="cke_accessibility">, ئامادە نیە</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'فەرمان'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'کورتبڕی تەختەکلیل'
        }
 };
index 9c0c3849e7db382b5ffbbab2535410e703f39171..e6d9d7fe3565e6e1c9c8901b1e7d3bee74412192 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'lt' ] = {
                alignMiddle: 'Vidurį',
                alignBottom: 'Apačią',
                alignNone: 'Niekas',
-               invalidValue    : 'Neteisinga reikšmė.',
+               invalidValue: 'Neteisinga reikšmė.',
                invalidHeight: 'Aukštis turi būti nurodytas skaičiais.',
                invalidWidth: 'Plotis turi būti nurodytas skaičiais.',
                invalidCssLength: 'Reikšmė nurodyta "%1" laukui, turi būti teigiamas skaičius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'lt' ] = {
                cssLengthTooltip: 'Įveskite reikšmę pikseliais arba skaičiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, netinkamas</span>'
+               unavailable: '%1<span class="cke_accessibility">, netinkamas</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index e89bf62ba73a047dd4a203c605bcd2d104d32ca1..1759e6c05fae9156d9bbf8f84f5dbc317ab4b287 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'lv' ] = {
                alignMiddle: 'Vertikāli centrēts',
                alignBottom: 'Apakšā',
                alignNone: 'Nekas',
-               invalidValue    : 'Nekorekta vērtība',
+               invalidValue: 'Nekorekta vērtība',
                invalidHeight: 'Augstumam jābūt skaitlim.',
                invalidWidth: 'Platumam jābūt skaitlim',
                invalidCssLength: 'Laukam "%1" norādītajai vērtībai jābūt pozitīvam skaitlim ar vai bez korektām CSS mērvienībām (px, %, in, cm, mm, em, ex, pt, vai pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'lv' ] = {
                cssLengthTooltip: 'Ievadiet vērtību pikseļos vai skaitli ar derīgu CSS mērvienību (px, %, in, cm, mm, em, ex, pt, vai pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>'
+               unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index bc7b06cc69079937a14fa007a6f84d25a42a2ad5..750da116f5293193d2ca76ddbc0ed6831e7af322 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'mk' ] = {
                alignMiddle: 'Средина',
                alignBottom: 'Доле',
                alignNone: 'Никое',
-               invalidValue    : 'Невалидна вредност',
+               invalidValue: 'Невалидна вредност',
                invalidHeight: 'Височината мора да биде број.',
                invalidWidth: 'Широчината мора да биде број.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'mk' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index ca5d749560ec57567c67f8ccc13ce3f9e83062ce..c5854a19fbd993fb6664c0a22f6a377e7cc1de6b 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'mn' ] = {
                alignMiddle: 'Дунд',
                alignBottom: 'Доод талд',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Өндөр нь тоо байх ёстой.',
                invalidWidth: 'Өргөн нь тоо байх ёстой.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'mn' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 5267301436214ee19c91722f744fefab928f24b3..764e92f692d68e1b687faa8ccf6991115b037fc2 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ms' ] = {
                alignMiddle: 'Pertengahan',
                alignBottom: 'Bawah',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Nilai tidak sah.',
+               invalidValue: 'Nilai tidak sah.',
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ms' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 6036b2e913c79d97526269af18e900c89a9d93e2..e27c582047050e6a2e2eba2f80b31f5ce94436e4 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -48,8 +48,8 @@ CKEDITOR.lang[ 'nb' ] = {
                id: 'Id',
                name: 'Navn',
                langDir: 'Språkretning',
-               langDirLtr: 'Venstre til høyre (VTH)',
-               langDirRtl: 'Høyre til venstre (HTV)',
+               langDirLtr: 'Venstre til høyre (LTR)',
+               langDirRtl: 'Høyre til venstre (RTL)',
                langCode: 'Språkkode',
                longDescr: 'Utvidet beskrivelse',
                cssClass: 'Stilarkklasser',
@@ -68,7 +68,7 @@ CKEDITOR.lang[ 'nb' ] = {
                options: 'Valg',
                target: 'Mål',
                targetNew: 'Nytt vindu (_blank)',
-               targetTop: 'Hele vindu (_top)',
+               targetTop: 'Hele vinduet (_top)',
                targetSelf: 'Samme vindu (_self)',
                targetParent: 'Foreldrevindu (_parent)',
                langDirLTR: 'Venstre til høyre (VTH)',
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'nb' ] = {
                alignMiddle: 'Midten',
                alignBottom: 'Bunn',
                alignNone: 'Ingen',
-               invalidValue    : 'Ugyldig verdi.',
+               invalidValue: 'Ugyldig verdi.',
                invalidHeight: 'Høyde må være et tall.',
                invalidWidth: 'Bredde må være et tall.',
                invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'nb' ] = {
                cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+               unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Mellomrom',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Tastatursnarvei'
        }
 };
index 873d2b8a1eff0be18d25f55fe0c9409170369870..5f1f251f2d395d0c691dd52a5a47f5b0db26da47 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'nl' ] = {
                alignMiddle: 'Midden',
                alignBottom: 'Onder',
                alignNone: 'Geen',
-               invalidValue    : 'Ongeldige waarde.',
+               invalidValue: 'Ongeldige waarde.',
                invalidHeight: 'De hoogte moet een getal zijn.',
                invalidWidth: 'De breedte moet een getal zijn.',
                invalidCssLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'nl' ] = {
                cssLengthTooltip: 'Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>'
+               unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Spatie',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Verwijderen',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Sneltoets'
        }
 };
index 5c0e9fbf7458eb92ae8177708cb2f37836933f33..87691f9712c5468f5362bbdebcc17c0fc775e297 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'no' ] = {
                alignMiddle: 'Midten',
                alignBottom: 'Bunn',
                alignNone: 'Ingen',
-               invalidValue    : 'Ugyldig verdi.',
+               invalidValue: 'Ugyldig verdi.',
                invalidHeight: 'Høyde må være et tall.',
                invalidWidth: 'Bredde må være et tall.',
                invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'no' ] = {
                cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+               unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
diff --git a/sources/lang/oc.js b/sources/lang/oc.js
new file mode 100644 (file)
index 0000000..a78420f
--- /dev/null
@@ -0,0 +1,117 @@
+/**
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the Occitan
+ *             language.
+ */
+
+/**#@+
+   @type String
+   @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'oc' ] = {
+       // ARIA description.
+       editor: 'Editor de tèxte enriquit',
+       editorPanel: 'Tablèu de bòrd de l\'editor de tèxte enriquit',
+
+       // Common messages and labels.
+       common: {
+               // Screenreader titles. Please note that screenreaders are not always capable
+               // of reading non-English words. So be careful while translating it.
+               editorHelp: 'Utilisatz l\'acorchi Alt-0 per obténer d\'ajuda',
+
+               browseServer: 'Percórrer lo servidor',
+               url: 'URL',
+               protocol: 'Protocòl',
+               upload: 'Mandar',
+               uploadSubmit: 'Mandar sul servidor',
+               image: 'Imatge',
+               flash: 'Flash',
+               form: 'Formulari',
+               checkbox: 'Casa de marcar',
+               radio: 'Boton ràdio',
+               textField: 'Camp  tèxte',
+               textarea: 'Zòna de tèxte',
+               hiddenField: 'Camp invisible',
+               button: 'Boton',
+               select: 'Lista desenrotlanta',
+               imageButton: 'Boton amb imatge',
+               notSet: '<indefinit>',
+               id: 'Id',
+               name: 'Nom',
+               langDir: 'Sens d\'escritura',
+               langDirLtr: 'Esquèrra a dreita (LTR)',
+               langDirRtl: 'Dreita a esquèrra (RTL)',
+               langCode: 'Còdi de lenga',
+               longDescr: 'URL de descripcion longa',
+               cssClass: 'Classas d\'estil',
+               advisoryTitle: 'Infobulla',
+               cssStyle: 'Estil',
+               ok: 'D\'acòrdi',
+               cancel: 'Anullar',
+               close: 'Tampar',
+               preview: 'Previsualizar',
+               resize: 'Redimensionar',
+               generalTab: 'General',
+               advancedTab: 'Avançat',
+               validateNumberFailed: 'Aquesta valor es pas un nombre.',
+               confirmNewPage: 'Los cambiaments pas salvats seràn perduts. Sètz segur que volètz cargar una novèla pagina ?',
+               confirmCancel: 'Certanas opcions son estadas modificadas. Sètz segur que volètz tampar ?',
+               options: 'Opcions',
+               target: 'Cibla',
+               targetNew: 'Novèla fenèstra (_blank)',
+               targetTop: 'Fenèstra superiora (_top)',
+               targetSelf: 'Meteissa fenèstra (_self)',
+               targetParent: 'Fenèstra parent (_parent)',
+               langDirLTR: 'Esquèrra a dreita (LTR)',
+               langDirRTL: 'Dreita a esquèrra (RTL)',
+               styles: 'Estil',
+               cssClasses: 'Classas d\'estil',
+               width: 'Largor',
+               height: 'Nautor',
+               align: 'Alinhament',
+               alignLeft: 'Esquèrra',
+               alignRight: 'Dreita',
+               alignCenter: 'Centrar',
+               alignJustify: 'Justificar',
+               alignTop: 'Naut',
+               alignMiddle: 'Mitan',
+               alignBottom: 'Bas',
+               alignNone: 'Pas cap',
+               invalidValue: 'Valor invalida.',
+               invalidHeight: 'La nautor deu èsser un nombre.',
+               invalidWidth: 'La largor deu èsser un nombre.',
+               invalidCssLength: 'La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura CSS valid (px, %, in, cm, mm, em, ex, pt, o pc).',
+               invalidHtmlLength: 'La valor especificada pel camp « %1 » deu èsser un nombre positiu amb o sens unitat de mesura HTML valid (px o %).',
+               invalidInlineStyle: 'La valor especificada per l\'estil en linha deu èsser compausada d\'un o mantun parelh al format « nom : valor », separats per de punts-virgulas.',
+               cssLengthTooltip: 'Entrar un nombre per una valor en pixèls o un nombre amb una unitat de mesura CSS valida (px, %, in, cm, mm, em, ex, pt, o pc).',
+
+               // Put the voice-only part of the label in the span.
+               unavailable: '%1<span class="cke_accessibility">, indisponible</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Retorn',
+                       13: 'Entrada',
+                       16: 'Majuscula',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Espaci',
+                       35: 'Fin',
+                       36: 'Origina',
+                       46: 'Suprimir',
+                       224: 'Comanda'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Acorchi de clavièr'
+       }
+};
index 7fdd920be2059b8c6374c298a5c187472613bd5d..3290a6b34800bed93af3d95b1606096ad121b1db 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'pl' ] = {
                alignMiddle: 'Do środka',
                alignBottom: 'Do dołu',
                alignNone: 'Brak',
-               invalidValue    : 'Nieprawidłowa wartość.',
+               invalidValue: 'Nieprawidłowa wartość.',
                invalidHeight: 'Wysokość musi być liczbą.',
                invalidWidth: 'Szerokość musi być liczbą.',
                invalidCssLength: 'Wartość podana dla pola "%1" musi być liczbą dodatnią bez jednostki lub z poprawną jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'pl' ] = {
                cssLengthTooltip: 'Wpisz liczbę dla wartości w pikselach lub liczbę wraz z jednostką długości zgodną z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, niedostępne</span>'
+               unavailable: '%1<span class="cke_accessibility">, niedostępne</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'spacja',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Skrót klawiszowy'
        }
 };
index e1d71164c0a02ff15a0729832ebd95296dfc1033..a6bc34fe4c46c212285ee9ae3e570bdfad5780ee 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'pt-br' ] = {
                alignMiddle: 'Centralizado',
                alignBottom: 'Inferior',
                alignNone: 'Nenhum',
-               invalidValue    : 'Valor inválido.',
+               invalidValue: 'Valor inválido.',
                invalidHeight: 'A altura tem que ser um número',
                invalidWidth: 'A largura tem que ser um número.',
                invalidCssLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'pt-br' ] = {
                cssLengthTooltip: 'Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt ou pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
+               unavailable: '%1<span class="cke_accessibility">, indisponível</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Tecla Retroceder',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Tecla Espaço',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Comando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Atalho do teclado'
        }
 };
index fbace5b4e1d4a999d3349b25abea7d9bcfab8f71..cfc1ced13957d3c9de41625c32c0c57c21e839ae 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -31,29 +31,29 @@ CKEDITOR.lang[ 'pt' ] = {
                browseServer: 'Navegar no servidor',
                url: 'URL',
                protocol: 'Protocolo',
-               upload: 'Enviar',
+               upload: 'Carregar',
                uploadSubmit: 'Enviar para o servidor',
                image: 'Imagem',
                flash: 'Flash',
                form: 'Formulário',
-               checkbox: 'Caixa de Seleção',
+               checkbox: 'Caixa de verificação',
                radio: 'Botão',
-               textField: 'Campo do Texto',
-               textarea: 'Área do Texto',
+               textField: 'Campo de texto',
+               textarea: 'Área de texto',
                hiddenField: 'Campo oculto',
                button: 'Botão',
-               select: 'Campo da Seleção',
-               imageButton: 'Botão da Imagem',
+               select: 'Campo de seleção',
+               imageButton: 'Botão da imagem',
                notSet: '<Não definido>',
-               id: 'Id.',
+               id: 'ID',
                name: 'Nome',
-               langDir: 'Direção do Idioma',
+               langDir: 'Direção do idioma',
                langDirLtr: 'Esquerda para a Direita (EPD)',
                langDirRtl: 'Direita para a Esquerda (DPE)',
-               langCode: 'Código do Idioma',
-               longDescr: 'Descrição Completa do URL',
-               cssClass: 'Classes de Estilo das Folhas',
-               advisoryTitle: 'Título Consultivo',
+               langCode: 'Código do idioma',
+               longDescr: 'Descrição completa do URL',
+               cssClass: 'Classes de estilo das folhas',
+               advisoryTitle: 'Título consultivo',
                cssStyle: 'Estilo',
                ok: 'CONFIRMAR',
                cancel: 'Cancelar',
@@ -67,10 +67,10 @@ CKEDITOR.lang[ 'pt' ] = {
                confirmCancel: 'Foram alteradas algumas das opções. Tem a certeza que deseja fechar a janela?',
                options: 'Opções',
                target: 'Destino',
-               targetNew: 'Nova Janela (_blank)',
-               targetTop: 'Janela Superior (_top)',
-               targetSelf: 'Mesma Janela (_self)',
-               targetParent: 'Janela Parente (_parent)',
+               targetNew: 'Nova janela (_blank)',
+               targetTop: 'Janela superior (_top)',
+               targetSelf: 'Mesma janela (_self)',
+               targetParent: 'Janela dependente (_parent)',
                langDirLTR: 'Esquerda para a Direita (EPD)',
                langDirRTL: 'Direita para a Esquerda (DPE)',
                styles: 'Estilo',
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'pt' ] = {
                alignMiddle: 'Centro',
                alignBottom: 'Base',
                alignNone: 'Nenhum',
-               invalidValue    : 'Valor inválido.',
+               invalidValue: 'Valor inválido.',
                invalidHeight: 'A altura deve ser um número.',
                invalidWidth: 'A largura deve ser um número. ',
                invalidCssLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'pt' ] = {
                cssLengthTooltip: 'Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, indisponível</span>'
+               unavailable: '%1<span class="cke_accessibility">, indisponível</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Espaço',
+                       35: 'Fim',
+                       36: 'Entrada',
+                       46: 'Eliminar',
+                       224: 'Comando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 9120e56168b24b969a807759d85422ac7df4b918..d118abaebd5c7bea4271d7047e4cf0c6406a1b53 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ro' ] = {
                alignMiddle: 'Mijloc',
                alignBottom: 'Jos',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Valoare invalidă',
+               invalidValue: 'Valoare invalidă',
                invalidHeight: 'Înălțimea trebuie să fie un număr.',
                invalidWidth: 'Lățimea trebuie să fie un număr.',
                invalidCssLength: 'Valoarea specificată pentru câmpul "%1" trebuie să fie un număr pozitiv cu sau fără o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ro' ] = {
                cssLengthTooltip: 'Introduceți un număr în pixeli sau un număr cu o unitate de măsură CSS (px, %, in, cm, mm, em, ex, pt, sau pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nu este disponibil</span>'
+               unavailable: '%1<span class="cke_accessibility">, nu este disponibil</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index a4aac48f355f2e19bcc9536e641596c300def5a5..1ccc052a329291741f035efb326a0fa57d452ea5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'ru' ] = {
                alignMiddle: 'Посередине',
                alignBottom: 'Понизу',
                alignNone: 'Нет',
-               invalidValue    : 'Недопустимое значение.',
+               invalidValue: 'Недопустимое значение.',
                invalidHeight: 'Высота задается числом.',
                invalidWidth: 'Ширина задается числом.',
                invalidCssLength: 'Значение, указанное в поле "%1", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'ru' ] = {
                cssLengthTooltip: 'Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, недоступно</span>'
+               unavailable: '%1<span class="cke_accessibility">, недоступно</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Пробел',
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Комбинация клавиш'
        }
 };
index c039733ef2d872c0fcfa6e5e9ac32226bbf49822..df0d73457d202785dc58f9274853f439c150869a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'si' ] = {
                alignMiddle: 'මැද',
                alignBottom: 'පහල',
                alignNone: 'None', // MISSING
-               invalidValue    : 'වැරදී වටිනාකමකි',
+               invalidValue: 'වැරදී වටිනාකමකි',
                invalidHeight: 'උස අංකයක් විය යුතුය',
                invalidWidth: 'පළල අංකයක් විය යුතුය',
                invalidCssLength: 'වටිනාකමක් නිරූපණය කිරීම "%1" ප්‍රදේශය ධන සංක්‍යාත්මක වටිනාකමක් හෝ  නිවරදි නොවන  CSS මිනුම් එකක(px, %, in, cm, mm, em, ex, pt, pc)',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'si' ] = {
                cssLengthTooltip: 'සංක්‍යා ඇතුලත් කිරීමේදී වටිනාකම තිත් ප්‍රමාණය නිවරදි CSS  ඒකක(තිත්, %, අඟල්,සෙමි, mm, em, ex, pt, pc)',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span පන්තිය="ළඟා වියහැකි ද බලන්න">, නොමැතිනම්</span>'
+               unavailable: '%1<span පන්තිය="ළඟා වියහැකි ද බලන්න">, නොමැතිනම්</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 337dbed14357f2aad7f4a9aef032fc08a9afc327..e473cc672e153d054f0547a6b49b34ec0f215d51 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'sk' ] = {
                alignMiddle: 'Na stred',
                alignBottom: 'Dole',
                alignNone: 'Žiadne',
-               invalidValue    : 'Neplatná hodnota.',
+               invalidValue: 'Neplatná hodnota.',
                invalidHeight: 'Výška musí byť číslo.',
                invalidWidth: 'Šírka musí byť číslo.',
                invalidCssLength: 'Špecifikovaná hodnota pre pole "%1" musí byť kladné číslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'sk' ] = {
                cssLengthTooltip: 'Vložte číslo pre hodnotu v pixeloch alebo číslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt alebo pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nedostupný</span>'
+               unavailable: '%1<span class="cke_accessibility">, nedostupný</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Medzerník',
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Delete',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Klávesová skratka'
        }
 };
index ee9897c52e78f5a9da5334ee44e6b71fa1c89665..bbaa5ea37302d11630ed1d29f84c34d2f76f7618 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -19,8 +19,8 @@
  */
 CKEDITOR.lang[ 'sl' ] = {
        // ARIA description.
-       editor: 'Bogat Urejevalnik Besedila',
-       editorPanel: 'Rich Text Editor plošča',
+       editor: 'Urejevalnik obogatenega besedila',
+       editorPanel: 'Plošča urejevalnika obogatenega besedila',
 
        // Common messages and labels.
        common: {
@@ -38,21 +38,21 @@ CKEDITOR.lang[ 'sl' ] = {
                form: 'Obrazec',
                checkbox: 'Potrditveno polje',
                radio: 'Izbirno polje',
-               textField: 'Vnosno polje',
-               textarea: 'Vnosno območje',
+               textField: 'Besedilno polje',
+               textarea: 'Besedilno območje',
                hiddenField: 'Skrito polje',
                button: 'Gumb',
-               select: 'Spustno Polje',
-               imageButton: 'Slikovni Gumb',
+               select: 'Spustno polje',
+               imageButton: 'Slikovni gumb',
                notSet: '<ni določen>',
                id: 'Id',
                name: 'Ime',
                langDir: 'Smer jezika',
                langDirLtr: 'Od leve proti desni (LTR)',
                langDirRtl: 'Od desne proti levi (RTL)',
-               langCode: 'Koda Jezika',
+               langCode: 'Koda jezika',
                longDescr: 'Dolg opis URL-ja',
-               cssClass: 'Razred stilne predloge',
+               cssClass: 'Razredi slogovne predloge',
                advisoryTitle: 'Predlagani naslov',
                cssStyle: 'Slog',
                ok: 'V redu',
@@ -62,19 +62,19 @@ CKEDITOR.lang[ 'sl' ] = {
                resize: 'Potegni za spremembo velikosti',
                generalTab: 'Splošno',
                advancedTab: 'Napredno',
-               validateNumberFailed: 'Ta vrednost ni število.',
-               confirmNewPage: 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
-               confirmCancel: 'Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?',
+               validateNumberFailed: 'Vrednost ni število.',
+               confirmNewPage: 'Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
+               confirmCancel: 'Spremenili ste nekaj možnosti. Ali res želite zapreti okno?',
                options: 'Možnosti',
                target: 'Cilj',
-               targetNew: 'Novo Okno (_blank)',
-               targetTop: 'Vrhovno Okno (_top)',
-               targetSelf: 'Enako Okno (_self)',
-               targetParent: 'Matično Okno (_parent)',
+               targetNew: 'Novo okno (_blank)',
+               targetTop: 'Vrhovno okno (_top)',
+               targetSelf: 'Isto okno (_self)',
+               targetParent: 'Starševsko okno (_parent)',
                langDirLTR: 'Od leve proti desni (LTR)',
                langDirRTL: 'Od desne proti levi (RTL)',
                styles: 'Slog',
-               cssClasses: 'Razred stilne predloge',
+               cssClasses: 'Razredi slogovne predloge',
                width: 'Širina',
                height: 'Višina',
                align: 'Poravnava',
@@ -86,15 +86,32 @@ CKEDITOR.lang[ 'sl' ] = {
                alignMiddle: 'V sredino',
                alignBottom: 'Na dno',
                alignNone: 'Brez poravnave',
-               invalidValue    : 'Neveljavna vrednost.',
+               invalidValue: 'Neveljavna vrednost.',
                invalidHeight: 'Višina mora biti število.',
                invalidWidth: 'Širina mora biti število.',
-               invalidCssLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).',
-               invalidHtmlLength: 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).',
-               invalidInlineStyle: 'Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko "ime : vrednost", ločenih z podpičji.',
-               cssLengthTooltip: 'Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).',
+               invalidCssLength: 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).',
+               invalidHtmlLength: 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).',
+               invalidInlineStyle: 'Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.',
+               cssLengthTooltip: 'Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>'
+               unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 7e885a3d5d406c0030cd0d2fba2135247975b3e9..d5812ea54920d9fdd9670bf36344b6913b5d3005 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'sq' ] = {
                alignMiddle: 'Në mes',
                alignBottom: 'Poshtë',
                alignNone: 'Asnjë',
-               invalidValue    : 'Vlerë e pavlefshme',
+               invalidValue: 'Vlerë e pavlefshme',
                invalidHeight: 'Lartësia duhet të jetë një numër',
                invalidWidth: 'Gjerësia duhet të jetë një numër',
                invalidCssLength: 'Vlera e fushës "%1" duhet të jetë një numër pozitiv me apo pa njësi matëse të vlefshme CSS (px, %, in, cm, mm, em, ex, pt ose pc).',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'sq' ] = {
                cssLengthTooltip: 'Fut një numër për vlerën në pixel apo një numër me një njësi të vlefshme CSS (px, %, in, cm, mm, ex, pt, ose pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, i padisponueshëm</span>'
+               unavailable: '%1<span class="cke_accessibility">, i padisponueshëm</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Prapa',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Grise',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 78cce5a893e3f2481434ba779472b19fd0a501fc..9994a0ac630a2e42472281a8ea85a16b9ecd42b1 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'sr-latn' ] = {
                alignMiddle: 'Sredina',
                alignBottom: 'Dole',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Visina mora biti broj.',
                invalidWidth: 'Širina mora biti broj.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'sr-latn' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index cd2bf56cb8f75904344a28d21c3729dfd119dc10..341bf7a31172e85f1b71902340f151d1b40b67c9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'sr' ] = {
                alignMiddle: 'Средина',
                alignBottom: 'Доле',
                alignNone: 'None', // MISSING
-               invalidValue    : 'Invalid value.', // MISSING
+               invalidValue: 'Invalid value.', // MISSING
                invalidHeight: 'Height must be a number.', // MISSING
                invalidWidth: 'Width must be a number.', // MISSING
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'sr' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index afd1a46dd1a07d3cfa01e148e9a11c2627943bb4..3074d46031b3b01f5820fad360c6e1a0cdc4ff60 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -18,8 +18,8 @@
  */
 CKEDITOR.lang[ 'sv' ] = {
        // ARIA description.
-       editor: 'Rich Text Editor',
-       editorPanel: 'Rich Text Editor panel',
+       editor: 'Rich Text-editor',
+       editorPanel: 'Panel till Rich Text-editor',
 
        // Common messages and labels.
        common: {
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'sv' ] = {
                alignMiddle: 'Mitten',
                alignBottom: 'Nederkant',
                alignNone: 'Ingen',
-               invalidValue    : 'Felaktigt värde.',
+               invalidValue: 'Felaktigt värde.',
                invalidHeight: 'Höjd måste vara ett nummer.',
                invalidWidth: 'Bredd måste vara ett nummer.',
                invalidCssLength: 'Värdet för fältet "%1" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'sv' ] = {
                cssLengthTooltip: 'Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>'
+               unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backsteg',
+                       13: 'Retur',
+                       16: 'Skift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Mellanslag',
+                       35: 'Slut',
+                       36: 'Hem',
+                       46: 'Radera',
+                       224: 'Kommando'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Kortkommando'
        }
 };
index 91b53ccecf2c1321acbb1e81abce960f4800157b..6dc918ead9e6876766b8bd2693b660e056c183d0 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'th' ] = {
                alignMiddle: 'กึ่งกลางแนวตั้ง',
                alignBottom: 'ชิดด้านล่าง',
                alignNone: 'None', // MISSING
-               invalidValue    : 'ค่าไม่ถูกต้อง',
+               invalidValue: 'ค่าไม่ถูกต้อง',
                invalidHeight: 'ความสูงต้องเป็นตัวเลข',
                invalidWidth: 'ความกว้างต้องเป็นตัวเลข',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'th' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace', // MISSING
+                       13: 'Enter', // MISSING
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Delete', // MISSING
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 00cafca3562be18b9cc5c16baa5a6abdcce2670d..0cbd57cc5005cf9ac2907ecafaaa1c2493761cfd 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'tr' ] = {
                alignMiddle: 'Orta',
                alignBottom: 'Alt',
                alignNone: 'Hiçbiri',
-               invalidValue    : 'Geçersiz değer.',
+               invalidValue: 'Geçersiz değer.',
                invalidHeight: 'Yükseklik değeri bir sayı olmalıdır.',
                invalidWidth: 'Genişlik değeri bir sayı olmalıdır.',
                invalidCssLength: '"%1" alanı için verilen değer, geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt, veya pc) içeren veya içermeyen pozitif bir sayı olmalıdır.',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'tr' ] = {
                cssLengthTooltip: 'Piksel türünde bir sayı veya geçerli bir CSS ölçü birimi (px, %, in, cm, mm, em, ex, pt veya pc) içeren bir sayı girin.',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, kullanılamaz</span>'
+               unavailable: '%1<span class="cke_accessibility">, kullanılamaz</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Silme Tuşu',
+                       13: 'Giriş Tuşu',
+                       16: 'Üst Karater Tuşu',
+                       17: 'Kontrol Tuşu',
+                       18: 'Alt Tuşu',
+                       32: 'Boşluk Tuşu',
+                       35: 'En Sona Tuşu',
+                       36: 'En Başa Tuşu',
+                       46: 'Silme Tuşu',
+                       224: 'Komut Tuşu'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Klavye Kısayolu'
        }
 };
index 20354469319e7803d2e36517b15286e9a38c83c9..c63170bb09b32435f91a8e534c7608e8f2f556a2 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'tt' ] = {
                alignMiddle: 'Уртага',
                alignBottom: 'Аска',
                alignNone: 'Һичбер',
-               invalidValue    : 'Дөрес булмаган кыйммәт.',
+               invalidValue: 'Дөрес булмаган кыйммәт.',
                invalidHeight: 'Биеклек сан булырга тиеш.',
                invalidWidth: 'Киңлек сан булырга тиеш.',
                invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'tt' ] = {
                cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+               unavailable: '%1<span class="cke_accessibility">, unavailable</span>', // MISSING
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Кайтару',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Бетерү',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index f7d328378f1d63e8e291e57b7a5dbb70668154af..13a256d1d60112f7729ae5edead2b581ad51c8c5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -85,7 +85,7 @@ CKEDITOR.lang[ 'ug' ] = {
                alignMiddle: 'ئوتتۇرا',
                alignBottom: 'ئاستى',
                alignNone: 'يوق',
-               invalidValue    : 'ئىناۋەتسىز قىممەت.',
+               invalidValue: 'ئىناۋەتسىز قىممەت.',
                invalidHeight: 'ئېگىزلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
                invalidWidth: 'كەڭلىك چوقۇم رەقەم پىچىمىدا بولۇشى زۆرۈر',
                invalidCssLength: 'بۇ سۆز بۆلىكى چوقۇم مۇۋاپىق بولغان CSS ئۇزۇنلۇق قىممىتى بولۇشى زۆرۈر، بىرلىكى (px, %, in, cm, mm, em, ex, pt ياكى pc)',
@@ -94,6 +94,23 @@ CKEDITOR.lang[ 'ug' ] = {
                cssLengthTooltip: 'بۇ سۆز بۆلىكى بىرىكمە CSS ئۇزۇنلۇق قىممىتى بولۇشى كېرەك. ئۆز ئىچىگە ئالىدىغان بىرلىك (px, %, in, cm, mm, em, ex, pt ياكى pc)',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class=\\\\"cke_accessibility\\\\">، ئىشلەتكىلى بولمايدۇ</span>'
+               unavailable: '%1<span class=\\\\"cke_accessibility\\\\">، ئىشلەتكىلى بولمايدۇ</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'ئۆچۈر',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index 18f8d5275fd7c04b2d50faa998b6788b6946c1fa..3fbc52d2d8aad96080d122c73ca2b22685dbcce9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -20,7 +20,7 @@
 CKEDITOR.lang[ 'uk' ] = {
        // ARIA description.
        editor: 'Текстовий редактор',
-       editorPanel: 'Панель текстового редактора',
+       editorPanel: 'Ð\9fанелÑ\8c Ñ\80озÑ\88иÑ\80еного Ñ\82екÑ\81Ñ\82ового Ñ\80едакÑ\82оÑ\80а',
 
        // Common messages and labels.
        common: {
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'uk' ] = {
                alignMiddle: 'По середині',
                alignBottom: 'По нижньому краю',
                alignNone: 'Нема',
-               invalidValue    : 'Невірне значення.',
+               invalidValue: 'Невірне значення.',
                invalidHeight: 'Висота повинна бути цілим числом.',
                invalidWidth: 'Ширина повинна бути цілим числом.',
                invalidCssLength: 'Значення, вказане для "%1" в полі повинно бути позитивним числом або без дійсного виміру CSS блоку (px, %, in, cm, mm, em, ex, pt або pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'uk' ] = {
                cssLengthTooltip: 'Введіть номер значення в пікселях або число з дійсною одиниці CSS (px, %, in, cm, mm, em, ex, pt або pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, не доступне</span>'
+               unavailable: '%1<span class="cke_accessibility">, не доступне</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Backspace',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: 'Space', // MISSING
+                       35: 'End',
+                       36: 'Home',
+                       46: 'Видалити',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index d1b5dc4206bcaf05c629a7af1f46e8922dd280a7..45d3d30510a0c48f78a724b03a20ce156d8e5b81 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'vi' ] = {
                alignMiddle: 'Giữa',
                alignBottom: 'Dưới',
                alignNone: 'Không',
-               invalidValue    : 'Giá trị không hợp lệ.',
+               invalidValue: 'Giá trị không hợp lệ.',
                invalidHeight: 'Chiều cao phải là số nguyên.',
                invalidWidth: 'Chiều rộng phải là số nguyên.',
                invalidCssLength: 'Giá trị quy định cho trường "%1" phải là một số dương có hoặc không có một đơn vị đo CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'vi' ] = {
                cssLengthTooltip: 'Nhập một giá trị theo pixel hoặc một số với một đơn vị CSS hợp lệ (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">, không có</span>'
+               unavailable: '%1<span class="cke_accessibility">, không có</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: 'Phím Backspace',
+                       13: 'Enter',
+                       16: 'Shift', // MISSING
+                       17: 'Ctrl', // MISSING
+                       18: 'Alt', // MISSING
+                       32: 'Space', // MISSING
+                       35: 'End', // MISSING
+                       36: 'Home', // MISSING
+                       46: 'Xóa',
+                       224: 'Command' // MISSING
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: 'Keyboard shortcut' // MISSING
        }
 };
index c3b01a5c91c87273c39b10f25d23efeb3803989f..b89c0c9fe8b88de47423847d48d7f3fb29294dc6 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'zh-cn' ] = {
                alignMiddle: '居中',
                alignBottom: '底部',
                alignNone: '无',
-               invalidValue    : '无效的值。',
+               invalidValue: '无效的值。',
                invalidHeight: '高度必须为数字格式',
                invalidWidth: '宽度必须为数字格式',
                invalidCssLength: '此“%1”字段的值必须为正数,可以包含或不包含一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'zh-cn' ] = {
                cssLengthTooltip: '输入一个表示像素值的数字,或加上一个有效的 CSS 长度单位(px, %, in, cm, mm, em, ex, pt 或 pc)。',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">,不可用</span>'
+               unavailable: '%1<span class="cke_accessibility">,不可用</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: '退格键',
+                       13: '回车键',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: '空格键',
+                       35: '行尾键',
+                       36: '行首键',
+                       46: '删除键',
+                       224: 'Command'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: '快捷键'
        }
 };
index a5124e2b3868c7a2aeaac6124c03896966135857..c8a0548f89c65aa1aeb49775df2db7660616a478 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -86,7 +86,7 @@ CKEDITOR.lang[ 'zh' ] = {
                alignMiddle: '中間對齊',
                alignBottom: '底端',
                alignNone: '無',
-               invalidValue    : '無效值。',
+               invalidValue: '無效值。',
                invalidHeight: '高度必須為數字。',
                invalidWidth: '寬度必須為數字。',
                invalidCssLength: '「%1」的值應為正數,並可包含有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
@@ -95,6 +95,23 @@ CKEDITOR.lang[ 'zh' ] = {
                cssLengthTooltip: '請輸入數值,單位是像素或有效的 CSS 單位 (px, %, in, cm, mm, em, ex, pt, 或 pc)。',
 
                // Put the voice-only part of the label in the span.
-               unavailable: '%1<span class="cke_accessibility">,無法使用</span>'
+               unavailable: '%1<span class="cke_accessibility">,無法使用</span>',
+
+               // Keyboard keys translations used for creating shortcuts descriptions in tooltips, context menus and ARIA labels.
+               keyboard: {
+                       8: '退格鍵',
+                       13: 'Enter',
+                       16: 'Shift',
+                       17: 'Ctrl',
+                       18: 'Alt',
+                       32: '空白鍵',
+                       35: 'End',
+                       36: 'Home',
+                       46: '刪除',
+                       224: 'Command 鍵'
+               },
+
+               // Prepended to ARIA labels with shortcuts.
+               keyboardShortcut: '鍵盤快捷鍵'
        }
 };
diff --git a/sources/plugins/Audio/dialogs/audio.js b/sources/plugins/Audio/dialogs/audio.js
new file mode 100644 (file)
index 0000000..5b72af9
--- /dev/null
@@ -0,0 +1,350 @@
+CKEDITOR.dialog.add( 'audio', function ( editor )\r
+{\r
+       var lang = editor.lang.audio;\r
+\r
+       function commitValue( audioNode, extraStyles )\r
+       {\r
+               var value=this.getValue();\r
+\r
+               if ( !value && this.id=='id' )\r
+                       value = generateId();\r
+\r
+               audioNode.setAttribute( this.id, value);\r
+\r
+               if ( !value )\r
+                       return;\r
+               switch( this.id )\r
+               {\r
+                       case 'poster':\r
+                               extraStyles.backgroundImage = 'url(' + value + ')';\r
+                               break;\r
+                       case 'width':\r
+                               extraStyles.width = value + 'px';\r
+                               break;\r
+                       case 'height':\r
+                               extraStyles.height = value + 'px';\r
+                               break;\r
+               }\r
+       }\r
+\r
+       function commitSrc( audioNode, extraStyles, audios )\r
+       {\r
+               var match = this.id.match(/(\w+)(\d)/),\r
+                       id = match[1],\r
+                       number = parseInt(match[2], 10);\r
+\r
+               var audio = audios[number] || (audios[number]={});\r
+               audio[id] = this.getValue();\r
+       }\r
+\r
+       function loadValue( audioNode )\r
+       {\r
+               if ( audioNode )\r
+                       this.setValue( audioNode.getAttribute( this.id ) );\r
+               else\r
+               {\r
+                       if ( this.id == 'id')\r
+                               this.setValue( generateId() );\r
+               }\r
+       }\r
+\r
+       function loadSrc( audioNode, audios )\r
+       {\r
+               var match = this.id.match(/(\w+)(\d)/),\r
+                       id = match[1],\r
+                       number = parseInt(match[2], 10);\r
+\r
+               var audio = audios[number];\r
+               if (!audio)\r
+                       return;\r
+               this.setValue( audio[ id ] );\r
+       }\r
+\r
+       function generateId()\r
+       {\r
+               var now = new Date();\r
+               return 'audio' + now.getFullYear() + now.getMonth() + now.getDate() + now.getHours() + now.getMinutes() + now.getSeconds();\r
+       }\r
+\r
+       // To automatically get the dimensions of the poster image\r
+       var onImgLoadEvent = function()\r
+       {\r
+               // Image is ready.\r
+               var preview = this.previewImage;\r
+               preview.removeListener( 'load', onImgLoadEvent );\r
+               preview.removeListener( 'error', onImgLoadErrorEvent );\r
+               preview.removeListener( 'abort', onImgLoadErrorEvent );\r
+\r
+               this.setValueOf( 'info', 'width', preview.$.width );\r
+               this.setValueOf( 'info', 'height', preview.$.height );\r
+       };\r
+\r
+       var onImgLoadErrorEvent = function()\r
+       {\r
+               // Error. Image is not loaded.\r
+               var preview = this.previewImage;\r
+               preview.removeListener( 'load', onImgLoadEvent );\r
+               preview.removeListener( 'error', onImgLoadErrorEvent );\r
+               preview.removeListener( 'abort', onImgLoadErrorEvent );\r
+       };\r
+\r
+       return {\r
+               title : lang.dialogTitle,\r
+               minWidth : 400,\r
+               minHeight : 200,\r
+\r
+               onShow : function()\r
+               {\r
+                       // Clear previously saved elements.\r
+                       this.fakeImage = this.audioNode = null;\r
+                       // To get dimensions of poster image\r
+                       this.previewImage = editor.document.createElement( 'img' );\r
+\r
+                       var fakeImage = this.getSelectedElement();\r
+                       if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'audio' )\r
+                       {\r
+                               this.fakeImage = fakeImage;\r
+\r
+                               var audioNode = editor.restoreRealElement( fakeImage ),\r
+                                       audios = [],\r
+                                       sourceList = audioNode.getElementsByTag( 'source', '' );\r
+                               if (sourceList.count()==0)\r
+                                       sourceList = audioNode.getElementsByTag( 'source', 'cke' );\r
+\r
+                               for ( var i = 0, length = sourceList.count() ; i < length ; i++ )\r
+                               {\r
+                                       var item = sourceList.getItem( i );\r
+                                       audios.push( {src : item.getAttribute( 'src' ), type: item.getAttribute( 'type' )} );\r
+                               }\r
+\r
+                               this.audioNode = audioNode;\r
+\r
+                               this.setupContent( audioNode, audios );\r
+                       }\r
+                       else\r
+                               this.setupContent( null, [] );\r
+               },\r
+\r
+               onOk : function()\r
+               {\r
+                       // If there's no selected element create one. Otherwise, reuse it\r
+                       var audioNode = null;\r
+                       if ( !this.fakeImage )\r
+                       {\r
+                               audioNode = CKEDITOR.dom.element.createFromHtml( '<cke:audio></cke:audio>', editor.document );\r
+                               audioNode.setAttributes(\r
+                                       {\r
+                                               controls : 'controls'\r
+                                       } );\r
+                       }\r
+                       else\r
+                       {\r
+                               audioNode = this.audioNode;\r
+                       }\r
+\r
+                       var extraStyles = {}, audios = [];\r
+                       this.commitContent( audioNode, extraStyles, audios );\r
+\r
+                       var innerHtml = '', links = '',\r
+                               link = lang.linkTemplate || '',\r
+                               fallbackTemplate = lang.fallbackTemplate || '';\r
+                       for(var i=0; i<audios.length; i++)\r
+                       {\r
+                               var audio = audios[i];\r
+                               if ( !audio || !audio.src )\r
+                                       continue;\r
+                               innerHtml += '<cke:source src="' + audio.src + '" type="' + audio.type + '" />';\r
+                               links += link.replace('%src%', audio.src).replace('%type%', audio.type);\r
+                       }\r
+                       audioNode.setHtml( innerHtml + fallbackTemplate.replace( '%links%', links ) );\r
+\r
+                       // Refresh the fake image.\r
+                       var newFakeImage = editor.createFakeElement( audioNode, 'cke_audio', 'audio', false );\r
+                       newFakeImage.setStyles( extraStyles );\r
+                       if ( this.fakeImage )\r
+                       {\r
+                               newFakeImage.replace( this.fakeImage );\r
+                               editor.getSelection().selectElement( newFakeImage );\r
+                       }\r
+                       else\r
+                       {\r
+                               // Insert it in a div\r
+                               var div = new CKEDITOR.dom.element( 'DIV', editor.document );\r
+                               editor.insertElement( div );\r
+                               div.append( newFakeImage );\r
+                       }\r
+               },\r
+               onHide : function()\r
+               {\r
+                       if ( this.previewImage )\r
+                       {\r
+                               this.previewImage.removeListener( 'load', onImgLoadEvent );\r
+                               this.previewImage.removeListener( 'error', onImgLoadErrorEvent );\r
+                               this.previewImage.removeListener( 'abort', onImgLoadErrorEvent );\r
+                               this.previewImage.remove();\r
+                               this.previewImage = null;               // Dialog is closed.\r
+                       }\r
+               },\r
+\r
+               contents :\r
+               [\r
+                       {\r
+                               id : 'info',\r
+                               elements :\r
+                               [\r
+                                       {\r
+                                               type : 'hbox',\r
+                                               widths: [ '', '100px'],\r
+                                               children : [\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'poster',\r
+                                                               label : lang.poster,\r
+                                                               commit : commitValue,\r
+                                                               setup : loadValue,\r
+                                                               onChange : function()\r
+                                                               {\r
+                                                                       var dialog = this.getDialog(),\r
+                                                                               newUrl = this.getValue();\r
+\r
+                                                                       //Update preview image\r
+                                                                       if ( newUrl.length > 0 )        //Prevent from load before onShow\r
+                                                                       {\r
+                                                                               dialog = this.getDialog();\r
+                                                                               var preview = dialog.previewImage;\r
+\r
+                                                                               preview.on( 'load', onImgLoadEvent, dialog );\r
+                                                                               preview.on( 'error', onImgLoadErrorEvent, dialog );\r
+                                                                               preview.on( 'abort', onImgLoadErrorEvent, dialog );\r
+                                                                               preview.setAttribute( 'src', newUrl );\r
+                                                                       }\r
+                                                               }\r
+                                                       },\r
+                                                       {\r
+                                                               type : 'button',\r
+                                                               id : 'browse',\r
+                                                               hidden : 'true',\r
+                                                               style : 'display:inline-block;margin-top:10px;',\r
+                                                               filebrowser :\r
+                                                               {\r
+                                                                       action : 'Browse',\r
+                                                                       target: 'info:poster',\r
+                                                                       url: editor.config.filebrowserImageBrowseUrl || editor.config.filebrowserBrowseUrl\r
+                                                               },\r
+                                                               label : editor.lang.common.browseServer\r
+                                                       }]\r
+                                       },\r
+                                       {\r
+                                               type : 'hbox',\r
+                                               widths: [ '33%', '33%', '33%'],\r
+                                               children : [\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'width',\r
+                                                               label : editor.lang.common.width,\r
+                                                               'default' : 400,\r
+                                                               validate : CKEDITOR.dialog.validate.notEmpty( lang.widthRequired ),\r
+                                                               commit : commitValue,\r
+                                                               setup : loadValue\r
+                                                       },\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'height',\r
+                                                               label : editor.lang.common.height,\r
+                                                               'default' : 300,\r
+                                                               validate : CKEDITOR.dialog.validate.notEmpty(lang.heightRequired ),\r
+                                                               commit : commitValue,\r
+                                                               setup : loadValue\r
+                                                       },\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'id',\r
+                                                               label : 'Id',\r
+                                                               commit : commitValue,\r
+                                                               setup : loadValue\r
+                                                       }\r
+                                                               ]\r
+                                       },\r
+                                       {\r
+                                               type : 'hbox',\r
+                                               widths: [ '', '100px', '75px'],\r
+                                               children : [\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'src0',\r
+                                                               label : lang.sourceaudio,\r
+                                                               commit : commitSrc,\r
+                                                               setup : loadSrc\r
+                                                       },\r
+                                                       {\r
+                                                               type : 'button',\r
+                                                               id : 'browse',\r
+                                                               hidden : 'true',\r
+                                                               style : 'display:inline-block;margin-top:10px;',\r
+                                                               filebrowser :\r
+                                                               {\r
+                                                                       action : 'Browse',\r
+                                                                       target: 'info:src0',\r
+                                                                       url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl\r
+                                                               },\r
+                                                               label : editor.lang.common.browseServer\r
+                                                       },\r
+                                                       {\r
+                                                               id : 'type0',\r
+                                                               label : lang.sourceType,\r
+                                                               type : 'select',\r
+                                                               'default' : 'audio/mp3',\r
+                                                               items :\r
+                                                               [\r
+                                                                       [ 'MP3', 'audio/mp3' ],\r
+                                                                       [ 'WAV', 'audio/wav' ]\r
+                                                               ],\r
+                                                               commit : commitSrc,\r
+                                                               setup : loadSrc\r
+                                                       }]\r
+                                       },\r
+\r
+                                       {\r
+                                               type : 'hbox',\r
+                                               widths: [ '', '100px', '75px'],\r
+                                               children : [\r
+                                                       {\r
+                                                               type : 'text',\r
+                                                               id : 'src1',\r
+                                                               label : lang.sourceaudio,\r
+                                                               commit : commitSrc,\r
+                                                               setup : loadSrc\r
+                                                       },\r
+                                                       {\r
+                                                               type : 'button',\r
+                                                               id : 'browse',\r
+                                                               hidden : 'true',\r
+                                                               style : 'display:inline-block;margin-top:10px;',\r
+                                                               filebrowser :\r
+                                                               {\r
+                                                                       action : 'Browse',\r
+                                                                       target: 'info:src1',\r
+                                                                       url: editor.config.filebrowserAudioBrowseUrl || editor.config.filebrowserBrowseUrl\r
+                                                               },\r
+                                                               label : editor.lang.common.browseServer\r
+                                                       },\r
+                                                       {\r
+                                                               id : 'type1',\r
+                                                               label : lang.sourceType,\r
+                                                               type : 'select',\r
+                                                               'default':'audio/wav',\r
+                                                               items :\r
+                                                               [\r
+                                                                       [ 'MP3', 'audio/mp3' ],\r
+                                                                       [ 'WAV', 'audio/wav' ]\r
+                                                               ],\r
+                                                               commit : commitSrc,\r
+                                                               setup : loadSrc\r
+                                                       }]\r
+                                       }\r
+                               ]\r
+                       }\r
+\r
+               ]\r
+       };\r
+} );\r
diff --git a/sources/plugins/Audio/docs/install.html b/sources/plugins/Audio/docs/install.html
new file mode 100644 (file)
index 0000000..3fbf30e
--- /dev/null
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\r
+       "http://www.w3.org/TR/html4/loose.dtd">\r
+<html lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
+<title>Audio plugin</title>\r
+<link href="styles.css" rel="stylesheet" type="text/css">\r
+</head>\r
+\r
+<body>\r
+<h1>Audio Plugin for CKEditor</h1>\r
+\r
+<h2>Introduction</h2>\r
+<p>This is a plugin to create HTML5 &lt;audio&gt; elements in <a href="http://www.ckeditor.com">CKEditor</a>.</p>\r
+<h3>Version history: </h3>\r
+<ol>\r
+  <li>1.0: 10-July-2015. First version.</li>\r
+</ol>\r
+\r
+<h2>Installation</h2>\r
+<h3>1. Copying the files</h3>\r
+<p>Extract the contents of the zip in you plugins directory, so it ends up like\r
+    this<br>\r
+    <!--<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install">-->\r
+    </p>\r
+<pre id="--install">\r
+ckeditor\\r
+       ...\r
+       images\\r
+       lang\\r
+       plugins\\r
+               ...\r
+               audio\\r
+                       plugin.js\r
+                       dialogs\\r
+                               audio.js\r
+                       docs\\r
+                               install.html\r
+                       images\\r
+                               icon.png\r
+                               placeholder.png\r
+               ...\r
+       skins\\r
+       themes\\r
+</pre>\r
+<h3>2. Adding it to CKEditor</h3>\r
+<p>Now add the plugin in your <em>config.js</em> or custom js configuration\r
+file:\r
+<code>config.extraPlugins='audio'; </code>\r
+</p>\r
+\r
+<h3>3. Add it to your toolbar</h3>\r
+<p>In your toolbar configuration, add a new 'Audio' item in the place where you want the button to show up.</p>\r
+\r
+<h3>4. Configure server browser for audio</h3>\r
+<p>You can use the <code>config.filebrowserAudioBrowseUrl</code> entry to specify a url so the file browser shows just audio elements (as long as your configure properly your file browser).</p>\r
+\r
+<h3>5. Use it</h3>\r
+<p>Now empty the cache of your browser and reload the editor, the new button should show up and you can add &lt;audio&gt; elements into the content.</p>\r
+\r
+<h2>Final notes</h2>\r
+<p>Please, note that only newer browsers support the Audio element, in older ones a simple text linking to the source audios is provided, you might want to\r
+use some javascript or css to customize the final behavior of these elements.</p>\r
+\r
+\r
+<h2>Disclaimers</h2>\r
+<p>CKEditor is  &copy; CKSource.com</p>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/Audio/docs/styles.css b/sources/plugins/Audio/docs/styles.css
new file mode 100644 (file)
index 0000000..5eba91e
--- /dev/null
@@ -0,0 +1,67 @@
+body {\r
+       font-family: Arial, Helvetica, sans-serif;\r
+       font-size: 90%;\r
+}\r
+h1 {\r
+       text-align:center;\r
+       font-size:180%;\r
+}\r
+h2 {\r
+       border-bottom:2px solid #CCC;\r
+       margin:1em 0 0.4em 0;\r
+}\r
+h3 {\r
+       margin-bottom:0.4em;\r
+}\r
+p {\r
+       margin:0 0 1em 1em;\r
+       text-align:justify;\r
+}\r
+ol {\r
+       margin:0 0 1.2em 1em;\r
+       padding:0;\r
+       list-style-type:none;\r
+}\r
+ol li {\r
+       margin:0.2em 0;\r
+}\r
+pre {\r
+       font-size:100%;\r
+       font-family:"Courier New", Courier, mono;\r
+       background-color: #CCCCCC;\r
+       border:1px solid #999;\r
+       padding:0.2em 1em;\r
+       margin: 0.4em 0;\r
+       display:block;\r
+       white-space: pre;\r
+       overflow: auto;\r
+}\r
+code {\r
+       font-size:100%;\r
+       font-family:"Courier New", Courier, mono;\r
+       background-color: #CCCCCC;\r
+       border:1px solid #999;\r
+       padding:0.2em;\r
+       white-space: pre;\r
+}\r
+form {\r
+       margin:0 0 0 1em;\r
+}\r
+span.key {\r
+       color: #006600;\r
+}\r
+#install {\r
+       display:none\r
+}\r
+#languages ul {\r
+       display:inline;\r
+       list-style-type:none;\r
+       margin:0;\r
+       padding:0;\r
+}\r
+#languages li {\r
+       display:inline;\r
+       margin:0;\r
+       padding:0;\r
+       vertical-align:bottom;\r
+}\r
diff --git a/sources/plugins/Audio/images/audio.png b/sources/plugins/Audio/images/audio.png
new file mode 100644 (file)
index 0000000..b4a4ef7
Binary files /dev/null and b/sources/plugins/Audio/images/audio.png differ
diff --git a/sources/plugins/Audio/images/icon.png b/sources/plugins/Audio/images/icon.png
new file mode 100644 (file)
index 0000000..1ec7ecc
Binary files /dev/null and b/sources/plugins/Audio/images/icon.png differ
diff --git a/sources/plugins/Audio/images/placeholder.png b/sources/plugins/Audio/images/placeholder.png
new file mode 100644 (file)
index 0000000..1456cac
Binary files /dev/null and b/sources/plugins/Audio/images/placeholder.png differ
diff --git a/sources/plugins/Audio/plugin.js b/sources/plugins/Audio/plugin.js
new file mode 100644 (file)
index 0000000..ee618f6
--- /dev/null
@@ -0,0 +1,211 @@
+/*\r
+ * @file audio plugin for CKEditor\r
+ * Copyright (C) 2011 Alfonso Martínez de Lizarrondo\r
+ *\r
+ * == BEGIN LICENSE ==\r
+ *\r
+ * Licensed under the terms of any of the following licenses at your\r
+ * choice:\r
+ *\r
+ *  - GNU General Public License Version 2 or later (the "GPL")\r
+ *    http://www.gnu.org/licenses/gpl.html\r
+ *\r
+ *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
+ *    http://www.gnu.org/licenses/lgpl.html\r
+ *\r
+ *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
+ *    http://www.mozilla.org/MPL/MPL-1.1.html\r
+ *\r
+ * == END LICENSE ==\r
+ *\r
+ */\r
+\r
+( function() {\r
+\r
+CKEDITOR.plugins.add( 'Audio',\r
+{\r
+       // Translations, available at the end of this file, without extra requests\r
+       lang : [ 'en', 'es' ],\r
+\r
+       getPlaceholderCss : function()\r
+       {\r
+               return 'img.cke_audio' +\r
+                               '{' +\r
+                                       'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +\r
+                                       'background-position: center center;' +\r
+                                       'background-repeat: no-repeat;' +\r
+                                       'background-color:gray;'+\r
+                                       'border: 1px solid #a9a9a9;' +\r
+                                       'width: 80px;' +\r
+                                       'height: 80px;' +\r
+                               '}';\r
+       },\r
+\r
+       onLoad : function()\r
+       {\r
+               // v4\r
+               if (CKEDITOR.addCss)\r
+                       CKEDITOR.addCss( this.getPlaceholderCss() );\r
+\r
+       },\r
+\r
+       init : function( editor )\r
+       {\r
+               var lang = editor.lang.audio;\r
+\r
+               // Check for CKEditor 3.5\r
+               if (typeof editor.element.data == 'undefined')\r
+               {\r
+                       alert('The "audio" plugin requires CKEditor 3.5 or newer');\r
+                       return;\r
+               }\r
+\r
+               CKEDITOR.dialog.add( 'audio', this.path + 'dialogs/audio.js' );\r
+\r
+               editor.addCommand( 'Audio', new CKEDITOR.dialogCommand( 'audio' ) );\r
+               editor.ui.addButton( 'Audio',\r
+                       {\r
+                               label : lang.toolbar,\r
+                               command : 'Audio',\r
+                               icon : this.path + 'images/icon.png'\r
+                       } );\r
+\r
+               // v3\r
+               if (editor.addCss)\r
+                       editor.addCss( this.getPlaceholderCss() );\r
+\r
+\r
+               // If the "menu" plugin is loaded, register the menu items.\r
+               if ( editor.addMenuItems )\r
+               {\r
+                       editor.addMenuItems(\r
+                               {\r
+                                       audio :\r
+                                       {\r
+                                               label : lang.properties,\r
+                                               command : 'Audio',\r
+                                               group : 'flash'\r
+                                       }\r
+                               });\r
+               }\r
+\r
+               editor.on( 'doubleclick', function( evt )\r
+                       {\r
+                               var element = evt.data.element;\r
+\r
+                               if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'audio' )\r
+                                       evt.data.dialog = 'audio';\r
+                       });\r
+\r
+               // If the "contextmenu" plugin is loaded, register the listeners.\r
+               if ( editor.contextMenu )\r
+               {\r
+                       editor.contextMenu.addListener( function( element, selection )\r
+                               {\r
+                                       if ( element && element.is( 'img' ) && !element.isReadOnly()\r
+                                                       && element.data( 'cke-real-element-type' ) == 'audio' )\r
+                                               return { audio : CKEDITOR.TRISTATE_OFF };\r
+                               });\r
+               }\r
+\r
+               // Add special handling for these items\r
+               CKEDITOR.dtd.$empty['cke:source']=1;\r
+               CKEDITOR.dtd.$empty['source']=1;\r
+\r
+               editor.lang.fakeobjects.audio = lang.fakeObject;\r
+\r
+\r
+       }, //Init\r
+\r
+       afterInit: function( editor )\r
+       {\r
+               var dataProcessor = editor.dataProcessor,\r
+                       htmlFilter = dataProcessor && dataProcessor.htmlFilter,\r
+                       dataFilter = dataProcessor && dataProcessor.dataFilter;\r
+\r
+               // dataFilter : conversion from html input to internal data\r
+               dataFilter.addRules(\r
+                       {\r
+\r
+                       elements : {\r
+                               $ : function( realElement )\r
+                               {\r
+                                               if ( realElement.name == 'audio' )\r
+                                               {\r
+                                                       realElement.name = 'cke:audio';\r
+                                                       for( var i=0; i < realElement.children.length; i++)\r
+                                                       {\r
+                                                               if ( realElement.children[ i ].name == 'source' )\r
+                                                                       realElement.children[ i ].name = 'cke:source'\r
+                                                       }\r
+\r
+                                                       var fakeElement = editor.createFakeParserElement( realElement, 'cke_audio', 'audio', false ),\r
+                                                               fakeStyle = fakeElement.attributes.style || '';\r
+\r
+                                                       var width = realElement.attributes.width,\r
+                                                               height = realElement.attributes.height,\r
+                                                               poster = realElement.attributes.poster;\r
+\r
+                                                       if ( typeof width != 'undefined' )\r
+                                                               fakeStyle = fakeElement.attributes.style = fakeStyle + 'width:' + CKEDITOR.tools.cssLength( width ) + ';';\r
+\r
+                                                       if ( typeof height != 'undefined' )\r
+                                                               fakeStyle = fakeElement.attributes.style = fakeStyle + 'height:' + CKEDITOR.tools.cssLength( height ) + ';';\r
+\r
+                                                       if ( poster )\r
+                                                               fakeStyle = fakeElement.attributes.style = fakeStyle + 'background-image:url(' + poster + ');';\r
+\r
+                                                       return fakeElement;\r
+                                               }\r
+                               }\r
+                       }\r
+\r
+                       }\r
+               );\r
+\r
+       } // afterInit\r
+\r
+} ); // plugins.add\r
+\r
+\r
+var en = {\r
+               toolbar : 'Audio',\r
+               dialogTitle : 'Audio properties',\r
+               fakeObject : 'Audio',\r
+               properties : 'Edit audio',\r
+               widthRequired : 'Width field cannot be empty',\r
+               heightRequired : 'Height field cannot be empty',\r
+               poster: 'Poster image',\r
+               sourceaudio: 'Source audio',\r
+               sourceType : 'Audio type',\r
+               linkTemplate :  '<a href="%src%">%type%</a> ',\r
+               fallbackTemplate : 'Your browser doesn\'t support audio.<br>Please download the file: %links%'\r
+       };\r
+\r
+var es = {\r
+               toolbar : 'Audio',\r
+               dialogTitle : 'Propiedades de audio',\r
+               fakeObject : 'Audio',\r
+               properties : 'Editar el audio',\r
+               widthRequired : 'La anchura no se puede dejar en blanco',\r
+               heightRequired : 'La altura no se puede dejar en blanco',\r
+               poster: 'Imagen de presentación',\r
+               sourceaudio: 'Archivo de audio',\r
+               sourceType : 'Tipo',\r
+               linkTemplate :  '<a href="%src%">%type%</a> ',\r
+               fallbackTemplate : 'Su navegador no soporta audio.<br>Por favor, descargue el fichero: %links%'\r
+       };\r
+\r
+       // v3\r
+       if (CKEDITOR.skins)\r
+       {\r
+               en = { audio : en} ;\r
+               es = { audio : es} ;\r
+       }\r
+\r
+// Translations\r
+CKEDITOR.plugins.setLang( 'audio', 'en', en );\r
+\r
+CKEDITOR.plugins.setLang( 'audio', 'es', es );\r
+\r
+})();\r
index 3936e43dd7c00f3237a948e6312be40e6e79ce99..eb12d4c3f83126e8fd96a3cacfdba1902d9bc6ef 100644 (file)
@@ -1,33 +1,34 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {\r
        var lang = editor.lang.a11yhelp,\r
+               coreLang = editor.lang.common.keyboard,\r
                id = CKEDITOR.tools.getNextId();\r
 \r
        // CharCode <-> KeyChar.\r
        var keyMap = {\r
-               8: lang.backspace,\r
+               8: coreLang[ 8 ],\r
                9: lang.tab,\r
-               13: lang.enter,\r
-               16: lang.shift,\r
-               17: lang.ctrl,\r
-               18: lang.alt,\r
+               13: coreLang[ 13 ],\r
+               16: coreLang[ 16 ],\r
+               17: coreLang[ 17 ],\r
+               18: coreLang[ 18 ],\r
                19: lang.pause,\r
                20: lang.capslock,\r
                27: lang.escape,\r
                33: lang.pageUp,\r
                34: lang.pageDown,\r
-               35: lang.end,\r
-               36: lang.home,\r
+               35: coreLang[ 35 ],\r
+               36: coreLang[ 36 ],\r
                37: lang.leftArrow,\r
                38: lang.upArrow,\r
                39: lang.rightArrow,\r
                40: lang.downArrow,\r
                45: lang.insert,\r
-               46: lang[ 'delete' ],\r
+               46: coreLang[ 46 ],\r
                91: lang.leftWindowKey,\r
                92: lang.rightWindowKey,\r
                93: lang.selectKey,\r
@@ -74,9 +75,9 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
        };\r
 \r
        // Modifier keys override.\r
-       keyMap[ CKEDITOR.ALT ] = lang.alt;\r
-       keyMap[ CKEDITOR.SHIFT ] = lang.shift;\r
-       keyMap[ CKEDITOR.CTRL ] = lang.ctrl;\r
+       keyMap[ CKEDITOR.ALT ] = coreLang[ 18 ];\r
+       keyMap[ CKEDITOR.SHIFT ] = coreLang[ 16 ];\r
+       keyMap[ CKEDITOR.CTRL ] = CKEDITOR.env.mac ? coreLang[ 224 ] : coreLang[ 17 ];\r
 \r
        // Sort in desc.\r
        var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ];\r
@@ -84,7 +85,6 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
        function representKeyStroke( keystroke ) {\r
                var quotient, modifier,\r
                        presentation = [];\r
-\r
                for ( var i = 0; i < modifiers.length; i++ ) {\r
                        modifier = modifiers[ i ];\r
                        quotient = keystroke / modifiers[ i ];\r
@@ -99,23 +99,14 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
                return presentation.join( '+' );\r
        }\r
 \r
-       var variablesPattern = /\$\{(.*?)\}/g;\r
-\r
-       var replaceVariables = ( function() {\r
-               // Swaps keystrokes with their commands in object literal.\r
-               // This makes searching keystrokes by command much easier.\r
-               var keystrokesByCode = editor.keystrokeHandler.keystrokes,\r
-                       keystrokesByName = {};\r
-\r
-               for ( var i in keystrokesByCode )\r
-                       keystrokesByName[ keystrokesByCode[ i ] ] = i;\r
+       var variablesPattern = /\$\{(.*?)\}/g,\r
+               replaceVariables = function( match, name ) {\r
+                       var keystrokeCode = editor.getCommandKeystroke( name );\r
 \r
-               return function( match, name ) {\r
                        // Return the keystroke representation or leave match untouched\r
                        // if there's no keystroke for such command.\r
-                       return keystrokesByName[ name ] ? representKeyStroke( keystrokesByName[ name ] ) : match;\r
+                       return keystrokeCode ? representKeyStroke( keystrokeCode ) : match;\r
                };\r
-       } )();\r
 \r
        // Create the help list directly from lang file entries.\r
        function buildHelpContents() {\r
@@ -136,13 +127,17 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
 \r
                        for ( var j = 0; j < itemsLength; j++ ) {\r
                                var item = items[ j ],\r
-                                       itemLegend = item.legend.replace( variablesPattern, replaceVariables );\r
+                                       // (http://dev.ckeditor.com/ticket/16980) There should be a different hotkey shown in Commands on Edge browser.\r
+                                       itemLegend = CKEDITOR.env.edge && item.legendEdge ? item.legendEdge : item.legend;\r
 \r
-                               // (#9765) If some commands haven't been replaced in the legend,\r
+                               itemLegend = itemLegend.replace( variablesPattern, replaceVariables );\r
+\r
+                               // (http://dev.ckeditor.com/ticket/9765) If some commands haven't been replaced in the legend,\r
                                // most likely their keystrokes are unavailable and we shouldn't include\r
                                // them in our help list.\r
-                               if ( itemLegend.match( variablesPattern ) )\r
+                               if ( itemLegend.match( variablesPattern ) ) {\r
                                        continue;\r
+                               }\r
 \r
                                sectionHtml.push( itemTpl.replace( '%1', item.name ).replace( '%2', itemLegend ) );\r
                        }\r
@@ -178,7 +173,7 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
                                                        'overflow-y:auto;' +\r
                                                        'overflow-x:hidden;' +\r
                                                '}' +\r
-                                               // Some adjustments are to be done for Quirks to work "properly" (#5757)\r
+                                               // Some adjustments are to be done for Quirks to work "properly" (http://dev.ckeditor.com/ticket/5757)\r
                                                '.cke_browser_quirks .cke_accessibility_legend,' +\r
                                                '{' +\r
                                                        'height:390px' +\r
index 4c590975c57c61ff590df1d56d8491b3ab3db821..28e8dae970fde420669cda92f89b97f1fe09ca83 100644 (file)
@@ -1,4 +1,4 @@
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 \r
 cs.js      Found: 30 Missing: 0\r
index 600dec582235965021bc48969a34173bd94283b4..f1062a9d4c4ab7159498d2f8998472538cb6785d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'af', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pouse',\r
        capslock: 'Hoofletterslot',\r
        escape: 'Ontsnap',\r
        pageUp: 'Blaaiop',\r
        pageDown: 'Blaaiaf',\r
-       end: 'Einde',\r
-       home: 'Tuis',\r
        leftArrow: 'Linkspyl',\r
        upArrow: 'Oppyl',\r
        rightArrow: 'Regterpyl',\r
        downArrow: 'Afpyl',\r
        insert: 'Toevoeg',\r
-       'delete': 'Verwyder',\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index edb58dfb0ed2634209bf8f4c99a3d2e55aa0b944..870d60d4a94f385418ceb0931195047091ec3abc 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ar', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
diff --git a/sources/plugins/a11yhelp/dialogs/lang/az.js b/sources/plugins/a11yhelp/dialogs/lang/az.js
new file mode 100644 (file)
index 0000000..bda91a4
--- /dev/null
@@ -0,0 +1,145 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'az', {\r
+       title: 'Əlillərə dəstək üzrə təlimat',\r
+       contents: 'Kömək. Pəncərəni bağlamaq üçün ESC basın.',\r
+       legend: [\r
+               {\r
+               name: 'Əsas',\r
+               items: [\r
+                       {\r
+                       name: 'Düzəliş edənin alətlər çubuğu',\r
+                       legend: 'Panelə keçmək üçün ${toolbarFocus} basın. Növbəti panelə TAB, əvvəlki panelə isə SHIFT+TAB düyməsi vasitəsi ilə keçə bilərsiz. Paneldəki düymələr arasında sol və sağ ox düyməsi ilə keçid edə bilərsiz. Seçilmiş düyməsi SPACE və ya ENTER ilə işlədə bilərsiniz.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Redaktorun pəncərəsi',\r
+                       legend:\r
+                               'Pəncərə içində növbəti element seçmək üçün TAB düyməni basın, əvvəlki isə - SHIFT+TAB. Təsdiq edilməsi üçün ENTER, imtina edilməsi isə ESC diymələri istifadə edin. Pəncərədə bir neçə vərəq olanda olnarın siyahı ALT+F10 ilə aça bilərsiz. Vərəqlərin siyahı fokus altında olanda ox düymələr vasitəsi ilə onların arasında keçid edə bilərsiz.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Redaktorun seçimlərin menyusu',\r
+                       legend: 'Seçimləri redaktə etmək üçün ${contextMenu} ya da APPLICATION KEY basın. Növbəti seçimə keçmək üçün TAB ya AŞAĞI OX düyməsini basın, əvvəlki isə - SHIFT+TAB ya YUXARI OX. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Alt menyunu açmaq üçün SPACE, ENTER ya SAĞA OX basın. ESC ya SOLA OX ilə geriyə qayıda bilərsiz. Bütün menyunu ESC ilə bağlıyın.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Düzəliş edənin siyahı qutusu',\r
+                       legend: 'Siyahı qutusu içində növbəti bənd seçmək üçün TAB ya AŞAĞI OX, əvvəlki isə SHIFT+TAB ya YUXARI OX basın. Seçimi arımaq SPACE ya ENTER düymələri istifadə edin. Siyahı qutusu ESC ilə bağlıyın.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Redaktor elementin cığır paneli',\r
+                       legend: 'Elementin cığır paneli seçmək üçün ${elementsPathFocus} basın. Növbəti element seçmək üçün TAB ya SAĞA OX, əvvəlki isə SHIFT+TAB ya SOLA OX istifadə edin. Elementi arımaq SPACE ya ENTER düymələri mövcuddur.'\r
+               }\r
+               ]\r
+       },\r
+               {\r
+               name: 'Əmrlər',\r
+               items: [\r
+                       {\r
+                       name: 'Əmri geri qaytar',\r
+                       legend: '${undo} basın'\r
+               },\r
+                       {\r
+                       name: 'Geri əmri',\r
+                       legend: '${redo} basın'\r
+               },\r
+                       {\r
+                       name: 'Qalın əmri',\r
+                       legend: '${bold}  basın'\r
+               },\r
+                       {\r
+                       name: 'Kursiv əmri',\r
+                       legend: '${italic} basın'\r
+               },\r
+                       {\r
+                       name: 'Altdan xətt əmri',\r
+                       legend: '${underline} basın'\r
+               },\r
+                       {\r
+                       name: 'Link əmri',\r
+                       legend: '${link} basın'\r
+               },\r
+                       {\r
+                       name: 'Paneli gizlət əmri',\r
+                       legend: '${toolbarCollapse} basın'\r
+               },\r
+                       {\r
+                       name: 'Əvvəlki fokus sahəsi seç əmrı',\r
+                       legend: 'Kursordan əvvəl ən yaxın əlçatmaz yerə dəymək üçün ${accessPreviousSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.'\r
+               },\r
+                       {\r
+                       name: 'Növbəti fokus sahəsi seç əmrı',\r
+                       legend: 'Kursordan sonra ən yaxın əlçatmaz yerə dəymək üçün ${accessNextSpace} basın, misal üçün: iki dal-badal HR teg. Uzaq yerlərə dəymək üçün bir neçə dəfə basın.'\r
+               },\r
+                       {\r
+                       name: 'Hərtərəfli Kömək',\r
+                       legend: '${a11yHelp} basın'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+               }\r
+               ]\r
+       }\r
+       ],\r
+       tab: 'Tab',\r
+       pause: 'Pause',\r
+       capslock: 'Caps Lock',\r
+       escape: 'Escape',\r
+       pageUp: 'Page Up',\r
+       pageDown: 'Page Down',\r
+       leftArrow: 'Sola ox işarəsi',\r
+       upArrow: 'Yuxarı ox işarəsi',\r
+       rightArrow: 'Sağa ox işarəsi',\r
+       downArrow: 'Aşağı ox işarəsi',\r
+       insert: 'Insert',\r
+       leftWindowKey: 'Soldaki Windows düyməsi',\r
+       rightWindowKey: 'Sağdaki Windows düyməsi',\r
+       selectKey: 'Düyməni seçin',\r
+       numpad0: 'Numpad 0',\r
+       numpad1: 'Numpad 1',\r
+       numpad2: 'Numpad 2',\r
+       numpad3: 'Numpad 3',\r
+       numpad4: 'Numpad 4',\r
+       numpad5: 'Numpad 5',\r
+       numpad6: 'Numpad 6',\r
+       numpad7: 'Numpad 7',\r
+       numpad8: 'Numpad 8',\r
+       numpad9: 'Numpad 9',\r
+       multiply: 'Vurma',\r
+       add: 'Əlavə et',\r
+       subtract: 'Çıxma',\r
+       decimalPoint: 'Onluq kəsri tam ədəddən ayıran nöqtə',\r
+       divide: 'Bölüşdürmə',\r
+       f1: 'F1',\r
+       f2: 'F2',\r
+       f3: 'F3',\r
+       f4: 'F4',\r
+       f5: 'F5',\r
+       f6: 'F6',\r
+       f7: 'F7',\r
+       f8: 'F8',\r
+       f9: 'F9',\r
+       f10: 'F10',\r
+       f11: 'F11',\r
+       f12: 'F12',\r
+       numLock: 'Num Lock',\r
+       scrollLock: 'Scroll Lock',\r
+       semiColon: 'Nöqtəli verqül',\r
+       equalSign: 'Barəbərlik işarəsi',\r
+       comma: 'Vergül',\r
+       dash: 'Defis',\r
+       period: 'Nöqtə',\r
+       forwardSlash: 'Çəp xətt',\r
+       graveAccent: 'Vurğu işarəsi',\r
+       openBracket: 'Açılan mötərizə',\r
+       backSlash: 'Tərs çəpəki xətt',\r
+       closeBracket: 'Bağlanan mötərizə',\r
+       singleQuote: 'Tək dırnaq'\r
+} );\r
index 4ebdaadc12b8fcfc82d66d767dbfa80bab58a748..9a809ff54b02c15455bdb58c18762e2429ad2b28 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'bg', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index b739c4e0941d119a1e864b5fcf0f8d940a1b3a5f..5bbacedc5f956a23572af42e0c85555a9d3fdd9c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ca', {
                        {\r
                        name: 'Editor de quadre de diàleg',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Dins d\'un quadre de diàleg, premi la tecla TAB per desplaçar-se fins al següent element del quadre de diàleg, premi la tecla Shift + TAB per desplaçar-se a l\'anterior element del quadre de diàleg, premi la tecla ENTER per confirmar el quadre de diàleg, premi la tecla ESC per cancel·lar el quadre de diàleg. Quan un quadre de diàleg té diverses pestanyes, la llista de pestanyes pot ser assolit ja sigui amb ALT + F10 o TAB, com a part de l\'ordre de tabulació del quadre de diàleg. Amb la llista de pestanyes seleccionada, pot anar a la fitxa següent i anterior amb la tecla FLETXA DRETA i ESQUERRA, respectivament.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ca', {
                        {\r
                        name: 'Ajuda d\'accessibilitat',\r
                        legend: 'Premi ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Retrocés',\r
        tab: 'Tabulació',\r
-       enter: 'Intro',\r
-       shift: 'Majúscules',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pausa',\r
        capslock: 'Bloqueig de majúscules',\r
        escape: 'Escape',\r
        pageUp: 'Pàgina Amunt',\r
        pageDown: 'Pàgina Avall',\r
-       end: 'Fi',\r
-       home: 'Inici',\r
        leftArrow: 'Fletxa Esquerra',\r
        upArrow: 'Fletxa Amunt',\r
        rightArrow: 'Fletxa Dreta',\r
        downArrow: 'Fletxa Avall',\r
        insert: 'Inserir',\r
-       'delete': 'Eliminar',\r
        leftWindowKey: 'Tecla Windows Esquerra',\r
        rightWindowKey: 'Tecla Windows Dreta',\r
        selectKey: 'Tecla Seleccionar',\r
index 6386a35340a1a20d37db878c88e648738684de92..f792c46665aba326255b10c2cb3e3cde2b0df481 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'cs', {
                        {\r
                        name: ' Nápověda přístupnosti',\r
                        legend: 'Stiskněte ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tabulátor',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pauza',\r
        capslock: 'Caps lock',\r
        escape: 'Escape',\r
        pageUp: 'Stránka nahoru',\r
        pageDown: 'Stránka dolů',\r
-       end: 'Konec',\r
-       home: 'Domů',\r
        leftArrow: 'Šipka vlevo',\r
        upArrow: 'Šipka nahoru',\r
        rightArrow: 'Šipka vpravo',\r
        downArrow: 'Šipka dolů',\r
        insert: 'Vložit',\r
-       'delete': 'Smazat',\r
        leftWindowKey: 'Levá klávesa Windows',\r
        rightWindowKey: 'Pravá klávesa Windows',\r
        selectKey: 'Vyberte klávesu',\r
index f47ff93256ac57355d0835d32395b2ed562535ee..e0cc0bad15546120296b661bc0d3947abc41c6bf 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'cy', {
                        {\r
                        name: 'Cymorth Hygyrchedd',\r
                        legend: 'Pwyswch ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape',\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 8ec3f61cda74ee1be001309d88de496d482ef058..ae2130091e12d78d33e8fe5882570a37dcda0721 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -22,18 +22,18 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', {
                },\r
 \r
                        {\r
-                       name: 'Editor Context Menu', // MISSING\r
-                       legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING\r
+                       name: 'Redaktør kontekstmenu',\r
+                       legend: 'Tryk ${contextMenu} eller APPLICATION KEY for at åbne kontekstmenuen. Flyt derefter til næste menuvalg med TAB eller PIL NED. Flyt til forrige valg med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge menu-muligheder. Åben under-menu af aktuelle valg med MELLEMRUM eller RETUR eller HØJRE PIL. Gå tilbage til overliggende menu-emne med ESC eller VENSTRE PIL. Luk kontekstmenu med ESC.'\r
                },\r
 \r
                        {\r
-                       name: 'Editor List Box', // MISSING\r
-                       legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING\r
+                       name: 'Redaktør listeboks',\r
+                       legend: 'Flyt til næste emne med TAB eller PIL NED inde i en listeboks. Flyt til forrige listeemne med SHIFT+TAB eller PIL OP. Tryk MELLEMRUM eller RETUR for at vælge liste-muligheder. Tryk ESC for at lukke liste-boksen.'\r
                },\r
 \r
                        {\r
-                       name: 'Editor Element Path Bar', // MISSING\r
-                       legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING\r
+                       name: 'Redaktør elementsti-bar',\r
+                       legend: 'Tryk ${elementsPathFocus} for at navigere til elementernes sti-bar. Flyt til næste element-knap med TAB eller HØJRE PIL. Flyt til forrige knap med SHIFT+TAB eller VENSTRE PIL. Klik MELLEMRUM eller RETUR for at vælge element i editoren.'\r
                }\r
                ]\r
        },\r
@@ -65,11 +65,11 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', {
                        legend: 'Klik ${link}'\r
                },\r
                        {\r
-                       name: ' Toolbar Collapse command', // MISSING\r
+                       name: 'Klap værktøjslinje sammen kommando ',\r
                        legend: 'Klik ${toolbarCollapse}'\r
                },\r
                        {\r
-                       name: ' Access previous focus space command', // MISSING\r
+                       name: 'Adgang til forrige fokusområde kommando',\r
                        legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
                },\r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'da', {
                        {\r
                        name: 'Tilgængelighedshjælp',\r
                        legend: 'Kilk ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Venstre pil',\r
        upArrow: 'Pil op',\r
        rightArrow: 'Højre pil',\r
        downArrow: 'Pil ned',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Venstre Windows tast',\r
        rightWindowKey: 'Højre Windows tast',\r
        selectKey: 'Select-knap',\r
index afa4021ad5a715c50258707aa9a46e4a7e93f396..206bbf68137d28c4bff0d73ff3b979b1c81dc9bc 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de-ch', {
                        {\r
                        name: 'Eingabehilfen',\r
                        legend: 'Drücken Sie ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Rücktaste',\r
        tab: 'Tab',\r
-       enter: 'Eingabe',\r
-       shift: 'Umschalt',\r
-       ctrl: 'Strg',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Feststell',\r
        escape: 'Escape',\r
        pageUp: 'Bild auf',\r
        pageDown: 'Bild ab',\r
-       end: 'Ende',\r
-       home: 'Pos1',\r
        leftArrow: 'Linke Pfeiltaste',\r
        upArrow: 'Obere Pfeiltaste',\r
        rightArrow: 'Rechte Pfeiltaste',\r
        downArrow: 'Untere Pfeiltaste',\r
        insert: 'Einfügen',\r
-       'delete': 'Entfernen',\r
        leftWindowKey: 'Linke Windowstaste',\r
        rightWindowKey: 'Rechte Windowstaste',\r
        selectKey: 'Taste auswählen',\r
index 5d3fd04a3b6c66a418d2a2ac4e9dc8708536b3a6..5e798cbb13066275309fe3dc158f51f328657b40 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de', {
                        {\r
                        name: 'Editordialog',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Drücke innerhalb eines Dialogs TAB, um zum nächsten Element zu springen. Drücke SHIFT+TAB, um zum vorigen Element zu springen, drücke ENTER um das Formular im Dialog abzusenden, drücke ESC, um den Dialog zu schließen. Hat der Dialog mehrere Tabs, dann kannst du durch ALT+F10 die Tab-Liste aufrufen or mittels TAB als Teil der Dialog-Tab-Reihenfolge. Ist die Tab-Liste fokussiert, dann mithilfe der Pfeiltasten (LINKS und RECHTS) zwischen den Tabs gewechselt werden.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'de', {
                        {\r
                        name: 'Eingabehilfen',\r
                        legend: 'Drücken Sie ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Einfügen als unformatierter Text. ',\r
+                       legend: 'Drücke ${pastetext}',\r
+                       legendEdge: 'Drücke ${pastetext} und anschließend ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Rücktaste',\r
        tab: 'Tab',\r
-       enter: 'Eingabe',\r
-       shift: 'Umschalt',\r
-       ctrl: 'Strg',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Feststell',\r
        escape: 'Escape',\r
        pageUp: 'Bild auf',\r
        pageDown: 'Bild ab',\r
-       end: 'Ende',\r
-       home: 'Pos1',\r
        leftArrow: 'Linke Pfeiltaste',\r
        upArrow: 'Obere Pfeiltaste',\r
        rightArrow: 'Rechte Pfeiltaste',\r
        downArrow: 'Untere Pfeiltaste',\r
        insert: 'Einfügen',\r
-       'delete': 'Entfernen',\r
        leftWindowKey: 'Linke Windowstaste',\r
        rightWindowKey: 'Rechte Windowstaste',\r
        selectKey: 'Taste auswählen',\r
index ec61ce5c4931a25636aaf068858e1f8a707fd5c0..f3e598fafc500f139e2d93fe5b2f5df2a7982aa1 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'el', {
                        {\r
                        name: 'Βοήθεια Προσβασιμότητας',\r
                        legend: 'Πατήστε ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Αριστερό Βέλος',\r
        upArrow: 'Πάνω Βέλος',\r
        rightArrow: 'Δεξί Βέλος',\r
        downArrow: 'Κάτω Βέλος',\r
        insert: 'Insert ',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Αριστερό Πλήκτρο Windows',\r
        rightWindowKey: 'Δεξί Πλήκτρο Windows',\r
        selectKey: 'Πλήκτρο Select',\r
index 27dbff86186321854899756d5ad46268d1910eee..6fa41b3067c4cadd9b26293214638b5d7cc27cda 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'en-gb', {
                        {\r
                        name: ' Accessibility Help',\r
                        legend: 'Press ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Left Arrow',\r
        upArrow: 'Up Arrow',\r
        rightArrow: 'Right Arrow',\r
        downArrow: 'Down Arrow',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Left Windows key',\r
        rightWindowKey: 'Right Windows key',\r
        selectKey: 'Select key',\r
index 47823d75cfd0db6bbe27c35525c53321005fe41b..a9ea5bd7149b679e5048221da0ae8171f3f2b571 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -98,29 +98,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'en', {
                        {\r
                        name: ' Accessibility Help',\r
                        legend: 'Press ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text',\r
+                       legend: 'Press ${pastetext}',\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Left Arrow',\r
        upArrow: 'Up Arrow',\r
        rightArrow: 'Right Arrow',\r
        downArrow: 'Down Arrow',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Left Windows key',\r
        rightWindowKey: 'Right Windows key',\r
        selectKey: 'Select key',\r
index 104cdc4023163e558c4472a4398fe7f5665a95d3..061e7b520c9c258e902e434e1e16582feba5394a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'eo', {
                        {\r
                        name: 'Helpilo pri atingeblo',\r
                        legend: 'Premu ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Retropaŝo',\r
        tab: 'Tabo',\r
-       enter: 'Enigi',\r
-       shift: 'Registrumo',\r
-       ctrl: 'Stirklavo',\r
-       alt: 'Alt-klavo',\r
        pause: 'Paŭzo',\r
        capslock: 'Majuskla baskulo',\r
        escape: 'Eskapa klavo',\r
        pageUp: 'Antaŭa Paĝo',\r
        pageDown: 'Sekva Paĝo',\r
-       end: 'Fino',\r
-       home: 'Hejmo',\r
        leftArrow: 'Sago Maldekstren',\r
        upArrow: 'Sago Supren',\r
        rightArrow: 'Sago Dekstren',\r
        downArrow: 'Sago Suben',\r
        insert: 'Enmeti',\r
-       'delete': 'Forigi',\r
        leftWindowKey: 'Maldekstra Windows-klavo',\r
        rightWindowKey: 'Dekstra Windows-klavo',\r
        selectKey: 'Selektklavo',\r
diff --git a/sources/plugins/a11yhelp/dialogs/lang/es-mx.js b/sources/plugins/a11yhelp/dialogs/lang/es-mx.js
new file mode 100644 (file)
index 0000000..7ef6a4c
--- /dev/null
@@ -0,0 +1,145 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'es-mx', {\r
+       title: 'Instrucciones de accesibilidad',\r
+       contents: 'Contenidos de ayuda. Para cerrar este cuadro de diálogo presione ESC.',\r
+       legend: [\r
+               {\r
+               name: 'General',\r
+               items: [\r
+                       {\r
+                       name: 'Barra de herramientas del editor',\r
+                       legend: 'Presione ${toolbarFocus} para navegar a la barra de herramientas. Desplácese al grupo de barras de herramientas siguiente y anterior con  SHIFT + TAB. Desplácese al botón siguiente y anterior de la barra de herramientas con FLECHA DERECHA o FLECHA IZQUIERDA. Presione SPACE o ENTER para activar el botón de la barra de herramientas.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Editor de diálogo',\r
+                       legend:\r
+                               'Dentro de un cuadro de diálogo, pulse TAB para desplazarse hasta el siguiente elemento de diálogo, pulse MAYÚS + TAB para desplazarse al elemento de diálogo anterior, pulse ENTER para enviar el diálogo, pulse ESC para cancelar el diálogo. Cuando un cuadro de diálogo tiene varias pestañas, se puede acceder a la lista de pestañas con ALT + F10 o con TAB como parte del orden de tabulación del diálogo. Con la lista de tabuladores enfocada, mueva a la pestaña siguiente y anterior con las flechas DERECHA y IZQUIERDA, respectivamente.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Menú contextual del editor',\r
+                       legend: 'Presione ${contextMenu} o CLAVE DE APLICACIÓN para abrir el menú contextual. A continuación, vaya a la siguiente opción del menú con TAB o DOWN ARROW. Desplácese a la opción anterior con SHIFT + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción del menú. Abra el submenú de la opción actual con ESPACIO o ENTER o FLECHA DERECHA. Vuelva al elemento de menú principal con ESC o FLECHA IZQUIERDA. Cerrar el menú contextual con ESC.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Editor de cuadro de lista',\r
+                       legend: 'Dentro de un cuadro de lista, mueva al siguiente elemento de lista con TAB O FLECHA ABAJO. Mueva al elemento anterior de la lista con MAYÚS + TAB o FLECHA ARRIBA. Presione SPACE o ENTER para seleccionar la opción de lista. Presione ESC para cerrar el cuadro de lista.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Barra de ruta del elemento del editor',\r
+                       legend: 'Presione ${elementsPathFocus} para navegar a la barra de ruta de elementos. Desplácese al siguiente botón de elemento con TAB o FLECHA DERECHA. Desplácese al botón anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione SPACE o ENTER para seleccionar el elemento en el editor.'\r
+               }\r
+               ]\r
+       },\r
+               {\r
+               name: 'Comandos',\r
+               items: [\r
+                       {\r
+                       name: 'Comando deshacer',\r
+                       legend: 'Presiona ${undo}'\r
+               },\r
+                       {\r
+                       name: 'Comando rehacer',\r
+                       legend: 'Presiona ${redo}'\r
+               },\r
+                       {\r
+                       name: 'Comando negrita',\r
+                       legend: 'Presiona ${bold}'\r
+               },\r
+                       {\r
+                       name: 'Comando cursiva',\r
+                       legend: 'Presiona {italic}'\r
+               },\r
+                       {\r
+                       name: 'Comando subrayado',\r
+                       legend: 'Presiona ${underline}'\r
+               },\r
+                       {\r
+                       name: 'Comando enlace',\r
+                       legend: 'Presiona ${link}'\r
+               },\r
+                       {\r
+                       name: 'Comando colapsar barra de herramientas',\r
+                       legend: 'Presiona ${toolbarCollapse}'\r
+               },\r
+                       {\r
+                       name: 'Acceda al comando de espacio de enfoque anterior',\r
+                       legend: 'Presione ${accessPreviousSpace} para acceder al espacio de enfoque inaccesible más cercano antes del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.'\r
+               },\r
+                       {\r
+                       name: 'Acceder al siguiente comando de espacio de enfoque',\r
+                       legend: 'Pulse ${accessNextSpace} para acceder al espacio de enfoque más cercano inaccesible después del cursor, por ejemplo: dos elementos HR adyacentes. Repita la combinación de teclas para alcanzar los espacios de enfoque distantes.'\r
+               },\r
+                       {\r
+                       name: 'Ayuda de accesibilidad',\r
+                       legend: 'Presiona ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+               }\r
+               ]\r
+       }\r
+       ],\r
+       tab: 'Tabulador',\r
+       pause: 'Pausa',\r
+       capslock: 'Mayúsculas',\r
+       escape: 'Escape',\r
+       pageUp: 'Página arriba',\r
+       pageDown: 'Página abajo',\r
+       leftArrow: 'Flecha izquierda',\r
+       upArrow: 'Flecha arriba',\r
+       rightArrow: 'Flecha derecha',\r
+       downArrow: 'Flecha abajo',\r
+       insert: 'Insertar',\r
+       leftWindowKey: 'Tecla izquierda de Windows',\r
+       rightWindowKey: 'Tecla derecha de Windows',\r
+       selectKey: 'Tecla de selección',\r
+       numpad0: 'Teclado numérico 0',\r
+       numpad1: 'Teclado numérico 1',\r
+       numpad2: 'Teclado numérico 2',\r
+       numpad3: 'Teclado numérico 3',\r
+       numpad4: 'Teclado numérico 4',\r
+       numpad5: 'Teclado numérico 5',\r
+       numpad6: 'Teclado numérico 6',\r
+       numpad7: 'Teclado numérico 7',\r
+       numpad8: 'Teclado numérico 8',\r
+       numpad9: 'Teclado numérico 9',\r
+       multiply: 'Multiplicar',\r
+       add: 'Sumar',\r
+       subtract: 'Restar',\r
+       decimalPoint: 'Punto decimal',\r
+       divide: 'Dividir',\r
+       f1: 'F1',\r
+       f2: 'F2',\r
+       f3: 'F3',\r
+       f4: 'F4',\r
+       f5: 'F5',\r
+       f6: 'F6',\r
+       f7: 'F7',\r
+       f8: 'F8',\r
+       f9: 'F9',\r
+       f10: 'F10',\r
+       f11: 'F11',\r
+       f12: 'F12',\r
+       numLock: 'Números',\r
+       scrollLock: 'Bloqueo de desplazamiento',\r
+       semiColon: 'punto y coma',\r
+       equalSign: 'Signo igual',\r
+       comma: 'Coma',\r
+       dash: 'Guión',\r
+       period: 'Espacio',\r
+       forwardSlash: 'Diagonal',\r
+       graveAccent: 'Acento grave',\r
+       openBracket: 'Abrir paréntesis',\r
+       backSlash: 'Diagonal invertida',\r
+       closeBracket: 'Cerrar paréntesis',\r
+       singleQuote: 'Comillas simple'\r
+} );\r
index 8a1e130117ada291bf15859855eca7ed94363769..d3b29a2e27be7ceb3919e3c72a76cf1f6e2a3fb0 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'es', {
                        {\r
                        name: 'Editor de diálogo',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'es', {
                        {\r
                        name: 'Ayuda de Accesibilidad',\r
                        legend: 'Presiona ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Retroceso',\r
        tab: 'Tabulador',\r
-       enter: 'Ingresar',\r
-       shift: 'Mayús.',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pausa',\r
        capslock: 'Bloq. Mayús.',\r
        escape: 'Escape',\r
        pageUp: 'Regresar Página',\r
        pageDown: 'Avanzar Página',\r
-       end: 'Fin',\r
-       home: 'Inicio',\r
        leftArrow: 'Flecha Izquierda',\r
        upArrow: 'Flecha Arriba',\r
        rightArrow: 'Flecha Derecha',\r
        downArrow: 'Flecha Abajo',\r
        insert: 'Insertar',\r
-       'delete': 'Suprimir',\r
        leftWindowKey: 'Tecla Windows Izquierda',\r
        rightWindowKey: 'Tecla Windows Derecha',\r
        selectKey: 'Tecla de Selección',\r
index 394f0c6484cd1e3f03708be59fcb59b19fd7bfa0..3f6524bfca4451f1f265942dd4b411697786aec8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'et', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 097ad1495ddbd5a9d2326883337f230047357957..80c60dbdb384f7c88882b4a2792882e89b1f32da 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'eu', {
                        {\r
                        name: 'Erabilerraztasunaren laguntza',\r
                        legend: 'Sakatu ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Atzera tekla',\r
        tab: 'Tabuladorea',\r
-       enter: 'Sartu',\r
-       shift: 'Maius',\r
-       ctrl: 'Ktrl',\r
-       alt: 'Alt',\r
        pause: 'Pausatu',\r
        capslock: 'Blok Maius',\r
        escape: 'Ihes',\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'Buka',\r
-       home: 'Etxea',\r
        leftArrow: 'Ezker-gezia',\r
        upArrow: 'Gora gezia',\r
        rightArrow: 'Eskuin-gezia',\r
        downArrow: 'Behera gezia',\r
        insert: 'Txertatu',\r
-       'delete': 'Ezabatu',\r
        leftWindowKey: 'Ezkerreko Windows tekla',\r
        rightWindowKey: 'Eskuineko Windows tekla',\r
        selectKey: 'Hautatu tekla',\r
index 73914907c30faf267dfac72b2f9de8d0e9ad1227..dbe99dca5c1112a24b8f78f838f70aac154eb425 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fa', {
                        {\r
                        name: 'راهنمای دسترسی',\r
                        legend: 'فشردن ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'عقبگرد',\r
        tab: 'برگه',\r
-       enter: 'ورود',\r
-       shift: 'تعویض',\r
-       ctrl: 'کنترل',\r
-       alt: 'دگرساز',\r
        pause: 'توقف',\r
        capslock: 'Caps Lock',\r
        escape: 'گریز',\r
        pageUp: 'صفحه به بالا',\r
        pageDown: 'صفحه به پایین',\r
-       end: 'پایان',\r
-       home: 'خانه',\r
        leftArrow: 'پیکان چپ',\r
        upArrow: 'پیکان بالا',\r
        rightArrow: 'پیکان راست',\r
        downArrow: 'پیکان پایین',\r
        insert: 'ورود',\r
-       'delete': 'حذف',\r
        leftWindowKey: 'کلید چپ ویندوز',\r
        rightWindowKey: 'کلید راست ویندوز',\r
        selectKey: 'انتخاب کلید',\r
index 4f4775b235e30dc4dd6e28b8861e9e3b4213fa2c..028020c6aecc94ccc673f0b988810eb967914d7a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fi', {
                        {\r
                        name: 'Saavutettavuus ohjeet',\r
                        legend: 'Paina ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 21bc26160c2ef5eea1b86582472e302a1d557d9d..358ca6e7385b3938ca42f89896d80ff6de3d6215 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fo', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index b43eeabff60f3d169334fe726eaa9ff0cd7ca5f3..88c4a1fab025d83a3b9a44ec09722bd76141c682 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr-ca', {
                        {\r
                        name: 'Aide d\'accessibilité',\r
                        legend: 'Appuyer sur ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index ee4156669cdad18edcbdd5a2ccab5bf39f1e029e..a2f464993ae99ef682fcc38276a0e38902492bdf 100644 (file)
@@ -1,39 +1,39 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {\r
        title: 'Instructions d\'accessibilité',\r
-       contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).',\r
+       contents: 'Contenu de l\'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.',\r
        legend: [\r
                {\r
                name: 'Général',\r
                items: [\r
                        {\r
                        name: 'Barre d\'outils de l\'éditeur',\r
-                       legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRÉE pour activer le bouton de barre d\'outils.'\r
+                       legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers le groupe suivant ou précédent de la barre d\'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d\'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d\'espace ou la touche Entrée pour activer le bouton de barre d\'outils.'\r
                },\r
 \r
                        {\r
-                       name: 'Dialogue de l\'éditeur',\r
+                       name: 'Fenêtre de l\'éditeur',\r
                        legend:\r
-                               'Dans un dialogue, appuyer sur TAB pour aller à l\'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l\'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement.'\r
+                               'Dans une boîte de dialogue, appuyer sur Tab pour passer à l\'élément suivant, appuyer sur Maj+Tab pour passer à l\'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement.'\r
                },\r
 \r
                        {\r
                        name: 'Menu contextuel de l\'éditeur',\r
-                       legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'option précédente avec les touches  MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTRÉE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l\'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP.'\r
+                       legend: 'Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l\'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l\'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou la touche Entrée pour sélectionner l\'option du menu. Appuyer sur la barre d\'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l\'option sélectionnée. Revenir à l\'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap.'\r
                },\r
 \r
                        {\r
                        name: 'Zone de liste de l\'éditeur',\r
-                       legend: 'Dans la liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant.'\r
+                       legend: 'Dans une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l\'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant.'\r
                },\r
 \r
                        {\r
-                       name: 'Barre d\'emplacement des éléments de l\'éditeur',\r
-                       legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de l\'éditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'élément dans l\'éditeur.'\r
+                       name: 'Barre du chemin d\'éléments de l\'éditeur',\r
+                       legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d\'Ariane des éléments. Se déplacer vers le bouton de l\'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'élément dans l\'éditeur.'\r
                }\r
                ]\r
        },\r
@@ -45,7 +45,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
                        legend: 'Appuyer sur ${undo}'\r
                },\r
                        {\r
-                       name: 'Refaire la commande',\r
+                       name: 'Commande restaurer',\r
                        legend: 'Appuyer sur ${redo}'\r
                },\r
                        {\r
@@ -69,55 +69,52 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
                        legend: 'Appuyer sur ${toolbarCollapse}'\r
                },\r
                        {\r
-                       name: 'Accéder à la précédente commande d\'espace de mise au point',\r
-                       legend: 'Appuyez sur ${accessPreviousSpace} pour accéder à l\'espace hors d\'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants.'\r
+                       name: 'Commande d\'accès à l\'élément sélectionnable précédent',\r
+                       legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents.'\r
                },\r
                        {\r
-                       name: 'Accès à la prochaine commande de l\'espace de mise au point',\r
-                       legend: 'Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d\'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants.'\r
+                       name: 'Commande d\'accès à l\'élément sélectionnable suivant',\r
+                       legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants.'\r
                },\r
                        {\r
-                       name: ' Aide Accessibilité',\r
+                       name: ' Aide sur l\'accessibilité',\r
                        legend: 'Appuyer sur ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Coller comme texte sans mise en forme',\r
+                       legend: 'Appuyer sur ${pastetext}',\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Retour arrière',\r
        tab: 'Tabulation',\r
-       enter: 'Entrée',\r
-       shift: 'Majuscule',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Verr. Maj.',\r
        escape: 'Échap',\r
        pageUp: 'Page supérieure',\r
-       pageDown: 'Page inférieure',\r
-       end: 'Fin',\r
-       home: 'Retour',\r
+       pageDown: 'Page suivante',\r
        leftArrow: 'Flèche gauche',\r
-       upArrow: 'Flèche haute',\r
+       upArrow: 'Flèche haut',\r
        rightArrow: 'Flèche droite',\r
        downArrow: 'Flèche basse',\r
-       insert: 'Insertion',\r
-       'delete': 'Supprimer',\r
+       insert: 'Inser',\r
        leftWindowKey: 'Touche Windows gauche',\r
        rightWindowKey: 'Touche Windows droite',\r
-       selectKey: 'Touche menu',\r
-       numpad0: 'Pavé numérique 0',\r
-       numpad1: 'Pavé numérique 1',\r
-       numpad2: 'Pavé numérique 2',\r
-       numpad3: 'Pavé numérique 3',\r
-       numpad4: 'Pavé numérique 4',\r
-       numpad5: 'Pavé numérique 5',\r
-       numpad6: 'Pavé numérique 6',\r
-       numpad7: 'Pavé numérique 7',\r
+       selectKey: 'Touche Sélectionner',\r
+       numpad0: '0 du pavé numérique',\r
+       numpad1: '1 du pavé numérique',\r
+       numpad2: '2 du pavé numérique',\r
+       numpad3: '3 du pavé numérique',\r
+       numpad4: '4 du pavé numérique',\r
+       numpad5: '5 du pavé numérique',\r
+       numpad6: '6 du pavé numérique',\r
+       numpad7: '7 du pavé numérique',\r
        numpad8: 'Pavé numérique 8',\r
-       numpad9: 'Pavé numérique 9',\r
+       numpad9: '9 du pavé numérique',\r
        multiply: 'Multiplier',\r
-       add: 'Addition',\r
-       subtract: 'Soustraire',\r
+       add: 'Plus',\r
+       subtract: 'Moins',\r
        decimalPoint: 'Point décimal',\r
        divide: 'Diviser',\r
        f1: 'F1',\r
@@ -132,9 +129,9 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
        f10: 'F10',\r
        f11: 'F11',\r
        f12: 'F12',\r
-       numLock: 'Verrouillage numérique',\r
-       scrollLock: 'Arrêt défilement',\r
-       semiColon: 'Point virgule',\r
+       numLock: 'Verr. Num.',\r
+       scrollLock: 'Arrêt défil.',\r
+       semiColon: 'Point-virgule',\r
        equalSign: 'Signe égal',\r
        comma: 'Virgule',\r
        dash: 'Tiret',\r
index f6e6b1c0b08840657baec346371ed44540b823bb..1bb95953c494d0b22c3fb7c6a747e10b5ece9ab2 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gl', {
                        {\r
                        name: 'Editor de diálogo',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Dentro do diálogo, prema TAB para navegar cara os seguintes elementos de diálogo, prema MAIÚS+TAB para moverse cara os anteriores elementos de diálogo, prema INTRO para enviar o diálogo, prema ESC para cancelar o diálogo. Cando o diálogo ten múltiples lapelas, a lista de lapelas pode cinguirse con ALT+F10 ou con TAB como parte da orde de lapelas do diálogo. Coa lapela en foco, pode moverse cara a seguinte ou a anterior lapela coas FRECHAS ESQUERDA e DEREICHA respectivamente.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gl', {
                        {\r
                        name: 'Axuda da accesibilidade',\r
                        legend: 'Prema ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Pegar como texto simple',\r
+                       legend: 'Prema ${pastetext}',\r
+                       legendEdge: 'Prema ${pastetext}, seguido de ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Ir atrás',\r
        tab: 'Tabulador',\r
-       enter: 'Intro',\r
-       shift: 'Maiús',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pausa',\r
        capslock: 'Bloq. Maiús',\r
        escape: 'Escape',\r
        pageUp: 'Páxina arriba',\r
        pageDown: 'Páxina abaixo',\r
-       end: 'Fin',\r
-       home: 'Inicio',\r
        leftArrow: 'Frecha esquerda',\r
        upArrow: 'Frecha arriba',\r
        rightArrow: 'Frecha dereita',\r
        downArrow: 'Frecha abaixo',\r
        insert: 'Inserir',\r
-       'delete': 'Supr',\r
        leftWindowKey: 'Tecla Windows esquerda',\r
        rightWindowKey: 'Tecla Windows dereita',\r
        selectKey: 'Escolla a tecla',\r
index d8d4957e6d140777679167a9cca26e5269e8d42a..6fa2b3d688838b0500f7d92dc963222e8b39823d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'gu', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 025cf8856186b58e3caa1ce9f5669c0fce3734d5..ed668c4102684c05ae1686064e0236fce9f8eb50 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'he', {
                        {\r
                        name: ' הוראות נגישות',\r
                        legend: 'לחץ ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'חץ שמאלה',\r
        upArrow: 'חץ למעלה',\r
        rightArrow: 'חץ ימינה',\r
        downArrow: 'חץ למטה',\r
        insert: 'הכנס',\r
-       'delete': 'מחק',\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'בחר מקש',\r
index 19fda78722a1d678981f65f1a39e9b4efeec5b62..de1e54ba7ed640fc4a3b6cbd33047d80a6cd7e0c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hi', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index f4568a2f7ce2523f101147b78f03670f45b91156..ae280629b5b9b7b2bdfffa1fd012bc1dc8ac68cf 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hr', {
                        {\r
                        name: 'Dijalog',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Unutar dijaloga, pritisnite TAB kako bi navigirali do sljedećeg elementa dijaloga, pritisnite SHIFT+TAB kako bi se pomaknuli do prethodnog elementa, pritisnite ENTER kako bi poslali dijalog, pritisnite ESC za gašenje dijaloga. Kada dijalog ima više kartica, listi kartica se može pristupiti pomoću ALT+F10 ili sa TAB. Kada je fokusirana lista kartica, pomaknite se naprijed ili nazad pomoću strelica LIJEVO ili DESNO.'\r
                },\r
 \r
                        {\r
@@ -69,80 +69,77 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hr', {
                        legend: 'Pritisni ${toolbarCollapse}'\r
                },\r
                        {\r
-                       name: 'Access previous focus space naredba',\r
+                       name: 'Naredba za pristupi prethodnom prostoru fokusa',\r
                        legend: 'Pritisni ${accessPreviousSpace} za pristup najbližem nedostupnom razmaku prije kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.'\r
                },\r
                        {\r
-                       name: 'Access next focus space naredba',\r
+                       name: 'Naredba za pristup sljedećem prostoru fokusa',\r
                        legend: 'Pritisni ${accessNextSpace} za pristup najbližem nedostupnom razmaku nakon kursora, npr.: dva spojena HR elementa. Ponovnim pritiskom dohvatiti će se sljedeći nedostupni razmak.'\r
                },\r
                        {\r
                        name: 'Pomoć za dostupnost',\r
                        legend: 'Pritisni ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
-       tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
-       pause: 'Pause', // MISSING\r
-       capslock: 'Caps Lock', // MISSING\r
-       escape: 'Escape', // MISSING\r
-       pageUp: 'Page Up', // MISSING\r
-       pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
-       leftArrow: 'Left Arrow', // MISSING\r
-       upArrow: 'Up Arrow', // MISSING\r
-       rightArrow: 'Right Arrow', // MISSING\r
-       downArrow: 'Down Arrow', // MISSING\r
-       insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
-       leftWindowKey: 'Left Windows key', // MISSING\r
-       rightWindowKey: 'Right Windows key', // MISSING\r
-       selectKey: 'Select key', // MISSING\r
-       numpad0: 'Numpad 0', // MISSING\r
-       numpad1: 'Numpad 1', // MISSING\r
-       numpad2: 'Numpad 2', // MISSING\r
-       numpad3: 'Numpad 3', // MISSING\r
-       numpad4: 'Numpad 4', // MISSING\r
-       numpad5: 'Numpad 5', // MISSING\r
-       numpad6: 'Numpad 6', // MISSING\r
-       numpad7: 'Numpad 7', // MISSING\r
-       numpad8: 'Numpad 8', // MISSING\r
-       numpad9: 'Numpad 9', // MISSING\r
-       multiply: 'Multiply', // MISSING\r
-       add: 'Add', // MISSING\r
-       subtract: 'Subtract', // MISSING\r
-       decimalPoint: 'Decimal Point', // MISSING\r
-       divide: 'Divide', // MISSING\r
-       f1: 'F1', // MISSING\r
-       f2: 'F2', // MISSING\r
-       f3: 'F3', // MISSING\r
-       f4: 'F4', // MISSING\r
-       f5: 'F5', // MISSING\r
-       f6: 'F6', // MISSING\r
-       f7: 'F7', // MISSING\r
-       f8: 'F8', // MISSING\r
-       f9: 'F9', // MISSING\r
-       f10: 'F10', // MISSING\r
-       f11: 'F11', // MISSING\r
-       f12: 'F12', // MISSING\r
-       numLock: 'Num Lock', // MISSING\r
-       scrollLock: 'Scroll Lock', // MISSING\r
-       semiColon: 'Semicolon', // MISSING\r
-       equalSign: 'Equal Sign', // MISSING\r
-       comma: 'Comma', // MISSING\r
-       dash: 'Dash', // MISSING\r
-       period: 'Period', // MISSING\r
-       forwardSlash: 'Forward Slash', // MISSING\r
-       graveAccent: 'Grave Accent', // MISSING\r
-       openBracket: 'Open Bracket', // MISSING\r
-       backSlash: 'Backslash', // MISSING\r
-       closeBracket: 'Close Bracket', // MISSING\r
-       singleQuote: 'Single Quote' // MISSING\r
+       tab: 'Tab',\r
+       pause: 'Pause',\r
+       capslock: 'Caps Lock',\r
+       escape: 'Escape',\r
+       pageUp: 'Page Up',\r
+       pageDown: 'Page Down',\r
+       leftArrow: 'Lijev strelica',\r
+       upArrow: 'Strelica gore',\r
+       rightArrow: 'Desna strelica',\r
+       downArrow: 'Strelica dolje',\r
+       insert: 'Insert',\r
+       leftWindowKey: 'Lijeva Windows tipka',\r
+       rightWindowKey: 'Desna Windows tipka',\r
+       selectKey: 'Tipka Select',\r
+       numpad0: 'Numpad 0',\r
+       numpad1: 'Numpad 1',\r
+       numpad2: 'Numpad 2',\r
+       numpad3: 'Numpad 3',\r
+       numpad4: 'Numpad 4',\r
+       numpad5: 'Numpad 5',\r
+       numpad6: 'Numpad 6',\r
+       numpad7: 'Numpad 7',\r
+       numpad8: 'umpad 8',\r
+       numpad9: 'Numpad 9',\r
+       multiply: 'Množenje',\r
+       add: 'Zbrajanje',\r
+       subtract: 'Oduzimanje',\r
+       decimalPoint: 'Decimalna točka',\r
+       divide: 'Dijeljenje',\r
+       f1: 'F1',\r
+       f2: 'F2',\r
+       f3: 'F3',\r
+       f4: 'F4',\r
+       f5: 'F5',\r
+       f6: 'F6',\r
+       f7: 'F7',\r
+       f8: 'F8',\r
+       f9: 'F9',\r
+       f10: 'F10',\r
+       f11: 'F11',\r
+       f12: 'F12',\r
+       numLock: 'Num Lock',\r
+       scrollLock: 'Scroll Lock',\r
+       semiColon: 'Točka zarez',\r
+       equalSign: 'Jednako',\r
+       comma: 'Zarez',\r
+       dash: 'Crtica',\r
+       period: 'Točka',\r
+       forwardSlash: 'Kosa crta',\r
+       graveAccent: 'Akcent',\r
+       openBracket: 'Otvorena uglata zagrada',\r
+       backSlash: 'Obrnuta kosa crta',\r
+       closeBracket: 'Zatvorena uglata zagrada',\r
+       singleQuote: 'Jednostruki navodnik'\r
 } );\r
index 7342ceebc59a80decbec1cf9de2e8509ab62fffd..1bae59f4a7cf9b88f1e62b7d109cbfae1f48e6b3 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hu', {
                        {\r
                        name: 'Szerkesző párbeszéd ablak',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Párbeszédablakban nyomjon TAB-ot a következő párbeszédmezőhöz ugráshoz, nyomjon SHIFT + TAB-ot az előző mezőhöz ugráshoz, nyomjon ENTER-t a párbeszédablak elfogadásához, nyomjon ESC-et a párbeszédablak elvetéséhez. Azokhoz a párbeszédablakokhoz, amik több fület tartalmaznak, nyomjon ALT + F10-et vagy TAB-ot hogy a fülekre ugorjon. Ezután a TAB-al vagy a JOBB NYÍLLAL a következő fülre ugorhat.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'hu', {
                        {\r
                        name: 'Kisegítő súgó',\r
                        legend: 'Nyomjon ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'balra nyíl',\r
        upArrow: 'felfelé nyíl',\r
        rightArrow: 'jobbra nyíl',\r
        downArrow: 'lefelé nyíl',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'bal Windows-billentyű',\r
        rightWindowKey: 'jobb Windows-billentyű',\r
        selectKey: 'Billentyű választása',\r
index 2b1675f3bb062be385aa205eea868acbb88e5500..89aeee7d01704756e9d4347a70bd1b49fd30fb11 100644 (file)
@@ -1,33 +1,33 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.setLang( 'a11yhelp', 'id', {\r
-       title: 'Accessibility Instructions', // MISSING\r
+       title: 'Instruksi Accessibility',\r
        contents: 'Bantuan. Tekan ESC untuk menutup dialog ini.',\r
        legend: [\r
                {\r
                name: 'Umum',\r
                items: [\r
                        {\r
-                       name: 'Editor Toolbar', // MISSING\r
-                       legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT+TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING\r
+                       name: 'Toolbar Editor',\r
+                       legend: 'Tekan ${toolbarFocus} untuk berpindah ke toolbar. Untuk berpindah ke group toolbar selanjutnya dan sebelumnya gunakan TAB dan SHIFT+TAB. Untuk berpindah ke tombol toolbar selanjutnya dan sebelumnya gunakan RIGHT ARROW atau LEFT ARROW. Tekan SPASI atau ENTER untuk mengaktifkan tombol toolbar.'\r
                },\r
 \r
                        {\r
-                       name: 'Editor Dialog', // MISSING\r
+                       name: 'Dialog Editor',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'Pada jendela dialog, tekan TAB untuk berpindah pada elemen dialog selanjutnya, tekan SHIFT+TAB untuk berpindah pada elemen dialog sebelumnya, tekan ENTER untuk submit dialog, tekan ESC untuk membatalkan dialog. Pada dialog dengan multi tab, daftar tab dapat diakses dengan ALT+F10 ataupun dengan tombol TAB sesuai urutan tab pada dialog. Jika daftar tab aktif terpilih, untuk berpindah tab dapat menggunakan RIGHT dan LEFT ARROW.'\r
                },\r
 \r
                        {\r
-                       name: 'Editor Context Menu', // MISSING\r
+                       name: 'Context Menu Editor',\r
                        legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING\r
                },\r
 \r
                        {\r
-                       name: 'Editor List Box', // MISSING\r
+                       name: 'List Box Editor',\r
                        legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING\r
                },\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'id', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index bc06683401c1035504dab8ffebe0b559888fa47e..224bd49ffd11c9209fa8e6c970ce21de6a294bae 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'it', {
                        {\r
                        name: ' Aiuto Accessibilità',\r
                        legend: 'Premi ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Incolla come testo semplice',\r
+                       legend: 'Premi ${pastetext}',\r
+                       legendEdge: 'Premi ${pastetext}, seguito da ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Invio',\r
-       shift: 'Maiusc',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pausa',\r
        capslock: 'Bloc Maiusc',\r
        escape: 'Esc',\r
        pageUp: 'Pagina sù',\r
        pageDown: 'Pagina giù',\r
-       end: 'Fine',\r
-       home: 'Inizio',\r
        leftArrow: 'Freccia sinistra',\r
        upArrow: 'Freccia su',\r
        rightArrow: 'Freccia destra',\r
        downArrow: 'Freccia giù',\r
        insert: 'Ins',\r
-       'delete': 'Canc',\r
        leftWindowKey: 'Tasto di Windows sinistro',\r
        rightWindowKey: 'Tasto di Windows destro',\r
        selectKey: 'Tasto di selezione',\r
index 95f4e4d99808a70abef42770616be9356e62251f..b21d7405020150ba144d4fbebf09315cce06cd1a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -65,7 +65,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ja', {
                        legend: '${link} をクリック'\r
                },\r
                        {\r
-                       name: 'ツールバーを縮める',\r
+                       name: 'ツールバーをたたむ',\r
                        legend: '${toolbarCollapse} をクリック'\r
                },\r
                        {\r
@@ -73,35 +73,32 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ja', {
                        legend: '${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。'\r
                },\r
                        {\r
-                       name: '次のカーソル移動のできないポイントへ',\r
+                       name: '次のカーソルポイントへ移動する',\r
                        legend: '${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。'\r
                },\r
                        {\r
                        name: 'ユーザー補助ヘルプ',\r
                        legend: '${a11yHelp} をクリック'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: '左矢印',\r
        upArrow: '上矢印',\r
        rightArrow: '右矢印',\r
        downArrow: '下矢印',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: '左Windowキー',\r
        rightWindowKey: '右のWindowキー',\r
        selectKey: 'Select',\r
index 723a3167fd591e327653981be9311f17619c0574..91018f504cf4203e67b4649e8f1a7525cd66c754 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'km', {
                        {\r
                        name: 'ជំនួយ​ពី​ភាព​ងាយស្រួល',\r
                        legend: 'ជួយ ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'លុបថយក្រោយ',\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'ផ្អាក',\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'ចាកចេញ',\r
        pageUp: 'ទំព័រ​លើ',\r
        pageDown: 'ទំព័រ​ក្រោម',\r
-       end: 'ចុង',\r
-       home: 'ផ្ទះ',\r
        leftArrow: 'ព្រួញ​ឆ្វេង',\r
        upArrow: 'ព្រួញ​លើ',\r
        rightArrow: 'ព្រួញ​ស្ដាំ',\r
        downArrow: 'ព្រួញ​ក្រោម',\r
        insert: 'បញ្ចូល',\r
-       'delete': 'លុប',\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'ជ្រើស​គ្រាប់​ចុច',\r
index 9191e1340520d955a09d6452133afe9c07a08b83..78fc71c7262f70beae077f849cdde6e1be640aac 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ko', {
                        {\r
                        name: ' 접근성 도움말',\r
                        legend: '${a11yHelp} 누르시오'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace 키',\r
        tab: '탭 키',\r
-       enter: '엔터 키',\r
-       shift: '시프트 키',\r
-       ctrl: '컨트롤 키',\r
-       alt: '알트 키',\r
        pause: '일시정지 키',\r
        capslock: '캡스 록 키',\r
        escape: '이스케이프 키',\r
        pageUp: '페이지 업 키',\r
        pageDown: '페이지 다운 키',\r
-       end: '엔드 키',\r
-       home: '홈 키',\r
        leftArrow: '왼쪽 화살표 키',\r
        upArrow: '위쪽 화살표 키',\r
        rightArrow: '오른쪽 화살표 키',\r
        downArrow: '아래쪽 화살표 키',\r
        insert: '인서트 키',\r
-       'delete': '삭제 키',\r
        leftWindowKey: '왼쪽 윈도우 키',\r
        rightWindowKey: '오른쪽 윈도우 키',\r
        selectKey: '셀렉트 키',\r
index 93f77dc9689b40b85953820b2b0869d33ed5b7cd..d293c65a189a44c94955759ed3758932d1247b8c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ku', {
                        {\r
                        name: 'دەستپێگەیشتنی یارمەتی',\r
                        legend: 'کلیك ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Left Arrow',\r
        upArrow: 'Up Arrow',\r
        rightArrow: 'Right Arrow',\r
        downArrow: 'Down Arrow',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'پەنجەرەی چەپ',\r
        rightWindowKey: 'پەنجەرەی ڕاست',\r
        selectKey: 'Select',\r
index d1a21ac99f68c57d0c2843bec67d30d3c8f5f885..b4095c4d5c619f442f2b3e6b3b269f0eb52b3c7b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'lt', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index ccd13b8cacf83b724333aed9b9e5e3b74454e00c..67d0d6ee90dcaee83eb714c4659591b69a49d6cf 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'lv', {
                        {\r
                        name: 'Pieejamības palīdzība',\r
                        legend: 'Nospiediet ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 3dca6f737ef24316f7dc6eb4122f3451803b2c47..bd24e38718f126b54b11f1323a6871eaa5db0414 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'mk', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Пауза',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Up',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Стрелка лево',\r
        upArrow: 'Стрелка горе',\r
        rightArrow: 'Стрелка десно',\r
        downArrow: 'Стрелка доле',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Лево Windows копче',\r
        rightWindowKey: 'Десно Windows копче',\r
        selectKey: 'Select копче',\r
index 35ae7a79d91bb2f6e6cc48bebcff0252b1665cf5..30373126adafa650b9186957472091f35a5a0b9d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'mn', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index f8a87744fcf0c2e27d6834cb07d405bf0d6ce61d..dc493572bbafd35dc559502752d1980f82912108 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nb', {
                        {\r
                        name: 'Hjelp for tilgjengelighet',\r
                        legend: 'Trykk ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Lim inn som ren tekst',\r
+                       legend: 'Trykk ${pastetext}',\r
+                       legendEdge: 'Trykk ${pastetext}, etterfulgt av ${past}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tabulator',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Venstre piltast',\r
        upArrow: 'Opp-piltast',\r
        rightArrow: 'Høyre piltast',\r
        downArrow: 'Ned-piltast',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Venstre Windows-tast',\r
        rightWindowKey: 'Høyre Windows-tast',\r
        selectKey: 'Velg nøkkel',\r
index a123ba4fa9370c203356436de4f86abdebdbd51d..4ee8799bbaaec28f753950461aa6d84e6f68393e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nl', {
                        {\r
                        name: 'Dialoog tekstverwerker',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Bij dialoogvensters met meerdere tabbladen kan de tabset bereikt worden met ALT+F10 of met TAB als onderdeel van de tabvolgorde in het dialoogvenster. Als de tabset focus heeft, kun je schakalen naar het volgende en vorige tabblad met respectievelijk PIJL RECHTS en PIJL LINKS.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'nl', {
                        {\r
                        name: 'Toegankelijkheidshulp',\r
                        legend: 'Druk op ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Pijl naar links',\r
        upArrow: 'Pijl omhoog',\r
        rightArrow: 'Pijl naar rechts',\r
        downArrow: 'Pijl naar beneden',\r
        insert: 'Invoegen',\r
-       'delete': 'Verwijderen',\r
        leftWindowKey: 'Linker Windows-toets',\r
        rightWindowKey: 'Rechter Windows-toets',\r
        selectKey: 'Selecteer toets',\r
index 4fb116388048767aea225b4a1afe3b3ea15b5b39..e015fc3d1f8ff332ffabcb9e830d8fe50f70ec01 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'no', {
                        {\r
                        name: 'Hjelp for tilgjengelighet',\r
                        legend: 'Trykk ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
diff --git a/sources/plugins/a11yhelp/dialogs/lang/oc.js b/sources/plugins/a11yhelp/dialogs/lang/oc.js
new file mode 100644 (file)
index 0000000..fe313f4
--- /dev/null
@@ -0,0 +1,145 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'a11yhelp', 'oc', {\r
+       title: 'Instruccions d\'accessibilitat',\r
+       contents: 'Contengut de l\'ajuda. Per tampar aquesta fenèstra, quichatz sus la tòca Escap.',\r
+       legend: [\r
+               {\r
+               name: 'General',\r
+               items: [\r
+                       {\r
+                       name: 'Barra d\'aisinas de l\'editor',\r
+                       legend: 'Quichar sus ${toolbarFocus} per accedir a la barra d\'aisinas. Se desplaçar cap al groupe seguent o precedent de la barra d\'aisinas amb las tòcas Tab e Maj+Tab. Se desplaçar cap al boton seguent o precedent de la barra d\'aisinas amb las tòcas Sageta dreita e Sageta esquèrra. Quichar sus la barra d\'espaci o la tòca Entrada per activer lo boton de barra d\'aisinas.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Fenèstra de l\'editor',\r
+                       legend:\r
+                               'Dins una bóstia de dialòg, quichar sus Tab per passar a l\'element seguent, quichar sus Maj+Tab per passar a l\'element precedent, quichar sus Entrada per validar, quichar sus Escap per anullar. Quand una bóstia de dialòg possedís des onglets, la lista pòt èsser atenta amb Alt+F10 o amb Tab. Dins la lista dels onglets, se desplaçar cap al seguent e lo precedent amb las tòcas Sageta dreita e Sageta esquèrra respectivament.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Menú contextual de l\'editor',\r
+                       legend: 'Quichar sus ${contextMenu} o sus la tòca Menú per dobrir lo menú contextual. Se desplaçar ensuite cap a l\'opcion seguenta del menú amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'opcion precedenta amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o la tòca Entrada per seleccionar l\'opcion del menu. Quichar sus la barra d\'espaci, la tòca Entrada o Sageta dreita per dobrir lo sosmenú de l\'opcion seleccionada. Tornar a l\'element de menú parent amb la tòca Escap o Sageta esquèrra. Tampar lo menú contextual amb Escap.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Zòna de lista de l\'editor',\r
+                       legend: 'Dins una lista en menú desenrotlant, se desplaçar cap a l\'element seguent de la lista amb las tòcas Tab o Sageta bas. Se desplaçar cap a l\'element precedent de la lista amb las tòcas Maj+Tab o Sageta naut. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'opcion dins la lista. Quichar sus Escap per tampar lo menú desenrotlant.'\r
+               },\r
+\r
+                       {\r
+                       name: 'Barra del camin d\'elements de l\'editor',\r
+                       legend: 'Quichar sus ${elementsPathFocus} per naviguer cap a la barra del fial d\'Ariana dels elements. Se desplaçar cap al boton de l\'element seguent amb las tòcas Tab o Sageta dreita. Se desplaçar cap al boton precedent amb las tòcas Maj+Tab o Sageta esquèrra. Quichar sus la barra d\'espaci o sus Entrada per seleccionar l\'element dins l\'editor.'\r
+               }\r
+               ]\r
+       },\r
+               {\r
+               name: 'Comandas',\r
+               items: [\r
+                       {\r
+                       name: 'Anullar la comanda',\r
+                       legend: 'Quichar sus ${undo}'\r
+               },\r
+                       {\r
+                       name: 'Comanda restablir',\r
+                       legend: 'Quichar sus ${redo}'\r
+               },\r
+                       {\r
+                       name: ' Comanda gras',\r
+                       legend: 'Quichar sus ${bold}'\r
+               },\r
+                       {\r
+                       name: ' Comanda italica',\r
+                       legend: 'Quichar sus ${italic}'\r
+               },\r
+                       {\r
+                       name: ' Comanda solinhat',\r
+                       legend: 'Quichar sus ${underline}'\r
+               },\r
+                       {\r
+                       name: ' Comanda ligam',\r
+                       legend: 'Quichar sus ${link}'\r
+               },\r
+                       {\r
+                       name: 'Comanda enrotlar la barra d\'aisinas',\r
+                       legend: 'Quichar sus ${toolbarCollapse}'\r
+               },\r
+                       {\r
+                       name: 'Comanda d\'accès a l\'element seleccionable precedent',\r
+                       legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inategnible lo mai pròche abans lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables precedents.'\r
+               },\r
+                       {\r
+                       name: 'Comanda d\'accès a l\'element seleccionable seguent',\r
+                       legend: 'Quichar sus ${accessNextSpace} per accedir a l\'element seleccionable inatenhible lo mai pròche aprèp lo cursor, per exemple : doas linhas orizontalas adjacentas. Repetir la combinason de tòcas per aténher los elements seleccionables seguents.'\r
+               },\r
+                       {\r
+                       name: ' Ajuda sus l\'accessibilitat',\r
+                       legend: 'Quichar sus ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
+               }\r
+               ]\r
+       }\r
+       ],\r
+       tab: 'Tabulacion',\r
+       pause: 'Pausa',\r
+       capslock: 'Verr. Maj.',\r
+       escape: 'Escap',\r
+       pageUp: 'Pagina superiora',\r
+       pageDown: 'Pagina seguenta',\r
+       leftArrow: 'Sageta esquèrra',\r
+       upArrow: 'Sageta naut',\r
+       rightArrow: 'Sageta dreita',\r
+       downArrow: 'Sageta bassa',\r
+       insert: 'Inser',\r
+       leftWindowKey: 'Tòca Windows esquèrra',\r
+       rightWindowKey: 'Tòca Windows dreita',\r
+       selectKey: 'Tòca Seleccionar',\r
+       numpad0: '0 del pavat numeric',\r
+       numpad1: '1 del pavat numeric',\r
+       numpad2: '2 del pavat numeric',\r
+       numpad3: '3 del pavat numeric',\r
+       numpad4: '4 del pavat numeric',\r
+       numpad5: '5 del pavat numeric',\r
+       numpad6: '6 del pavat numeric',\r
+       numpad7: '7 del pavat numeric',\r
+       numpad8: 'Pavat numeric 8',\r
+       numpad9: '9 del pavat numeric',\r
+       multiply: 'Multiplicar',\r
+       add: 'Plus',\r
+       subtract: 'Mens',\r
+       decimalPoint: 'Punt decimal',\r
+       divide: 'Devesir',\r
+       f1: 'F1',\r
+       f2: 'F2',\r
+       f3: 'F3',\r
+       f4: 'F4',\r
+       f5: 'F5',\r
+       f6: 'F6',\r
+       f7: 'F7',\r
+       f8: 'F8',\r
+       f9: 'F9',\r
+       f10: 'F10',\r
+       f11: 'F11',\r
+       f12: 'F12',\r
+       numLock: 'Verr. Num.',\r
+       scrollLock: 'Arrèst desfil.',\r
+       semiColon: 'Punt-virgula',\r
+       equalSign: 'Signe egal',\r
+       comma: 'Virgula',\r
+       dash: 'Jonhent',\r
+       period: 'Punt',\r
+       forwardSlash: 'Barra oblica',\r
+       graveAccent: 'Accent grèu',\r
+       openBracket: 'Parentèsi dobèrta',\r
+       backSlash: 'Barra oblica invèrsa',\r
+       closeBracket: 'Parentèsi tampanta',\r
+       singleQuote: 'Apostròfa'\r
+} );\r
index 1e270f5d460c81ef0c9549203cbc9123cc6a635b..23801fa1f7946ffa8b94a9490d618f286d232a81 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -69,39 +69,36 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pl', {
                        legend: 'Naciśnij ${toolbarCollapse}'\r
                },\r
                        {\r
-                       name: ' Access previous focus space command', // MISSING\r
-                       legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
+                       name: 'Przejdź do poprzedniego miejsca, w którym można ustawić focus',\r
+                       legend: 'Naciśnij ${accessPreviousSpace}, aby przejść do najbliższego niedostępnego miejsca przed kursorem, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.'\r
                },\r
                        {\r
-                       name: ' Access next focus space command', // MISSING\r
-                       legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING\r
+                       name: 'Przejdź do następnego miejsca, w którym można ustawić focus',\r
+                       legend: 'Naciśnij ${accessNextSpace}, aby przejść do najbliższego niedostępnego miejsca po kursorze, w którym można ustawić focus. Przykład: dwa przylegające elementy HR. Powtórz ten skrót klawiaturowy, by dotrzeć do kolejnych takich miejsc.'\r
                },\r
                        {\r
                        name: 'Pomoc dotycząca dostępności',\r
                        legend: 'Naciśnij ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Wklej jako tekst',\r
+                       legend: 'Naciśnij ${pastetext}',\r
+                       legendEdge: 'Naciśnij ${pastetext}, a następnie ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Strzałka w lewo',\r
        upArrow: 'Strzałka w górę',\r
        rightArrow: 'Strzałka w prawo',\r
        downArrow: 'Strzałka w dół',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Lewy klawisz Windows',\r
        rightWindowKey: 'Prawy klawisz Windows',\r
        selectKey: 'Klawisz wyboru',\r
index c499a57cb9ee9f7be7b638eacadde40b63fe66ae..b233f2ee0dee497cdc32d3a321903e1a076e8e00 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt-br', {
                        {\r
                        name: ' Ajuda de Acessibilidade',\r
                        legend: 'Pressione ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Tecla Backspace',\r
        tab: 'Tecla Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Seta à Esquerda',\r
        upArrow: 'Seta à Cima',\r
        rightArrow: 'Seta à Direita',\r
        downArrow: 'Seta à Baixo',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Tecla do Windows Esquerda',\r
        rightWindowKey: 'Tecla do Windows Direita',\r
        selectKey: 'Tecla Selecionar',\r
index 2566f5b938a17b35c5be22d99e8b315cc8c5a542..cc02ae20a6dc0d601993555a779e6edcff3a696f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -12,28 +12,28 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
                items: [\r
                        {\r
                        name: 'Barra de ferramentas do editor',\r
-                       legend: 'Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'\r
+                       legend: 'Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'\r
                },\r
 \r
                        {\r
-                       name: 'Janela do Editor',\r
+                       name: 'Janela do editor',\r
                        legend:\r
                                'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
                },\r
 \r
                        {\r
-                       name: 'Menu de Contexto do Editor',\r
-                       legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'\r
+                       name: 'Menu de contexto do editor',\r
+                       legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. Vá para o item do menu contentor com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'\r
                },\r
 \r
                        {\r
                        name: 'Editor de caixa em lista',\r
-                       legend: 'Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista.'\r
+                       legend: 'Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista.'\r
                },\r
 \r
                        {\r
-                       name: 'Caminho Barra Elemento Editor',\r
-                       legend: 'Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.'\r
+                       name: 'Editor da barra de caminho dos elementos',\r
+                       legend: 'Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor.'\r
                }\r
                ]\r
        },\r
@@ -41,35 +41,35 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
                name: 'Comandos',\r
                items: [\r
                        {\r
-                       name: 'Comando de Anular',\r
+                       name: 'Comando de anular',\r
                        legend: 'Carregar ${undo}'\r
                },\r
                        {\r
-                       name: 'Comando de Refazer',\r
-                       legend: 'Pressione ${redo}'\r
+                       name: 'Comando de refazer',\r
+                       legend: 'Clique ${redo}'\r
                },\r
                        {\r
-                       name: 'Comando de Negrito',\r
+                       name: 'Comando de negrito',\r
                        legend: 'Pressione ${bold}'\r
                },\r
                        {\r
-                       name: 'Comando de Itálico',\r
+                       name: 'Comando de itálico',\r
                        legend: 'Pressione ${italic}'\r
                },\r
                        {\r
-                       name: 'Comando de Sublinhado',\r
+                       name: 'Comando de sublinhado',\r
                        legend: 'Pressione ${underline}'\r
                },\r
                        {\r
-                       name: 'Comando de Hiperligação',\r
+                       name: 'Comando de hiperligação',\r
                        legend: 'Pressione ${link}'\r
                },\r
                        {\r
-                       name: 'Comando de Ocultar Barra de Ferramentas',\r
+                       name: 'Comando de ocultar barra de ferramentas',\r
                        legend: 'Pressione ${toolbarCollapse}'\r
                },\r
                        {\r
-                       name: 'Acesso comando do espaço focus anterior',\r
+                       name: 'Aceder ao comando espaço de foco anterior',\r
                        legend: 'Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes.'\r
                },\r
                        {\r
@@ -79,32 +79,29 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
                        {\r
                        name: 'Ajuda a acessibilidade',\r
                        legend: 'Pressione ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
-       tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
+       tab: 'Separador',\r
        pause: 'Pausa',\r
        capslock: 'Maiúsculas',\r
        escape: 'Esc',\r
-       pageUp: 'Page Up', // MISSING\r
-       pageDown: 'Page Down', // MISSING\r
-       end: 'Fim',\r
-       home: 'Entrada',\r
+       pageUp: 'Subir página',\r
+       pageDown: 'Descer página',\r
        leftArrow: 'Seta esquerda',\r
        upArrow: 'Seta para cima',\r
        rightArrow: 'Seta direita',\r
        downArrow: 'Seta para baixo',\r
        insert: 'Inserir',\r
-       'delete': 'Eliminar',\r
-       leftWindowKey: 'Left Windows key', // MISSING\r
-       rightWindowKey: 'Right Windows key', // MISSING\r
-       selectKey: 'Select key', // MISSING\r
+       leftWindowKey: 'Tecla esquerda Windows',\r
+       rightWindowKey: 'Tecla direita Windows',\r
+       selectKey: 'Selecionar tecla',\r
        numpad0: 'Numpad 0', // MISSING\r
        numpad1: 'Numpad 1', // MISSING\r
        numpad2: 'Numpad 2', // MISSING\r
@@ -118,8 +115,8 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
        multiply: 'Multiplicar',\r
        add: 'Adicionar',\r
        subtract: 'Subtrair',\r
-       decimalPoint: 'Decimal Point', // MISSING\r
-       divide: 'Divide', // MISSING\r
+       decimalPoint: 'Ponto decimal',\r
+       divide: 'Separar',\r
        f1: 'F1',\r
        f2: 'F2',\r
        f3: 'F3',\r
@@ -134,15 +131,15 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
        f12: 'F12',\r
        numLock: 'Num Lock', // MISSING\r
        scrollLock: 'Scroll Lock', // MISSING\r
-       semiColon: 'Semicolon', // MISSING\r
-       equalSign: 'Equal Sign', // MISSING\r
+       semiColon: 'Ponto e vírgula',\r
+       equalSign: 'Sinald e igual',\r
        comma: 'Vírgula',\r
-       dash: 'Dash', // MISSING\r
-       period: 'Period', // MISSING\r
+       dash: 'Cardinal',\r
+       period: 'Ponto',\r
        forwardSlash: 'Forward Slash', // MISSING\r
        graveAccent: 'Acento grave',\r
        openBracket: 'Open Bracket', // MISSING\r
        backSlash: 'Backslash', // MISSING\r
        closeBracket: 'Close Bracket', // MISSING\r
-       singleQuote: 'Single Quote' // MISSING\r
+       singleQuote: 'Plica'\r
 } );\r
index c78717783bd50bf366677a2d93dba10b9b2080a9..11177baf95b02927f85b9b41d18e9b5ca5b3c829 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ro', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 23bb13d009589b29665703c686efa305e426467e..852a17f693966a5d7485de72c1c5c2e274a96f04 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ru', {
                        {\r
                        name: 'Справка по горячим клавишам',\r
                        legend: 'Нажмите ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Вставить только текст',\r
+                       legend: 'Нажмите ${pastetext}',\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Esc',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Стрелка влево',\r
        upArrow: 'Стрелка вверх',\r
        rightArrow: 'Стрелка вправо',\r
        downArrow: 'Стрелка вниз',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Левая клавиша Windows',\r
        rightWindowKey: 'Правая клавиша Windows',\r
        selectKey: 'Выбрать',\r
index e8551925f360c5f5da1fa1c389afe4fc2713a3bd..ce72579441db7d7c46baafe97d5decb537ea332a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'si', {
                        {\r
                        name: 'ප්‍රවේශ ',\r
                        legend: 'ඔබන්න  ${a11y }'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index ee91403f07b151c300c186ccf813ced5e19134aa..3800f141047c5ece76f59392c5259164c1167122 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,7 +18,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sk', {
                        {\r
                        name: 'Editorový dialóg',\r
                        legend:\r
-                               'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING\r
+                               'V dialógovom okne stlačte TAB pre presun na ďalší prvok, SHIFT+TAB pre presun na predchádzajúci prvok, ENTER pre odoslanie, ESC pre zrušenie. Keď má dialógové okno viacero kariet, zoznam kariet dosiahnete buď stlačením ALT+F10 alebo s TAB v príslušnom poradí kariet. So zameraným zoznamom kariet sa pohybujte k ďalšej alebo predchádzajúcej karte cez PRAVÚ a ĽAVÚ ŠÍPKU.'\r
                },\r
 \r
                        {\r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sk', {
                        {\r
                        name: 'Pomoc prístupnosti',\r
                        legend: 'Stlačte ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Stránka hore',\r
        pageDown: 'Stránka dole',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Šípka naľavo',\r
        upArrow: 'Šípka hore',\r
        rightArrow: 'Šípka napravo',\r
        downArrow: 'Šípka dole',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
        leftWindowKey: 'Ľavé Windows tlačidlo',\r
        rightWindowKey: 'Pravé Windows tlačidlo',\r
        selectKey: 'Tlačidlo Select',\r
index 7cb12f6118d7b185aa4d64f6ea1aa504a934f869..779b41095f7ce642e95e9706a16fc332edd09888 100644 (file)
@@ -1,17 +1,17 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {\r
-       title: 'Navodila Dostopnosti',\r
-       contents: 'Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.',\r
+       title: 'Navodila za dostopnost',\r
+       contents: 'Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.',\r
        legend: [\r
                {\r
                name: 'Splošno',\r
                items: [\r
                        {\r
-                       name: 'Urejevalna Orodna Vrstica',\r
+                       name: 'Orodna vrstica urejevalnika',\r
                        legend: 'Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice.'\r
                },\r
 \r
@@ -22,7 +22,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
                },\r
 \r
                        {\r
-                       name: 'Urejevalni Kontekstni Meni',\r
+                       name: 'Kontekstni meni urejevalnika',\r
                        legend: 'Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC.'\r
                },\r
 \r
@@ -77,33 +77,30 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
                        legend: 'Pritisnite ${accessNextSpace} za dostop do najbližjega nedosegljivega osredotočenega prostora po strešici, npr.: dva sosednja HR elementa. Ponovite kombinacijo tipk, da dosežete oddaljene osredotočene prostore.'\r
                },\r
                        {\r
-                       name: 'Pomoč Dostopnosti',\r
+                       name: 'Pomoč dostopnosti',\r
                        legend: 'Pritisnite ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
-       leftArrow: 'Levo puščica',\r
-       upArrow: 'Gor puščica',\r
-       rightArrow: 'Desno puščica',\r
-       downArrow: 'Dol puščica',\r
+       leftArrow: 'Puščica levo',\r
+       upArrow: 'Puščica gor',\r
+       rightArrow: 'Puščica desno',\r
+       downArrow: 'Puščica dol',\r
        insert: 'Insert',\r
-       'delete': 'Delete',\r
-       leftWindowKey: 'Leva Windows tipka',\r
-       rightWindowKey: 'Desna Windows tipka',\r
+       leftWindowKey: 'Leva tipka Windows',\r
+       rightWindowKey: 'Desna tipka Windows',\r
        selectKey: 'Select tipka',\r
        numpad0: 'Numpad 0',\r
        numpad1: 'Numpad 1',\r
@@ -135,7 +132,7 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
        numLock: 'Num Lock',\r
        scrollLock: 'Scroll Lock',\r
        semiColon: 'Podpičje',\r
-       equalSign: 'enačaj',\r
+       equalSign: 'Enačaj',\r
        comma: 'Vejica',\r
        dash: 'Vezaj',\r
        period: 'Pika',\r
@@ -143,6 +140,6 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
        graveAccent: 'Krativec',\r
        openBracket: 'Oklepaj',\r
        backSlash: 'Leva poševnica',\r
-       closeBracket: 'Oklepaj',\r
+       closeBracket: 'Zaklepaj',\r
        singleQuote: 'Opuščaj'\r
 } );\r
index c308122bcee7202d1358a612cad382e2f6e87648..6283fee1588a561dcf9f4b5d60f946821955c9f0 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sq', {
                        {\r
                        name: 'Ndihmë Qasjeje',\r
                        legend: 'Shtyp ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Prapa',\r
        tab: 'Fletë',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Shenja majtas',\r
        upArrow: 'Shenja sipër',\r
        rightArrow: 'Shenja djathtas',\r
        downArrow: 'Shenja poshtë',\r
        insert: 'Shto',\r
-       'delete': 'Grise',\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index b70e6356ea9d078de7c9d1f1e7ea5cd16e5e237f..f8caf0146de3e15dfe818e1e438256f53f92936f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sr-latn', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index fb07f86f5f98bf8be34b18458d1cb9a2d61b756f..0ef022227cceb4c8a707e71ffd7dcb5063a39486 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sr', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 4200c9f6b0dfef4d0a054e81edbe8e7b289f6c21..867bedaf914669f1bd8062a955bdc798c8622b49 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'sv', {
                        {\r
                        name: 'Hjälp om tillgänglighet',\r
                        legend: 'Tryck ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: 'Klistra in som vanlig text',\r
+                       legend: 'Tryck ${pastetext}',\r
+                       legendEdge: 'Tryck ${pastetext}, följt av ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backsteg',\r
        tab: 'Tab',\r
-       enter: 'Retur',\r
-       shift: 'Skift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Paus',\r
        capslock: 'Caps lock',\r
        escape: 'Escape',\r
        pageUp: 'Sida Up',\r
        pageDown: 'Sida Ned',\r
-       end: 'Slut',\r
-       home: 'Hem',\r
        leftArrow: 'Vänsterpil',\r
        upArrow: 'Uppil',\r
        rightArrow: 'Högerpil',\r
        downArrow: 'Nedåtpil',\r
        insert: 'Infoga',\r
-       'delete': 'Radera',\r
        leftWindowKey: 'Vänster Windowstangent',\r
        rightWindowKey: 'Höger Windowstangent',\r
        selectKey: 'Välj tangent',\r
index 00c96d12f7214661f974486dd6fe584ac05d9853..5da604f98a63b4b050b82058f3af2b42018d1a15 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'th', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: 'Press ${a11yHelp}' // MISSING\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace', // MISSING\r
        tab: 'Tab', // MISSING\r
-       enter: 'Enter', // MISSING\r
-       shift: 'Shift', // MISSING\r
-       ctrl: 'Ctrl', // MISSING\r
-       alt: 'Alt', // MISSING\r
        pause: 'Pause', // MISSING\r
        capslock: 'Caps Lock', // MISSING\r
        escape: 'Escape', // MISSING\r
        pageUp: 'Page Up', // MISSING\r
        pageDown: 'Page Down', // MISSING\r
-       end: 'End', // MISSING\r
-       home: 'Home', // MISSING\r
        leftArrow: 'Left Arrow', // MISSING\r
        upArrow: 'Up Arrow', // MISSING\r
        rightArrow: 'Right Arrow', // MISSING\r
        downArrow: 'Down Arrow', // MISSING\r
        insert: 'Insert', // MISSING\r
-       'delete': 'Delete', // MISSING\r
        leftWindowKey: 'Left Windows key', // MISSING\r
        rightWindowKey: 'Right Windows key', // MISSING\r
        selectKey: 'Select key', // MISSING\r
index 425f21d36f73017c6ec3784743c2fbe209b31e5e..86b4c972198d3a17757ed9a3d3ab9702908488b2 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'tr', {
                        {\r
                        name: 'Erişilebilirlik Yardımı',\r
                        legend: '${a11yHelp}\'e basın'\r
+               },\r
+                       {\r
+                       name: 'Düz Metin Olarak Yapıştır',\r
+                       legend: '${pastetext} basın',\r
+                       legendEdge: 'Önce ${pastetext} ardından${paste} basın'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Silme',\r
        tab: 'Sekme tuşu',\r
-       enter: 'Gir tuşu',\r
-       shift: '"Shift" Kaydırma tuşu',\r
-       ctrl: '"Ctrl" Kontrol tuşu',\r
-       alt: '"Alt" Anahtar tuşu',\r
        pause: 'Durdurma tuşu',\r
        capslock: 'Büyük harf tuşu',\r
        escape: 'Vazgeç tuşu',\r
        pageUp: 'Sayfa Yukarı',\r
        pageDown: 'Sayfa Aşağı',\r
-       end: 'Sona',\r
-       home: 'En başa',\r
        leftArrow: 'Sol ok',\r
        upArrow: 'Yukarı ok',\r
        rightArrow: 'Sağ ok',\r
        downArrow: 'Aşağı ok',\r
        insert: 'Araya gir',\r
-       'delete': 'Silme',\r
        leftWindowKey: 'Sol windows tuşu',\r
        rightWindowKey: 'Sağ windows tuşu',\r
        selectKey: 'Seçme tuşu',\r
index 1ce78fa548f15ed3fe1351065a0169e6b4847ebe..e73f5dd66e300c990b32762ca2416c25b933c4e3 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'tt', {
                        {\r
                        name: ' Accessibility Help', // MISSING\r
                        legend: '${a11yHelp} басыгыз'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Кайтару',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Тыныш',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Сул якка ук',\r
        upArrow: 'Өскә таба ук',\r
        rightArrow: 'Уң якка ук',\r
        downArrow: 'Аска таба ук',\r
        insert: 'Өстәү',\r
-       'delete': 'Бетерү',\r
        leftWindowKey: 'Сул Windows төймəсе',\r
        rightWindowKey: 'Уң Windows төймəсе',\r
        selectKey: 'Select төймəсе',\r
index 0dd4d2570b266b810bc0985f1a9c33e957f6519f..4768c55fb4540c2c22cdca003b88e8fa8d373e8b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'ug', {
                        {\r
                        name: 'توسالغۇسىز لايىھە چۈشەندۈرۈشى',\r
                        legend: '${a11yHelp} نى بېسىڭ'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Escape',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'سول يا ئوق',\r
        upArrow: 'ئۈستى يا ئوق',\r
        rightArrow: 'ئوڭ يا ئوق',\r
        downArrow: 'ئاستى يا ئوق',\r
        insert: 'قىستۇر',\r
-       'delete': 'ئۆچۈر',\r
        leftWindowKey: 'سول Windows كۇنۇپكىسى',\r
        rightWindowKey: 'ئوڭ Windows كۇنۇپكىسى',\r
        selectKey: 'تاللاش كۇنۇپكىسى',\r
index ce5ff600056dbfc49b7b0e03680ca8ed81e99f81..99a7002746378f52c144d6ecdfa090f68e99a57e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'uk', {
                        {\r
                        name: 'Допомога з доступності',\r
                        legend: 'Натисніть ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Backspace',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Esc',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: 'Ліва стрілка',\r
        upArrow: 'Стрілка вгору',\r
        rightArrow: 'Права стрілка',\r
        downArrow: 'Стрілка вниз',\r
        insert: 'Вставити',\r
-       'delete': 'Видалити',\r
        leftWindowKey: 'Ліва клавіша Windows',\r
        rightWindowKey: 'Права клавіша Windows',\r
        selectKey: 'Виберіть клавішу',\r
index c9854713691644265211707bc72baae5fcc862dc..b8c9fe9cf07058706b2695c7e025321c66d7756e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'vi', {
                        {\r
                        name: 'Trợ giúp liên quan',\r
                        legend: 'Nhấn ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: 'Phím Backspace',\r
        tab: 'Phím Tab',\r
-       enter: 'Phím Tab',\r
-       shift: 'Phím Shift',\r
-       ctrl: 'Phím Ctrl',\r
-       alt: 'Phím Alt',\r
        pause: 'Phím Pause',\r
        capslock: 'Phím Caps Lock',\r
        escape: 'Phím Escape',\r
        pageUp: 'Phím Page Up',\r
        pageDown: 'Phím Page Down',\r
-       end: 'Phím End',\r
-       home: 'Phím Home',\r
        leftArrow: 'Phím Left Arrow',\r
        upArrow: 'Phím Up Arrow',\r
        rightArrow: 'Phím Right Arrow',\r
        downArrow: 'Phím Down Arrow',\r
        insert: 'Chèn',\r
-       'delete': 'Xóa',\r
        leftWindowKey: 'Phím Left Windows',\r
        rightWindowKey: 'Phím Right Windows ',\r
        selectKey: 'Chọn phím',\r
index 553f56c08eb83e96876a76e4496e38695b9abb42..0ce61d2bd3677e489cb1d58b7540d1db3f94dd0b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'zh-cn', {
                        {\r
                        name: '辅助功能帮助',\r
                        legend: '按 ${a11yHelp}'\r
+               },\r
+                       {\r
+                       name: '粘贴为纯文本',\r
+                       legend: '按 ${pastetext}',\r
+                       legendEdge: '按 ${pastetext},然后再按 ${paste}'\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: '退格键',\r
        tab: 'Tab 键',\r
-       enter: '回车键',\r
-       shift: 'Shift 键',\r
-       ctrl: 'Ctrl 键',\r
-       alt: 'Alt 键',\r
        pause: '暂停键',\r
        capslock: '大写锁定键',\r
        escape: 'Esc 键',\r
        pageUp: '上翻页键',\r
        pageDown: '下翻页键',\r
-       end: '行尾键',\r
-       home: '行首键',\r
        leftArrow: '向左箭头键',\r
        upArrow: '向上箭头键',\r
        rightArrow: '向右箭头键',\r
        downArrow: '向下箭头键',\r
        insert: '插入键',\r
-       'delete': '删除键',\r
        leftWindowKey: '左 WIN 键',\r
        rightWindowKey: '右 WIN 键',\r
        selectKey: '选择键',\r
index 69b61d9e1f53cce519bbc7d388abfb221e1bf082..2e35e1dbe3facc36d758d597af93efab69017314 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -79,29 +79,26 @@ CKEDITOR.plugins.setLang( 'a11yhelp', 'zh', {
                        {\r
                        name: '協助工具說明',\r
                        legend: '請按下「${a11yHelp}」'\r
+               },\r
+                       {\r
+                       name: ' Paste as plain text', // MISSING\r
+                       legend: 'Press ${pastetext}', // MISSING\r
+                       legendEdge: 'Press ${pastetext}, followed by ${paste}' // MISSING\r
                }\r
                ]\r
        }\r
        ],\r
-       backspace: '退格鍵',\r
        tab: 'Tab',\r
-       enter: 'Enter',\r
-       shift: 'Shift',\r
-       ctrl: 'Ctrl',\r
-       alt: 'Alt',\r
        pause: 'Pause',\r
        capslock: 'Caps Lock',\r
        escape: 'Esc',\r
        pageUp: 'Page Up',\r
        pageDown: 'Page Down',\r
-       end: 'End',\r
-       home: 'Home',\r
        leftArrow: '向左箭號',\r
        upArrow: '向上鍵號',\r
        rightArrow: '向右鍵號',\r
        downArrow: '向下鍵號',\r
        insert: '插入',\r
-       'delete': '刪除',\r
        leftWindowKey: '左方 Windows 鍵',\r
        rightWindowKey: '右方 Windows 鍵',\r
        selectKey: '選擇鍵',\r
index 86b19fee8cab707696403a24f50429a0ed260381..65da25eac8d9b56a4afa37306e5bd6341093b11f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -17,7 +17,7 @@
 \r
                // List of available localizations.\r
                // jscs:disable\r
-               availableLangs: { af:1,ar:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 },\r
+               availableLangs: { af:1,ar:1,az:1,bg:1,ca:1,cs:1,cy:1,da:1,de:1,'de-ch':1,el:1,en:1,'en-gb':1,eo:1,es:1,'es-mx':1,et:1,eu:1,fa:1,fi:1,fo:1,fr:1,'fr-ca':1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,id:1,it:1,ja:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,oc:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,si:1,sk:1,sl:1,sq:1,sr:1,'sr-latn':1,sv:1,th:1,tr:1,tt:1,ug:1,uk:1,vi:1,zh:1,'zh-cn':1 },\r
                // jscs:enable\r
 \r
                init: function( editor ) {\r
index 5ff84fec0e1a88fbcb779aa1d2c1e6dc4b0fe76c..d714916394dfedb7cbf254346662b90dbb90bd4e 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/bold.png and b/sources/plugins/basicstyles/icons/bold.png differ
index 65acb2939a853b1f91d9f4da92cd7f5c5328e425..2de207de568c8ce00547baa16834e5c2a8fe1208 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/bold.png and b/sources/plugins/basicstyles/icons/hidpi/bold.png differ
index 2b0f44e7aebca6094fa6db4bdd359114887ec216..2c2dae42f35044eb45da01581bf9c1c55c108970 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/italic.png and b/sources/plugins/basicstyles/icons/hidpi/italic.png differ
index ef045c844b177b1d7d716a809fac06532c38dd81..19c5e2223369365461313c4ea2fcc2a37ebb7709 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/strike.png and b/sources/plugins/basicstyles/icons/hidpi/strike.png differ
index f12f4be2bbe89a5c95aa366526cc151ddf2b3e6a..585d59ba6537e8aa0cbe3cfff3e3e7ef0a780327 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/subscript.png and b/sources/plugins/basicstyles/icons/hidpi/subscript.png differ
index 4f7b762f739d5e44d908db49606dab25b1020de5..9daa12a0f7b8a5ae59f9fc36756ebad613710131 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/superscript.png and b/sources/plugins/basicstyles/icons/hidpi/superscript.png differ
index 79702f69e3e5942e041cc5bc6f92e08f53f15e78..66538144c8bb0f3cadd49ecb373d8fbb7cdb6ae4 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/hidpi/underline.png and b/sources/plugins/basicstyles/icons/hidpi/underline.png differ
index 64d1332c97673d518a03cd5b477a32df051814c4..5f8aaae6a6bced7e013305f0d9375458605b9f83 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/italic.png and b/sources/plugins/basicstyles/icons/italic.png differ
index 31ea47a1cc96044d29f35187e2f1ed0650ce26de..5842b7ac67c81f21e709fc5ca65c98447e18ba07 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/strike.png and b/sources/plugins/basicstyles/icons/strike.png differ
index bfe5420eba4f7352e8fe244983f7695eff1b54e0..db11f784e0e3acaf41f6cb19bcacbaaf1530ff73 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/subscript.png and b/sources/plugins/basicstyles/icons/subscript.png differ
index a1eb2f1e821c297b8ffe6c69f563b68a334e7c5c..3df28d2772a393d97825ac9570264ca36f6e5d2f 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/superscript.png and b/sources/plugins/basicstyles/icons/superscript.png differ
index 1dd0c593c5fe0ec530cb7d2e4250983c9c756601..160be92665e699378d6488e455f250d5cda3c63a 100644 (file)
Binary files a/sources/plugins/basicstyles/icons/underline.png and b/sources/plugins/basicstyles/icons/underline.png differ
index 3fbcb9c2d64deb6892c86d333cc8e58fd844cdef..bcceb14f79f0f95dd610643ed8857828181e4581 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'af', {\r
index 8ed2b0771c683fd6ef812d6a7e97caa9de54f868..fb4adc6ad3c4884c592f983cddc73da0e657c085 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ar', {\r
diff --git a/sources/plugins/basicstyles/lang/az.js b/sources/plugins/basicstyles/lang/az.js
new file mode 100644 (file)
index 0000000..097a1ec
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'az', {\r
+       bold: 'Qalın',\r
+       italic: 'Kursiv',\r
+       strike: 'Üstüxətli',\r
+       subscript: 'Aşağı indeks',\r
+       superscript: 'Yuxarı indeks',\r
+       underline: 'Altdan xətt'\r
+} );\r
index e41076620f40614eb629ba126864953421c3130b..56f6f7d98f29d3f1836a36f14ddae10c0771460a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'bg', {\r
index 007520ba3c2c3d9f490d7138476e366b4055f277..fd790a43a5ea1f6575e689dc704099af0ea41b6d 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'bn', {\r
        bold: 'বোল্ড',\r
-       italic: 'à¦\87à¦\9fালিà¦\95',\r
+       italic: 'বাà¦\81à¦\95া',\r
        strike: 'স্ট্রাইক থ্রু',\r
        subscript: 'অধোলেখ',\r
        superscript: 'অভিলেখ',\r
index 9484a8d9a986d32f405577bbaaa37e336a6ac3db..9188f98699925655b60fd782ec9469795ab59b7a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'bs', {\r
index 7d3cc036c133f82f82427a2b34c9df42d8be8cd8..2924d1e76734a2acc3e2f74f3f55380c2a99d5cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ca', {\r
index 5322b5ac4f55c74ada510cdadc511b3f4fb66d64..737c64827e7146c47681ae0f373fe6adfc2736f6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'cs', {\r
index 4a207e82da35e0a51975adf5e1a2011539cd2cea..3acb736729753d32270dd80acf399235d59ccfe1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'cy', {\r
index d1b10505a4becff8dccf45c93212975874560aa4..0b1f3e8845cde71aae9d634e11da93aa4566b030 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'da', {\r
index 21ade9f32bf2d403155d4df8f0d1ac5acf07cbdf..2370c049ed3c024a12df58d5c256cb04fe9d9d05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'de-ch', {\r
index 5c67cd9c370771f4aaadc6b3fb1b6308ad56b885..fbc92e4e3e8e8e678e2d3e8cbe9da97a9255ab5f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'de', {\r
index 899b794d9a21209ba4f4679bb7ba624db59605f4..2c72cda70a38c009ae10b1dd22499199a1484cbb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'el', {\r
index 4c802939fd7e83453009db628eed4eefb64bd50d..6b9dc7e2b555a06cc02ba989ad82bebf8448c5f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'en-au', {\r
index e85611aeab8e9698e12059133ffffcefecd24361..612b2b8391597502e068e9d591426821ad66de81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'en-ca', {\r
index b2cd62c790d22943769abf1a41499687f1b45ec0..418058e8d8e31e5a9ac8970639e297a718717755 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'en-gb', {\r
index 72841899aa77289b03681dfb0220add8fa5416d1..3c9bc3204fa1c385e6a7d046001063dda0428e0f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'en', {\r
index 0fef072abe697f4264aeaf20e2576006bfb6ba10..995f0c39a17889242961799516823220f69f68df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'eo', {\r
diff --git a/sources/plugins/basicstyles/lang/es-mx.js b/sources/plugins/basicstyles/lang/es-mx.js
new file mode 100644 (file)
index 0000000..a57ba4b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'es-mx', {\r
+       bold: 'Negrita',\r
+       italic: 'Cursiva',\r
+       strike: 'Tachado',\r
+       subscript: 'subíndice',\r
+       superscript: 'Sobrescrito',\r
+       underline: 'Subrayada'\r
+} );\r
index b44dbf7bd87dcae8dcfa87c2511abb16f9182440..baaf99fa1e8a38ccf0f4e519e51ae2323d09279c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'es', {\r
index 18d1a04749c9fb6276713c065154ea06ad074106..8dee05e458992e923b106d1c46aa009802ab2107 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'et', {\r
index 97f4075dd1ee0a9981f7de05c798f1f94e9bb334..70175400e3e0564d31332c780981825c9ea64996 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'eu', {\r
index 21cea30e5865bcff01b325ca7cccff3aeb2fe0e0..49343fbb866b86e60d7c15ed756fbc6c13b6dfc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'fa', {\r
index 83b2fcabbb289868751ffb053d1045b497a2dc2b..5e1fbce2a268e3a53bd92e32f23ae9f403e4a0d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'fi', {\r
index 4af4e21a6f28c36d851dcd62b1cf0ab60eef80cf..f48b73a534dd52b7b9d72d8267d81c815d758f9a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'fo', {\r
index 1a1f0135416361a8f370d56f561b12d9f18b63e4..6b8ffbf8d4ef1b7ce128d6fc4372c7746d487fb6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'fr-ca', {\r
index 65d88776f5488489d6e044dc3be1410be8220ead..022e43893d7a974edac545ed80c8b61b23bbd4be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'fr', {\r
index 597f06ba595eb4dc79e13157c57a3c44cd37b1ca..ebd5aa463d65035acd0b3b493d326baa9a988108 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'gl', {\r
index 3ca4b60c8055f09a4ae555d7f33b261b38dca687..fc043b49bd57786035c5e9d9eb0fe4d2bb870140 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'gu', {\r
index 5d73395c09e4a3d697c330d569ed2ae4cd384195..16b16a47a5480598ddf05e196d64b39c3566603b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'he', {\r
index 0beaa59e55d7fab65ab2116b9239a7e7791fa3b0..2b2fcb5d85811440a45acc4d7b008b529394f4c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'hi', {\r
index ef1c4398e990df8e64d9c7cdc231b0f61a34f1ef..94bc730382c9546662b8543bcaabfbc522b19fc9 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'hr', {\r
-       bold: 'Podebljaj',\r
-       italic: 'Ukosi',\r
+       bold: 'Podebljano',\r
+       italic: 'Ukošeno',\r
        strike: 'Precrtano',\r
        subscript: 'Subscript',\r
        superscript: 'Superscript',\r
index 36081b32e0a23d77a4b3d79572b3a3b74e6fe681..41d3a32767ff94b57e41e56e7e19da3e611f47f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'hu', {\r
index 8bad46e409e0b0aa54a2725e4463314fd72f0acc..39e916dab3782bb495403811ff6c1aac905659a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'id', {\r
index 67a4cff5434d196d1d732401532c14706e5a52c2..d22f80a2299ca40b9e9343f27f604cc33aca0bad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'is', {\r
index bbd38a777a24b3a6d335245d77db1f3d9c4821f0..12d5594b26b732e2b433184435a3d3b905a741fd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'it', {\r
index a28bebadd143f03eb3d283b508ee84370bba4af2..1d7ba09c970d7b1b27a49e04abec53a1476fceb4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ja', {\r
index 10be39dc0a99c34912f5cf3950a1fb5c1abb4d40..e1ea3910e5924b745c4aae60f4852cb72863100c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ka', {\r
index 256559cce6417fd0329787b4c26fcf025c631a4a..a55d00412e0b479f5424514e5491b43d842ed424 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'km', {\r
index 0a988f49f1c2e30174c8a6ffb31d0eb59736859b..7a61f114867599ff749da8354aa0337c763da913 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ko', {\r
index 99100cb63c57f8d30fe97cc5de67fe9f73a33fb6..fa3c16d7583131d36455df99c6638246660d7fcc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ku', {\r
index 8ea74dd39ada70e981ac5896cc3e2458df5b341e..edb6949fb2da534cb4acd5e36593188ac97d99b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'lt', {\r
index 38bbe707c5c193b29f624075df975b38f6e899c5..4efd61ff8c7aaed539eb87ca980ebfa5cdd2f5ca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'lv', {\r
index 478ce878836bf1edd32b4c5e2790733cea2107e9..7d5647552269aed3a88cd84146d736b25ad207e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'mk', {\r
index 7edec37c086bdf86e803ea6c372ec976f31ac7a7..71fa4dac6840e034359bf2a987fbe471e78d9bb6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'mn', {\r
index 0fc9f9b75c4223a71a6ebd26f373f638abc46932..0fd97eeaf30fdedc8cfa8ef2a2277e28e2265ee6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ms', {\r
index b5f922aa2dbd824029062cb65d334e6de65f24c7..6ab232515dc05876f37fe1fc28d037ba47a972c2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'nb', {\r
index 92cad814267c3cf892dc6f333594926097b82b83..b2ddb86397d0ed091db404d39f23480a8df0d08e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'nl', {\r
index 300659a6b135476ee1fb59318b5fb7ec648f2168..9fdcf1b8ab2aa79187f6ce9121f1a4757ac0f4f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'no', {\r
diff --git a/sources/plugins/basicstyles/lang/oc.js b/sources/plugins/basicstyles/lang/oc.js
new file mode 100644 (file)
index 0000000..56d7df0
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'basicstyles', 'oc', {\r
+       bold: 'Gras',\r
+       italic: 'Italica',\r
+       strike: 'Raiat',\r
+       subscript: 'Indici',\r
+       superscript: 'Exponent',\r
+       underline: 'Solinhat'\r
+} );\r
index 321f8956e37554b49170107c5f3b742b849eb5ab..5739141efd09dd185e58bac38153f1b1a4ca887e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'pl', {\r
index fad08d45890600cf3ed8c7dee4ea65f4e8a224c7..b1bbd2089bc6a1f601d1f02156aef3029a136d20 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'pt-br', {\r
index 85de020e296cf8e8a8a87b9660cd703f7655fa3e..74211062649fe9400adfe08582a5436b3ba26a32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'pt', {\r
@@ -7,6 +7,6 @@ CKEDITOR.plugins.setLang( 'basicstyles', 'pt', {
        italic: 'Itálico',\r
        strike: 'Rasurado',\r
        subscript: 'Superior à linha',\r
-       superscript: 'Inferior à Linha',\r
+       superscript: 'Superior à linha',\r
        underline: 'Sublinhado'\r
 } );\r
index c274ded1c606af86bb80ee6f7366f9a3ece24238..e760a45d0706b5f982a38d4ae325e34f21a074ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ro', {\r
index 25cdf887c2be2daae09b960b161b6fb69ab6edde..0a38898596dfe39965b292b53c4f774274352c16 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ru', {\r
index fbd052e55a6ea0fa31fcb2494a581b865f4fef07..58b5a45503e8e4c90985a01b172c9da4d2b3d866 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'si', {\r
index 3a19d9b48d4ff78e0ff58cfcd1fa0d906974bc58..42e351d6df8ca20ca785f27b4b676ff5198aa945 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sk', {\r
index d6a0dbc7c5e2806b7ca28aca49388f8510e6c372..3ccb5bae636f78ecfc23c32d0bc439788e1e601a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sl', {\r
index 7604a7aa0770b32cfdcf35ec386d3f39c47f7724..5c6d7045b6ffee2c06ae96f4e9cb7e59c7d23d92 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sq', {\r
index 6c87984de42d91810c41f7ebcafdad37b43e3113..535dd50d7295ca839c03dc7c615d7d64a7628a46 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sr-latn', {\r
index f0cc6eb65028896e6b9c9debac2f7979463ffa20..2e7564e70a2c419ab9f46eea0664c31e287cac32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sr', {\r
index d11c18c67f2131a3c58792868e5a967869b6c660..efa20a8ecd9b226481246a15cfaace31119382be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'sv', {\r
index 91c0cea1a9e4a6c22a58debfd78ce5017354a5ad..82cab00fe32d2c6649058f9ebdba4c46410b9a70 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'th', {\r
index 62f6d0913d4f1fa706c32dfaa32f735266d1f1b2..0e36c82c634ac38894eaade070111c6c2acb9e78 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'tr', {\r
index 13e0217793eaf515407f3b837660254b7d7dfa41..c8da547c19dfd7483f2f5d6833081ba8e395b827 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'tt', {\r
index 780e7b7b387e3bc39d79aefdc7f5a5222da029ce..aa2842916015e434208122943649acae7cc6b3ab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'ug', {\r
index 66e9f6a789819b3e92f5bdb71975875002ef372f..3ec1acc93e9f6dabfc8846dbf7f12461ce3c5cd2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'uk', {\r
index 510ec589340989a44567d0892fe7256a05e3d73c..c0aaa694f14d8a9bd9ce67624259a72f595e8be5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'vi', {\r
index 1b7e89f9b5c18120e604b464e0856027aaf05302..f43d23deb4465651b1c05fc4c3c8cd149e828d04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'zh-cn', {\r
index 6e75580b5f401857d123806ef4b140f5c3d8fe63..d74943c18be158dc557a6b74776fd827920c81e4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'basicstyles', 'zh', {\r
index 6960e2eb9fe44373f2defbd5c4f18d7b0c8b532b..474ea09321af7ec10422704c928533709dfa1077 100644 (file)
@@ -1,11 +1,11 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.add( 'basicstyles', {\r
        // jscs:disable maximumLineLength\r
-       lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+       lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
        // jscs:enable maximumLineLength\r
        icons: 'bold,italic,underline,strike,subscript,superscript', // %REMOVE_LINE_CORE%\r
        hidpi: true, // %REMOVE_LINE_CORE%\r
index af03793de35e45eafb8039e56c44fc7634620654..6ccebfa0b0d7d67784735ac46809e6756ca756c1 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 28f4346245e91bfbde47626d48a1d337e7bde9f4..025068da425a9d5141adfd4c7f1d52873d9c898d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/button/lang/ast.js b/sources/plugins/button/lang/ast.js
deleted file mode 100644 (file)
index 5ab7bf6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
- * For licensing, see LICENSE.md or http://ckeditor.com/license\r
- */\r
-\r
-CKEDITOR.plugins.setLang( 'button', 'ast', {\r
-       selectedLabel: '%1 (Seleicionáu)'\r
-} );\r
diff --git a/sources/plugins/button/lang/az.js b/sources/plugins/button/lang/az.js
new file mode 100644 (file)
index 0000000..30ac85e
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'az', {\r
+       selectedLabel: '%1 (seçilib)'\r
+} );\r
index dfe5be1c47c6484b6496efe132e3dc743316e3bb..0b146bb9a039642a43ac68ba93d66434356dc5be 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2feb71081a60a8f4b3f072f185778ae2dc37a940..0891d497d0079ae4cbd2f53d0bbb2a7c79bcbb75 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 01f4a865ef66a592b68c027002dfe260f6023050..552a05c882cac6e65fbfc12c14ba82a03425ae0b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 021201fc0cff99d0a3e9a491a1aebc7e747ec8c1..255dcc55b451be5878556a89b2d9cb131905db28 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 680cc20487c83db48cb45e88ac9f467769e53e4f..63430d77af19d1720fb5c145923cc51ac0811cca 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index d31afaa2781f0d6123c395d68fce8998e36b5cf6..dca3daa4634a53293c934ea353a1f96e03ace834 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 84e630cfb7049d6a299569728c0ed2517711ca49..1718816d7291be015499a214f10b8ce07cb860b7 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b4060d3b240341ccadab96d8a95d44dfa4f1189a..d7daefcc4d3b5943cfe79efd0b174fdfc16644c3 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b0b48079e5870df4ce71837d2b34ce97ca31d3be..d5c4088af4a18c26a2e26b8d25722046e6f5f894 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 733c960ef85684ee047966213bc0ef14f543914a..acf0c13af5948106360a7f1bf744d6dc1af820e4 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/button/lang/es-mx.js b/sources/plugins/button/lang/es-mx.js
new file mode 100644 (file)
index 0000000..3b1b47b
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'es-mx', {\r
+       selectedLabel: '%1 (Seleccionado)'\r
+} );\r
index 8b4695bb4996b8db99a78cea7a860dcd5a1b936a..cb46c6f64acd343109d9ad0661d6af59888904ce 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index fd60b1677b81dee05a09eebddf48a216ffd75672..c49d92a3a0ded4ba0bb6071f37a4835b13890a33 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 8e923b05fcf5d21c08dd01c7af749740afb61716..358c88a77baf8804ec32d495c3e48c74683059b2 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2668a8dc641ecf384fb67cf78af86c3a1e78542e..4822e74510271b80c00d136842e9306184900204 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 1039c90513edba88a77e11e7e5f0840b6cd8edb4..1b1c6d32d19b0b86a937b81543d3ca100674f09e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index e73ea650e7291c2947687445a79d8aff52288199..3e4e0b7db4b6451fe9ee8b5bfb5309fce06f8458 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 8890cf913a5f4f7d9da89a9072a0adcc2dbefe68..c67afb6b41e170c14cb48130f9cc4ce9e3734517 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/button/lang/hr.js b/sources/plugins/button/lang/hr.js
new file mode 100644 (file)
index 0000000..031f8f5
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'hr', {\r
+       selectedLabel: '%1 (Odabrano)'\r
+} );\r
index 9dc42a563a837ab99d33757c6663cc98c7467736..0dffac160393d176aaef1be73b45a41579530f5a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 52726a88b6a480ac7e122180a8e1b07e4b4e9656..f973ffc90cf76c4c5ec19561a2a50af8197fd94b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 0b28b8cb16a4ac8430eef0f15d373ddd5a4e3760..359dc9af945e78a6a65c310ca9061e05af8cb512 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 559d08c6b51a03d9def5971a26536be65470d5a8..e2b064f86b2cffcfb4113a3ea368fd6dbb54573c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index ecfc774018077b61831e6f845dc8ca0fd5da060e..9437a2f50e92924053189ed458c1c0f9dffa02f8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2e2cc6153fe293c3d2df82af50f79d7f0b2e9f89..64ad966b7067b5398051abdb128f6fb6f62818be 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b794e23cafead0168b56996e408d9fc6c3c3198f..d342dd0eaf3012d6e2e0a6161978ee7dfec8099a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index e17e9e544e54b964d632b7125f33431e41202765..b492bd5ffd14b2b53bc13a71bd6cde4be192545d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b91a8235a8746d59987ca082c5fe9ffad5bbeaca..8d3812133beacce8a192165f65865c55e654d0f6 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 0654cec268914fb116cbe439db75186770beaef6..3e00f80599fea2d315ddfb131dfe414774321f86 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/button/lang/no.js b/sources/plugins/button/lang/no.js
new file mode 100644 (file)
index 0000000..e6252b1
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'no', {\r
+       selectedLabel: '%1 (Valgt)'\r
+} );\r
diff --git a/sources/plugins/button/lang/oc.js b/sources/plugins/button/lang/oc.js
new file mode 100644 (file)
index 0000000..cb91761
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'button', 'oc', {\r
+       selectedLabel: '%1 (Seleccionat)'\r
+} );\r
index bc980d0faaef9834ef566e6af6a8dc38a7004ee0..304d07a85093de0aaa76d9b3ba017864999058ab 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index f1cd7c4190a1b7985fc783a16f98fa5213af72b5..e3fdf84e66c52b01e18c8f07018ef9cee86d7863 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index adc825196e3d062901acbb3e921e90e5342d6265..e02c45a0835f0fad7b0f0d8d752a6ba68035ccd1 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index c70153c6d6fb5a31ca9313ff4f1e1a765dc78ad0..0669dd5017b55f269fc9108d44d463c05c27750c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 06ee1905e7163256e09cf4325dc50c24361b5223..085f6ee05d79e9c2d419ee66317ea5840ae9e49d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index adbadf2e01dc533444c7760bb512fc61c6d592ad..12bec80802a425e06d0ebe63f3603a7cde36100a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 85e5cc2a4d01799a59267bb47797c629f06624c7..c6633ae7e704c591da11f1d32db680307d481cf5 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 1690634760390860c0b6df7305234879f35ea2e4..2e53e4cba35b8ff1341762444b6b70914e72259f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index db155262a60f3c9d913403d7c38d924bcc59a6a0..b89e47500c3f012ecad415a6571fa0acca536ccb 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index a87bb12fe0aebb10f2d71b04a395767e5e60003f..30d36700c823003791b9288b59cdfdff69b9d832 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 79044c626bcbcdb7ba03df43280df480d3d44205..632492248762d8acb34543351af41ffb3f1aa204 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index fe30252da0f95078f2c493bd00aea85b25b3bf1d..fa3a90c4d8af5321e46cd089f8cee3eca746879f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index a40cf8f2bc8bc8134095840ae886b039742c5ef8..7b49fe22dfafaf86a4598ee2644d427c5b7c4535 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index a3ea973d71e95038df84680a8fc5681878338cdf..b6a591154cb88c77bf6772d9ddfe897551ddc7bb 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 1271943c6d694908691bafac677bdeed36854eb8..fade7d74b21e2cd3c1764aedcd2c8ad1d4b0a643 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 5fee74f55b4c82a564a5011b9efe05251bd68ba8..74794629d7e73b13a6065c24f1b7809db9c5f74a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 0ce75c64ff138a1befceef6dee76eac7c5f872d2..e91fa86cbd5568f7f2643d963a933f1623ffca7d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -12,6 +12,7 @@
                ' hidefocus="true"' +\r
                ' role="button"' +\r
                ' aria-labelledby="{id}_label"' +\r
+               ' aria-describedby="{id}_description"' +\r
                ' aria-haspopup="{hasArrow}"' +\r
                ' aria-disabled="{ariaDisabled}"';\r
 \r
 \r
        template += ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);"' +\r
                ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +\r
-               ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188\r
+               ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // http://dev.ckeditor.com/ticket/188\r
                        '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +\r
                '<span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"';\r
 \r
 \r
        template += '>&nbsp;</span>' +\r
                '<span id="{id}_label" class="cke_button_label cke_button__{name}_label" aria-hidden="false">{label}</span>' +\r
+               '<span id="{id}_description" class="cke_button_label" aria-hidden="false">{ariaShortcut}</span>' +\r
                '{arrowHtml}' +\r
                '</a>';\r
 \r
@@ -47,7 +49,7 @@
                btnTpl = CKEDITOR.addTemplate( 'button', template );\r
 \r
        CKEDITOR.plugins.add( 'button', {\r
-               lang: 'af,ar,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,eu,fa,fi,fr,gl,he,hu,id,it,ja,km,ko,ku,lt,nb,nl,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,ca,cs,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lt,nb,nl,no,oc,pl,pt,pt-br,ro,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                beforeInit: function( editor ) {\r
                        editor.ui.addHandler( CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler );\r
                }\r
                                stateName = '',\r
                                command = this.command,\r
                                // Get the command name.\r
-                               clickFn;\r
+                               clickFn,\r
+                               keystroke,\r
+                               shortcut;\r
 \r
                        this._.editor = editor;\r
 \r
                                }\r
                                instance.execute();\r
 \r
-                               // Fixed iOS focus issue when your press disabled button (#12381).\r
+                               // Fixed iOS focus issue when your press disabled button (http://dev.ckeditor.com/ticket/12381).\r
                                if ( env.iOS ) {\r
                                        editor.focus();\r
                                }\r
                                }, this );\r
                        }\r
 \r
-                       if ( !command )\r
+                       if ( !command ) {\r
                                stateName += 'off';\r
+                       } else {\r
+                               keystroke = editor.getCommandKeystroke( command );\r
+\r
+                               if ( keystroke ) {\r
+                                       shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke );\r
+                               }\r
+                       }\r
 \r
                        var name = this.name || this.command,\r
                                iconName = name;\r
 \r
-                       // Check if we're pointing to an icon defined by another command. (#9555)\r
+                       // Check if we're pointing to an icon defined by another command. (http://dev.ckeditor.com/ticket/9555)\r
                        if ( this.icon && !( /\./ ).test( this.icon ) ) {\r
                                iconName = this.icon;\r
                                this.icon = null;\r
                                cls: this.className || '',\r
                                state: stateName,\r
                                ariaDisabled: stateName == 'disabled' ? 'true' : 'false',\r
-                               title: this.title,\r
+                               title: this.title + ( shortcut ? ' (' + shortcut.display + ')' : '' ),\r
+                               ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '',\r
                                titleJs: env.gecko && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ),\r
                                hasArrow: this.hasArrow ? 'true' : 'false',\r
                                keydownFn: keydownFn,\r
                                        element.removeAttribute( 'aria-disabled' );\r
 \r
                                if ( !this.hasArrow ) {\r
-                                       // Note: aria-pressed attribute should not be added to menuButton instances. (#11331)\r
+                                       // Note: aria-pressed attribute should not be added to menuButton instances. (http://dev.ckeditor.com/ticket/11331)\r
                                        state == CKEDITOR.TRISTATE_ON ?\r
                                                element.setAttribute( 'aria-pressed', true ) :\r
                                                element.removeAttribute( 'aria-pressed' );\r
diff --git a/sources/plugins/clipboard/dev/clipboard.html b/sources/plugins/clipboard/dev/clipboard.html
new file mode 100644 (file)
index 0000000..735d00e
--- /dev/null
@@ -0,0 +1,190 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Clipboard playground &ndash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+       <style>\r
+body {\r
+       margin: 0;\r
+}\r
+\r
+#editables, #console\r
+{\r
+       width: 48%;\r
+}\r
+#editable {\r
+       padding: 5px 10px;\r
+}\r
+\r
+#console {\r
+       position: fixed;\r
+       top: 10px;\r
+       right: 30px;\r
+       height: 500px;\r
+       border: solid 3px #555;\r
+       overflow: auto;\r
+}\r
+#console > p {\r
+       border-bottom: solid 1px #555;\r
+       margin: 0;\r
+       padding: 0 5px;\r
+       background: rgba(0, 0, 0, 0.25);\r
+       transition: background-color 1s;\r
+}\r
+#console > p.old {\r
+       background: rgba(0, 0, 0, 0);\r
+}\r
+#console time, #console .prompt {\r
+       padding: 0 5px;\r
+       display: inline-block;\r
+}\r
+#console time {\r
+       background: #999;\r
+       background: rgba(0, 0, 0, 0.5 );\r
+       color: #FFF;\r
+       margin-left: -5px;\r
+}\r
+#console .prompt {\r
+       background: #DDD;\r
+       background: rgba(0, 0, 0, 0.1 );\r
+       min-width: 200px;\r
+}\r
+.someClass {\r
+       color: blue;\r
+}\r
+.specChar {\r
+       color: #777;\r
+       background-color: #EEE;\r
+       background-color: rgba(0, 0, 0, 0.1);\r
+       font-size: 0.8em;\r
+       border-radius: 2px;\r
+       padding: 1px;\r
+}\r
+       </style>\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               CKEditor Sample &mdash; clipboard plugin playground\r
+       </h1>\r
+       <div id="editables">\r
+               <p>\r
+                       <label for="editor1">\r
+                               Editor 1:</label>\r
+                       <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>\r
+               </p>\r
+               <p>\r
+                       <label for="editor2">\r
+                               Editor 2:</label>\r
+                       <textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is more &lt;strong class="MsoNormal"&gt;sample text&lt;/strong&gt;.&lt;/p&gt;</textarea>\r
+               </p>\r
+               <p>\r
+                       <label for="editor3">\r
+                               Editor 3:</label>\r
+                       <textarea cols="80" id="editor3" name="editor3" rows="10">&lt;p&gt;This editor &lt;strong&gt;forces pasting in text mode&lt;/strong&gt; by listening for "beforePaste" event.&lt;/p&gt;</textarea>\r
+               </p>\r
+               <p>\r
+                       <label for="editor4">\r
+                               Editor 4:</label>\r
+                       <textarea cols="80" id="editor4" name="editor4" rows="10">&lt;p&gt;This editor &lt;strong&gt;forces pasting in text mode&lt;/strong&gt; by "forcePasteAsPlainText" config option.&lt;/p&gt;</textarea>\r
+               </p>\r
+               <p>\r
+                       <label for="editor5">\r
+                               Editor 5:</label>\r
+                       <textarea cols="80" id="editor5" name="editor5" rows="10">Editor with autoParagraphing set to off.</textarea>\r
+               </p>\r
+               <div id="editor6" contenteditable="true" style="font-family: Georgia; font-size: 14px">\r
+                       <h1>Editor 6</h1>\r
+                       <p>Content content content.</p>\r
+                       <p class="someClass">Styled by <code>.someClass</code>.</p>\r
+               </div>\r
+       </div>\r
+       <div id="console">\r
+       </div>\r
+       <script>\r
+( function()\r
+{\r
+       'use strict';\r
+\r
+       var log = window.__log = function( title, msg ) {\r
+               var msgEl = new CKEDITOR.dom.element( 'p' ),\r
+                       consoleEl = CKEDITOR.document.getById( 'console' ),\r
+                       time = new Date().toString().match( /\d\d:\d\d:\d\d/ )[ 0 ],\r
+                       format = function( tpl ) {\r
+                               return tpl.replace( /{time}/g, time ).replace( '{title}', title ).replace( '{msg}', msg || '' );\r
+                       };\r
+\r
+               window.console && console.log && console.log( format( '[{time}] {title}: {msg}' ) );\r
+\r
+               msg = ( msg || '' ).replace( /\r/g, '{\\r}' ).replace( /\n/g, '{\\n}' ).replace( /\t/g, '{\\t}' );\r
+               msg = CKEDITOR.tools.htmlEncode( msg );\r
+               msg = msg.replace( /\{(\\\w)\}/g, '<code class="specChar">$1</code>' );\r
+\r
+               msgEl.setHtml( format( '<time datetime="{time}">{time}</time><span class="prompt">{title}</span> {msg}' ) );\r
+               consoleEl.append( msgEl );\r
+               consoleEl.$.scrollTop = consoleEl.$.scrollHeight;\r
+               setTimeout( function() { msgEl.addClass( 'old' ); }, 250 );\r
+       };\r
+\r
+       var observe = function( editor, num ) {\r
+               var p = 'EDITOR ' + num + ' > ';\r
+\r
+               editor.on( 'paste', function( event ) {\r
+                       log( p + 'paste(prior:-1)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+               }, null, null, -1 );\r
+               editor.on( 'paste', function( event ) {\r
+                       log( p + 'paste(prior:10)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+               } );\r
+               editor.on( 'paste', function( event ) {\r
+                       log( p + 'paste(prior:999)', event.data.type + ' - "' + event.data.dataValue + '"' );\r
+               }, null, null, 999 );\r
+               editor.on( 'beforePaste', function( event ) {\r
+                       log( p + 'beforePaste', event.data.type );\r
+               } );\r
+               editor.on( 'beforePaste', function( event ) {\r
+                       log( p + 'beforePaste(prior:999)', event.data.type );\r
+               }, null, null, 999 );\r
+               editor.on( 'afterPaste', function( event ) {\r
+                       log( p + 'afterPaste' );\r
+               } );\r
+               editor.on( 'copy', function( event ) {\r
+                       log( p + 'copy' );\r
+               } );\r
+               editor.on( 'cut', function( event ) {\r
+                       log( p + 'cut' );\r
+               } );\r
+       };\r
+\r
+       CKEDITOR.disableAutoInline = true;\r
+       var config = {\r
+                       height: 120,\r
+                       toolbar: [ [ 'Source' ] ],\r
+                       allowedContent: true\r
+               },\r
+               editor1 = CKEDITOR.replace( 'editor1', config ),\r
+               editor2 = CKEDITOR.replace( 'editor2', config ),\r
+               editor3 = CKEDITOR.replace( 'editor3', config ),\r
+               editor4 = CKEDITOR.replace( 'editor4', CKEDITOR.tools.extend( { forcePasteAsPlainText: true }, config ) ),\r
+               editor5 = CKEDITOR.replace( 'editor5', CKEDITOR.tools.extend( { autoParagraph: false }, config ) ),\r
+               editor6 = CKEDITOR.inline( document.getElementById( 'editor6' ), config );\r
+\r
+       editor3.on( 'beforePaste', function( evt ) {\r
+               evt.data.type = 'text';\r
+       } );\r
+\r
+       observe( editor1, 1 );\r
+       observe( editor2, 2 );\r
+       observe( editor3, 3 );\r
+       observe( editor4, 4 );\r
+       observe( editor5, 5 );\r
+       observe( editor6, 6 );\r
+\r
+})();\r
+       </script>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/clipboard/dev/console.js b/sources/plugins/clipboard/dev/console.js
new file mode 100644 (file)
index 0000000..96ccd81
--- /dev/null
@@ -0,0 +1,49 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/* global CKCONSOLE */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+       var pasteType, pasteValue;\r
+\r
+       CKCONSOLE.add( 'paste', {\r
+               panels: [\r
+                       {\r
+                               type: 'box',\r
+                               content:\r
+                               '<ul class="ckconsole_list">' +\r
+                                       '<li>type: <span class="ckconsole_value" data-value="type"></span></li>' +\r
+                                       '<li>value: <span class="ckconsole_value" data-value="value"></span></li>' +\r
+                               '</ul>',\r
+\r
+                               refresh: function() {\r
+                                       return {\r
+                                               header: 'Paste',\r
+                                               type: pasteType,\r
+                                               value: pasteValue\r
+                                       };\r
+                               },\r
+\r
+                               refreshOn: function( editor, refresh ) {\r
+                                       editor.on( 'paste', function( evt ) {\r
+                                               pasteType = evt.data.type;\r
+                                               pasteValue = CKEDITOR.tools.htmlEncode( evt.data.dataValue );\r
+                                               refresh();\r
+                                       } );\r
+                               }\r
+                       },\r
+                       {\r
+                               type: 'log',\r
+                               on: function( editor, log, logFn ) {\r
+                                       editor.on( 'paste', function( evt ) {\r
+                                               logFn( 'paste; type:' + evt.data.type )();\r
+                                       } );\r
+                               }\r
+                       }\r
+               ]\r
+       } );\r
+} )();\r
diff --git a/sources/plugins/clipboard/dev/dnd.html b/sources/plugins/clipboard/dev/dnd.html
new file mode 100644 (file)
index 0000000..c45475b
--- /dev/null
@@ -0,0 +1,185 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Manual test for http://dev.ckeditor.com/ticket/11460</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <script src="../../../dev/console/console.js"></script>\r
+       <script src="../../../plugins/clipboard/dev/console.js"></script>\r
+       <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+       <style type="text/css">\r
+       h2 {\r
+               margin: 10px 0px 4px 0px;\r
+               padding: 0;\r
+               font-size: 14px;\r
+       }\r
+       h3 {\r
+               margin: 5px 0px 2px 0px;\r
+               padding: 0;\r
+               font-size: 12px;\r
+       }\r
+       </style>\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               Manual test for #11460\r
+       </h1>\r
+       <h2>Description (<a href="javascript:hideshow('description');">hide/show</a>)</h2>\r
+       <div id="description" class="description">\r
+               <p>Test internal D&amp;D in the editor, dropping content from an external source (helpers, MS Word) and D&amp;D between editors. Keep in mind that internal D&amp;D is the most complex operation because editor have to handle two ranges at the same time.</p>\r
+               <h3>Expected behavior:</h3>\r
+               <ul>\r
+                       <li>proper drop position,</li>\r
+                       <li>in the internal and cross editor D&amp;D: dragged content should be removed,</li>\r
+                       <li>dropped content should be (more less) the same as dragged content,</li>\r
+                       <li>paste event should be fired,</li>\r
+                       <li>undo should work properly (one undo operation for one D&amp;D),</li>\r
+                       <li>no crashes, nor errors,</li>\r
+               </ul>\r
+               <h3>Drag scenarios:</h3>\r
+               <ul>\r
+                       <li>drag simple text,</li>\r
+                       <li>drag table cell/cells,</li>\r
+                       <li>drag link,</li>\r
+                       <li>drag helpers textarea content,</li>\r
+                       <li>drag helpers html content,</li>\r
+                       <li>drag content from MS Word.</li>\r
+               </ul>\r
+               <h3>Drop scenarios:</h3>\r
+               <ul>\r
+                       <li>drop in the different paragraph (before and after),</li>\r
+                       <li>drop in the same paragraph (before and after),</li>\r
+                       <li>drop in the same text node (before and after),</li>\r
+                       <li>drop between text lines,</li>\r
+                       <li>drop on the whitespace next to the header,</li>\r
+                       <li>drop on the whitespace on the left side from the quote,</li>\r
+                       <li>drop into a cell.</li>\r
+               </ul>\r
+               <h3>Known issues (not part of this ticket):</h3>\r
+               <ul>\r
+                       <li>because of <a href="http://dev.ckeditor.com/ticket/11636">#11636</a> dragged content is not correct in some cases (e.g. when you drag part of the link),</li>\r
+                       <li>drag position needs clean up after D&amp;D (e.g. remove empty paragraphs, fix table),</li>\r
+                       <li>drop position needs clean up after D&amp;D (e.g. add spaces before/after dropped content, apply parents styles, break paragraph when one paragraph is dropped at the end to the other paragraph),</li>\r
+                       <li>in the external D&amp;D: Chrome add plenty of addition tags.</li>\r
+               </ul>\r
+       </div>\r
+       <div>\r
+               <h2>Helpers (<a href="javascript:hideshow('helpers');">hide/show</a>)</h2>\r
+               <div id="helpers">\r
+                       <textarea style="width:49%; height:50px; float: left;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. In commodo vulputate tempor. Sed <b>at</b> elit.</textarea>\r
+                       <div style="width:49%; height:50px; float: right;">\r
+                               Lorem ipsum <b>dolor</b> sit <i>amet</i>, consectetur adipiscing elit. In commodo vulputate tempor. Sed &lt;b&gt;at elit&lt;/b&gt; vel ligula mollis aliquet a ac odio.\r
+                               <pre>\r
+Aenean cursus egestas ipsum.\r
+                               </pre>\r
+                       </div>\r
+                       <div style="clear:both;"></div>\r
+               </div>\r
+       </div>\r
+       <div>\r
+               <h2>Classic editor (<a href="javascript:hideshow('classic-editor');">hide/show</a>)</h2>\r
+               <div id="classic-editor">\r
+                       <textarea cols="80" id="classic" name="classic" rows="10">\r
+                               &lt;h1&gt;&lt;img alt=&quot;Saturn V carrying Apollo 11&quot; class=&quot;right&quot; src=&quot;../../../samples/assets/sample.jpg&quot;/&gt; Apollo 11&lt;/h1&gt; &lt;p&gt;&lt;b&gt;Apollo 11&lt;/b&gt; was the spaceflight that landed the first humans, Americans &lt;a href=&quot;http://en.wikipedia.org/wiki/Neil_Armstrong&quot; title=&quot;Neil Armstrong&quot;&gt;Neil Armstrong&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Buzz_Aldrin&quot; title=&quot;Buzz Aldrin&quot;&gt;Buzz Aldrin&lt;/a&gt;, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.&lt;/p&gt; &lt;p&gt;Armstrong spent about &lt;s&gt;three and a half&lt;/s&gt; two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&amp;nbsp;kg) of lunar material for return to Earth. A third member of the mission, &lt;a href=&quot;http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)&quot; title=&quot;Michael Collins (astronaut)&quot;&gt;Michael Collins&lt;/a&gt;, piloted the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_Command/Service_Module&quot; title=&quot;Apollo Command/Service Module&quot;&gt;command&lt;/a&gt; spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.&lt;/p&gt; &lt;h2&gt;Broadcasting and &lt;em&gt;quotes&lt;/em&gt; &lt;a id=&quot;quotes&quot; name=&quot;quotes&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;p&gt;Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;One small step for [a] man, one giant leap for mankind.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Apollo 11 effectively ended the &lt;a href=&quot;http://en.wikipedia.org/wiki/Space_Race&quot; title=&quot;Space Race&quot;&gt;Space Race&lt;/a&gt; and fulfilled a national goal proposed in 1961 by the late U.S. President &lt;a href=&quot;http://en.wikipedia.org/wiki/John_F._Kennedy&quot; title=&quot;John F. Kennedy&quot;&gt;John F. Kennedy&lt;/a&gt; in a speech before the United States Congress:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.&lt;/p&gt;&lt;/blockquote&gt; &lt;h2&gt;Technical details &lt;a id=&quot;tech-details&quot; name=&quot;tech-details&quot;&gt;&lt;/a&gt;&lt;/h2&gt; &lt;table align=&quot;right&quot; border=&quot;1&quot; bordercolor=&quot;#ccc&quot; cellpadding=&quot;5&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse:collapse;margin:10px 0 10px 15px;&quot;&gt; &lt;caption&gt;&lt;strong&gt;Mission crew&lt;/strong&gt;&lt;/caption&gt; &lt;thead&gt; &lt;tr&gt; &lt;th scope=&quot;col&quot;&gt;Position&lt;/th&gt; &lt;th scope=&quot;col&quot;&gt;Astronaut&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Commander&lt;/td&gt; &lt;td&gt;Neil A. Armstrong&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Command Module Pilot&lt;/td&gt; &lt;td&gt;Michael Collins&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Lunar Module Pilot&lt;/td&gt; &lt;td&gt;Edwin &amp;quot;Buzz&amp;quot; E. Aldrin, Jr.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt;Launched by a &lt;strong&gt;Saturn V&lt;/strong&gt; rocket from &lt;a href=&quot;http://en.wikipedia.org/wiki/Kennedy_Space_Center&quot; title=&quot;Kennedy Space Center&quot;&gt;Kennedy Space Center&lt;/a&gt; in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of &lt;a href=&quot;http://en.wikipedia.org/wiki/NASA&quot; title=&quot;NASA&quot;&gt;NASA&lt;/a&gt;&amp;#39;s Apollo program. The Apollo spacecraft had three parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Command Module&lt;/strong&gt; with a cabin for the three astronauts which was the only part which landed back on Earth&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Service Module&lt;/strong&gt; which supported the Command Module with propulsion, electrical power, oxygen and water&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Lunar Module&lt;/strong&gt; for landing on the Moon.&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;After being sent to the Moon by the Saturn V&amp;#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Mare_Tranquillitatis&quot; title=&quot;Mare Tranquillitatis&quot;&gt;Sea of Tranquility&lt;/a&gt;. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Pacific_Ocean&quot; title=&quot;Pacific Ocean&quot;&gt;Pacific Ocean&lt;/a&gt; on July 24.&lt;/p&gt; &lt;hr/&gt; &lt;p style=&quot;text-align: right;&quot;&gt;&lt;small&gt;Source: &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_11&quot;&gt;Wikipedia.org&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;\r
+                       </textarea>\r
+               </div>\r
+       </div>\r
+       <div>\r
+               <h2>Inline editor (<a href="javascript:hideshow('inline');">hide/show</a>)</h2>\r
+               <div id="inline" contenteditable="true">\r
+                       <h1><img alt="Saturn V carrying Apollo 11" class="right" src="../../../samples/assets/sample.jpg" /> Apollo 11</h1>\r
+\r
+                       <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>\r
+\r
+                       <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+                       <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+                       <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+                       <blockquote>\r
+                               <p>One small step for [a] man, one giant leap for mankind.</p>\r
+                       </blockquote>\r
+\r
+                       <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+                       <blockquote>\r
+                               <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+                       </blockquote>\r
+\r
+                       <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+                       <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;">\r
+                               <caption><strong>Mission crew</strong></caption>\r
+                               <thead>\r
+                               <tr>\r
+                                       <th scope="col">Position</th>\r
+                                       <th scope="col">Astronaut</th>\r
+                               </tr>\r
+                               </thead>\r
+                               <tbody>\r
+                               <tr>\r
+                                       <td>Commander</td>\r
+                                       <td>Neil A. Armstrong</td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td>Command Module Pilot</td>\r
+                                       <td>Michael Collins</td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td>Lunar Module Pilot</td>\r
+                                       <td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td>\r
+                               </tr>\r
+                               </tbody>\r
+                       </table>\r
+\r
+                       <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+                       <ol>\r
+                               <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+                               <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+                               <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+                       </ol>\r
+\r
+                       <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+\r
+                       <hr />\r
+                       <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>\r
+               </div>\r
+       </div>\r
+               <script type="text/javascript">\r
+               CKEDITOR.disableAutoInline = true;\r
+\r
+               function hideshow( id ) {\r
+                       var element = CKEDITOR.document.getById( id );\r
+\r
+                       if( element.getStyle( 'display' ) == 'none' )\r
+                               element.show();\r
+                       else\r
+                               element.hide();\r
+               }\r
+\r
+               CKEDITOR.replace( 'classic' );\r
+               CKEDITOR.inline( 'inline' );\r
+\r
+               CKCONSOLE.addEventPanel( 'dragstart', [ '$', 'target', 'dataTransfer' ] );\r
+               CKCONSOLE.addEventPanel( 'dragend', [ '$', 'target', 'dataTransfer' ]   );\r
+               CKCONSOLE.addEventPanel( 'drop',\r
+                       [ '$', 'target', 'dataTransfer', 'dragRange', 'dropRange' ] );\r
+\r
+               CKCONSOLE.create( 'dragstart', { editor: 'classic' } );\r
+               CKCONSOLE.create( 'drop', { editor: 'classic' } );\r
+               CKCONSOLE.create( 'paste', { editor: 'classic' } );\r
+               CKCONSOLE.create( 'dragend', { editor: 'classic' } );\r
+\r
+               CKCONSOLE.create( 'dragstart', { editor: 'inline' } );\r
+               CKCONSOLE.create( 'drop', { editor: 'inline' } );\r
+               CKCONSOLE.create( 'paste', { editor: 'inline' } );\r
+               CKCONSOLE.create( 'dragend', { editor: 'inline' } );\r
+       </script>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/clipboard/icons/copy-rtl.png b/sources/plugins/clipboard/icons/copy-rtl.png
new file mode 100644 (file)
index 0000000..ce94fc0
Binary files /dev/null and b/sources/plugins/clipboard/icons/copy-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/copy.png b/sources/plugins/clipboard/icons/copy.png
new file mode 100644 (file)
index 0000000..ce94fc0
Binary files /dev/null and b/sources/plugins/clipboard/icons/copy.png differ
diff --git a/sources/plugins/clipboard/icons/cut-rtl.png b/sources/plugins/clipboard/icons/cut-rtl.png
new file mode 100644 (file)
index 0000000..8ae48d9
Binary files /dev/null and b/sources/plugins/clipboard/icons/cut-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/cut.png b/sources/plugins/clipboard/icons/cut.png
new file mode 100644 (file)
index 0000000..8ae48d9
Binary files /dev/null and b/sources/plugins/clipboard/icons/cut.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/copy-rtl.png b/sources/plugins/clipboard/icons/hidpi/copy-rtl.png
new file mode 100644 (file)
index 0000000..74c6765
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/copy-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/copy.png b/sources/plugins/clipboard/icons/hidpi/copy.png
new file mode 100644 (file)
index 0000000..74c6765
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/copy.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/cut-rtl.png b/sources/plugins/clipboard/icons/hidpi/cut-rtl.png
new file mode 100644 (file)
index 0000000..f5a9b0d
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/cut-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/cut.png b/sources/plugins/clipboard/icons/hidpi/cut.png
new file mode 100644 (file)
index 0000000..f5a9b0d
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/cut.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/paste-rtl.png b/sources/plugins/clipboard/icons/hidpi/paste-rtl.png
new file mode 100644 (file)
index 0000000..12cac92
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/paste-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/hidpi/paste.png b/sources/plugins/clipboard/icons/hidpi/paste.png
new file mode 100644 (file)
index 0000000..12cac92
Binary files /dev/null and b/sources/plugins/clipboard/icons/hidpi/paste.png differ
diff --git a/sources/plugins/clipboard/icons/paste-rtl.png b/sources/plugins/clipboard/icons/paste-rtl.png
new file mode 100644 (file)
index 0000000..7039251
Binary files /dev/null and b/sources/plugins/clipboard/icons/paste-rtl.png differ
diff --git a/sources/plugins/clipboard/icons/paste.png b/sources/plugins/clipboard/icons/paste.png
new file mode 100644 (file)
index 0000000..7039251
Binary files /dev/null and b/sources/plugins/clipboard/icons/paste.png differ
diff --git a/sources/plugins/clipboard/lang/af.js b/sources/plugins/clipboard/lang/af.js
new file mode 100644 (file)
index 0000000..5860867
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'af', {\r
+       copy: 'Kopiëer',\r
+       copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).',\r
+       cut: 'Knip',\r
+       cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).',\r
+       paste: 'Plak',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ar.js b/sources/plugins/clipboard/lang/ar.js
new file mode 100644 (file)
index 0000000..6d1a0b0
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ar', {\r
+       copy: 'نسخ',\r
+       copyError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع عمليات النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+C).',\r
+       cut: 'قص',\r
+       cutError: 'الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl/Cmd+X).',\r
+       paste: 'لصق',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/az.js b/sources/plugins/clipboard/lang/az.js
new file mode 100644 (file)
index 0000000..8f60f35
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'az', {\r
+       copy: 'Köçür',\r
+       copyError: 'Avtomatik köçürülməsi mümkün deyil. Ctrl+C basın.',\r
+       cut: 'Kəs',\r
+       cutError: 'Avtomatik kəsmə mümkün deyil. Ctrl+X basın.',\r
+       paste: 'Əlavə et',\r
+       pasteNotification: 'Sizin İnternet bələdçisi bu cür mətnin köçürməsi dəstəklənmir. Əlavə etmək üçün %1 basın.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/bg.js b/sources/plugins/clipboard/lang/bg.js
new file mode 100644 (file)
index 0000000..2d8eede
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bg', {\r
+       copy: 'Копирай',\r
+       copyError: 'Настройките за сигурност на вашия бразуър не разрешават на редактора да изпълни запаметяването. За целта използвайте клавиатурата (Ctrl/Cmd+C).',\r
+       cut: 'Отрежи',\r
+       cutError: 'Настройките за сигурност на Вашия браузър не позволяват на редактора автоматично да изъплни действията за отрязване. Моля ползвайте клавиатурните команди за целта (ctrl+x).',\r
+       paste: 'Вмъкни',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/bn.js b/sources/plugins/clipboard/lang/bn.js
new file mode 100644 (file)
index 0000000..1d0922a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bn', {\r
+       copy: 'কপি',\r
+       copyError: 'আপনার ব্রাউজারের নিরাপত্তা সেটিংসমূহ এডিটরকে স্বয়ংক্রিয়ভাবে কপি করার প্রক্রিয়া চালনা করার অনুমতি দেয় না। অনুগ্রহপূর্বক এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+C)।',\r
+       cut: 'কাট',\r
+       cutError: 'আপনার ব্রাউজারের সুরক্ষা সেটিংস এডিটরকে অটোমেটিক কাট করার অনুমতি দেয়নি। দয়া করে এই কাজের জন্য কিবোর্ড ব্যবহার করুন (Ctrl/Cmd+X)।',\r
+       paste: 'পেস্ট',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/bs.js b/sources/plugins/clipboard/lang/bs.js
new file mode 100644 (file)
index 0000000..62f3f1b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'bs', {\r
+       copy: 'Kopiraj',\r
+       copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',\r
+       cut: 'Izreži',\r
+       cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',\r
+       paste: 'Zalijepi',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ca.js b/sources/plugins/clipboard/lang/ca.js
new file mode 100644 (file)
index 0000000..6cd3b58
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ca', {\r
+       copy: 'Copiar',\r
+       copyError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+C).',\r
+       cut: 'Retallar',\r
+       cutError: 'La configuració de seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl/Cmd+X).',\r
+       paste: 'Enganxar',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/cs.js b/sources/plugins/clipboard/lang/cs.js
new file mode 100644 (file)
index 0000000..4cbf3b4
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'cs', {\r
+       copy: 'Kopírovat',\r
+       copyError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+C).',\r
+       cut: 'Vyjmout',\r
+       cutError: 'Bezpečnostní nastavení vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl/Cmd+X).',\r
+       paste: 'Vložit',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/cy.js b/sources/plugins/clipboard/lang/cy.js
new file mode 100644 (file)
index 0000000..e854e13
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'cy', {\r
+       copy: 'Copïo',\r
+       copyError: '\'Dyw gosodiadau diogelwch eich porwr ddim yn caniatàu\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).',\r
+       cut: 'Torri',\r
+       cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatàu\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).',\r
+       paste: 'Gludo',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/da.js b/sources/plugins/clipboard/lang/da.js
new file mode 100644 (file)
index 0000000..257c9d4
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'da', {\r
+       copy: 'Kopiér',\r
+       copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',\r
+       cut: 'Klip',\r
+       cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',\r
+       paste: 'Indsæt',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/de-ch.js b/sources/plugins/clipboard/lang/de-ch.js
new file mode 100644 (file)
index 0000000..e3b9ead
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'de-ch', {\r
+       copy: 'Kopieren',\r
+       copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',\r
+       cut: 'Ausschneiden',\r
+       cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',\r
+       paste: 'Einfügen',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/de.js b/sources/plugins/clipboard/lang/de.js
new file mode 100644 (file)
index 0000000..5244081
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'de', {\r
+       copy: 'Kopieren',\r
+       copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',\r
+       cut: 'Ausschneiden',\r
+       cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',\r
+       paste: 'Einfügen',\r
+       pasteNotification: 'Ihr Browser verhindert das Einfügen über diesen Weg. Zum einfügen drücken Sie %1.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/el.js b/sources/plugins/clipboard/lang/el.js
new file mode 100644 (file)
index 0000000..4ee396b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'el', {\r
+       copy: 'Αντιγραφή',\r
+       copyError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αντιγραφής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+C).',\r
+       cut: 'Αποκοπή',\r
+       cutError: 'Οι ρυθμίσεις ασφαλείας του περιηγητή σας δεν επιτρέπουν την επιλεγμένη εργασία αποκοπής. Παρακαλώ χρησιμοποιείστε το πληκτρολόγιο (Ctrl/Cmd+X).',\r
+       paste: 'Επικόλληση',\r
+       pasteNotification: 'Ο περιηγητής σας δεν σας επιτρέπει να επικολλήσετε με αυτόν τον τρόπο. Πατήστε %1 για επικόλληση.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/en-au.js b/sources/plugins/clipboard/lang/en-au.js
new file mode 100644 (file)
index 0000000..018a754
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-au', {\r
+       copy: 'Copy',\r
+       copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+       cut: 'Cut',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+       paste: 'Paste',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/en-ca.js b/sources/plugins/clipboard/lang/en-ca.js
new file mode 100644 (file)
index 0000000..fd76ba7
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', {\r
+       copy: 'Copy',\r
+       copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+       cut: 'Cut',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+       paste: 'Paste',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/en-gb.js b/sources/plugins/clipboard/lang/en-gb.js
new file mode 100644 (file)
index 0000000..fb6aa2e
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', {\r
+       copy: 'Copy',\r
+       copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+       cut: 'Cut',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+       paste: 'Paste',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/en.js b/sources/plugins/clipboard/lang/en.js
new file mode 100644 (file)
index 0000000..5d81cc0
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'en', {\r
+       copy: 'Copy',\r
+       copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',\r
+       cut: 'Cut',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',\r
+       paste: 'Paste',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/eo.js b/sources/plugins/clipboard/lang/eo.js
new file mode 100644 (file)
index 0000000..3a01213
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'eo', {\r
+       copy: 'Kopii',\r
+       copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',\r
+       cut: 'Eltondi',\r
+       cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',\r
+       paste: 'Interglui',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/es-mx.js b/sources/plugins/clipboard/lang/es-mx.js
new file mode 100644 (file)
index 0000000..f4a1be2
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'es-mx', {\r
+       copy: 'Copiar',\r
+       copyError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de copiado. Por favor, utilice el teclado para (Ctrl/Cmd+C).',\r
+       cut: 'Cortar',\r
+       cutError: 'La configuración de seguridad de su navegador no permite al editor ejecutar automáticamente operaciones de corte. Por favor, utilice el teclado para (Ctrl/Cmd+X).',\r
+       paste: 'Pegar',\r
+       pasteNotification: 'Tu navegador no permite pegar de esta manera. Presiona %1 para pegar.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/es.js b/sources/plugins/clipboard/lang/es.js
new file mode 100644 (file)
index 0000000..741d912
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'es', {\r
+       copy: 'Copiar',\r
+       copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',\r
+       cut: 'Cortar',\r
+       cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',\r
+       paste: 'Pegar',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/et.js b/sources/plugins/clipboard/lang/et.js
new file mode 100644 (file)
index 0000000..106ca61
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'et', {\r
+       copy: 'Kopeeri',\r
+       copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',\r
+       cut: 'Lõika',\r
+       cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',\r
+       paste: 'Aseta',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/eu.js b/sources/plugins/clipboard/lang/eu.js
new file mode 100644 (file)
index 0000000..140fcb8
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'eu', {\r
+       copy: 'Kopiatu',\r
+       copyError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki kopiatzea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+C).',\r
+       cut: 'Ebaki',\r
+       cutError: 'Zure web nabigatzailearen segurtasun ezarpenek ez dute baimentzen testuak automatikoki moztea. Mesedez teklatua erabil ezazu (Ctrl/Cmd+X).',\r
+       paste: 'Itsatsi',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/fa.js b/sources/plugins/clipboard/lang/fa.js
new file mode 100644 (file)
index 0000000..8dca4b3
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fa', {\r
+       copy: 'رونوشت',\r
+       copyError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای کپی کردن را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+C).',\r
+       cut: 'برش',\r
+       cutError: 'تنظیمات امنیتی مرورگر شما اجازه نمیدهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمههای صفحه کلید این کار را انجام دهید (Ctrl/Cmd+X).',\r
+       paste: 'چسباندن',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/fi.js b/sources/plugins/clipboard/lang/fi.js
new file mode 100644 (file)
index 0000000..b2db77a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fi', {\r
+       copy: 'Kopioi',\r
+       copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',\r
+       cut: 'Leikkaa',\r
+       cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',\r
+       paste: 'Liitä',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/fo.js b/sources/plugins/clipboard/lang/fo.js
new file mode 100644 (file)
index 0000000..8485ef3
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fo', {\r
+       copy: 'Avrita',\r
+       copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',\r
+       cut: 'Kvett',\r
+       cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',\r
+       paste: 'Innrita',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/fr-ca.js b/sources/plugins/clipboard/lang/fr-ca.js
new file mode 100644 (file)
index 0000000..1a2dd3d
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', {\r
+       copy: 'Copier',\r
+       copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).',\r
+       cut: 'Couper',\r
+       cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).',\r
+       paste: 'Coller',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/fr.js b/sources/plugins/clipboard/lang/fr.js
new file mode 100644 (file)
index 0000000..054d055
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'fr', {\r
+       copy: 'Copier',\r
+       copyError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).',\r
+       cut: 'Couper',\r
+       cutError: 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).',\r
+       paste: 'Coller',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/gl.js b/sources/plugins/clipboard/lang/gl.js
new file mode 100644 (file)
index 0000000..5b4fd1a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'gl', {\r
+       copy: 'Copiar',\r
+       copyError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de copia. Use o teclado para iso (Ctrl/Cmd+C).',\r
+       cut: 'Cortar',\r
+       cutError: 'Os axustes de seguranza do seu navegador non permiten que o editor realice automaticamente as tarefas de corte. Use o teclado para iso (Ctrl/Cmd+X).',\r
+       paste: 'Pegar',\r
+       pasteNotification: 'O seu navegador non permite pegar deste xeito. Prema %1 para pegar.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/gu.js b/sources/plugins/clipboard/lang/gu.js
new file mode 100644 (file)
index 0000000..aeac560
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'gu', {\r
+       copy: 'નકલ',\r
+       copyError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી.  (Ctrl/Cmd+C) का प्रयोग करें।',\r
+       cut: 'કાપવું',\r
+       cutError: 'તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl/Cmd+X) નો ઉપયોગ કરો.',\r
+       paste: 'પેસ્ટ',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/he.js b/sources/plugins/clipboard/lang/he.js
new file mode 100644 (file)
index 0000000..460b9c6
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'he', {\r
+       copy: 'העתקה',\r
+       copyError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+C).',\r
+       cut: 'גזירה',\r
+       cutError: 'הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl/Cmd+X).',\r
+       paste: 'הדבקה',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/hi.js b/sources/plugins/clipboard/lang/hi.js
new file mode 100644 (file)
index 0000000..112853c
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hi', {\r
+       copy: 'कॉपी',\r
+       copyError: 'आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+C) का प्रयोग करें।',\r
+       cut: 'कट',\r
+       cutError: 'आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl/Cmd+X) का प्रयोग करें।',\r
+       paste: 'पेस्ट',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/hr.js b/sources/plugins/clipboard/lang/hr.js
new file mode 100644 (file)
index 0000000..4eff9ce
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hr', {\r
+       copy: 'Kopiraj',\r
+       copyError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',\r
+       cut: 'Izreži',\r
+       cutError: 'Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',\r
+       paste: 'Zalijepi',\r
+       pasteNotification: 'Vaš preglednik Vam ne dozvoljava lijepljenje na ovaj način. Za lijepljenje, pritisnite %1.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/hu.js b/sources/plugins/clipboard/lang/hu.js
new file mode 100644 (file)
index 0000000..646fb15
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'hu', {\r
+       copy: 'Másolás',\r
+       copyError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',\r
+       cut: 'Kivágás',\r
+       cutError: 'A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',\r
+       paste: 'Beillesztés',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/id.js b/sources/plugins/clipboard/lang/id.js
new file mode 100644 (file)
index 0000000..b68425f
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'id', {\r
+       copy: 'Salin',\r
+       copyError: 'Pengaturan keamanan peramban anda tidak mengizinkan editor untuk mengeksekusi operasi menyalin secara otomatis. Mohon gunakan papan tuts (Ctrl/Cmd+C)',\r
+       cut: 'Potong',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING\r
+       paste: 'Tempel',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/is.js b/sources/plugins/clipboard/lang/is.js
new file mode 100644 (file)
index 0000000..32a0fce
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'is', {\r
+       copy: 'Afrita',\r
+       copyError: 'Öryggisstillingar vafrans þíns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið í afrita (Ctrl/Cmd+C).',\r
+       cut: 'Klippa',\r
+       cutError: 'Öryggisstillingar vafrans þíns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið í klippa (Ctrl/Cmd+X).',\r
+       paste: 'Líma',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/it.js b/sources/plugins/clipboard/lang/it.js
new file mode 100644 (file)
index 0000000..46e015c
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'it', {\r
+       copy: 'Copia',\r
+       copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',\r
+       cut: 'Taglia',\r
+       cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).',\r
+       paste: 'Incolla',\r
+       pasteNotification: 'Il browser non permette di incollare in questo modo. Premere %1 per incollare.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ja.js b/sources/plugins/clipboard/lang/ja.js
new file mode 100644 (file)
index 0000000..f527e7c
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ja', {\r
+       copy: 'コピー',\r
+       copyError: 'ブラウザーのセキュリティ設定によりエディタのコピー操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+C)を使用してください。',\r
+       cut: '切り取り',\r
+       cutError: 'ブラウザーのセキュリティ設定によりエディタの切り取り操作を自動で実行することができません。実行するには手動でキーボードの(Ctrl/Cmd+X)を使用してください。',\r
+       paste: '貼り付け',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ka.js b/sources/plugins/clipboard/lang/ka.js
new file mode 100644 (file)
index 0000000..2fa9e23
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ka', {\r
+       copy: 'ასლი',\r
+       copyError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ასლის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+C).',\r
+       cut: 'ამოჭრა',\r
+       cutError: 'თქვენი ბროუზერის უსაფრთხოების პარამეტრები არ იძლევა ამოჭრის ოპერაციის ავტომატურად განხორციელების საშუალებას. გამოიყენეთ კლავიატურა ამისთვის (Ctrl/Cmd+X).',\r
+       paste: 'ჩასმა',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/km.js b/sources/plugins/clipboard/lang/km.js
new file mode 100644 (file)
index 0000000..dc66ee8
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'km', {\r
+       copy: 'ចម្លង',\r
+       copyError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ ចំលងអត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ (Ctrl/Cmd+C)។',\r
+       cut: 'កាត់យក',\r
+       cutError: 'ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​មិនអាចធ្វើកម្មវិធីតាក់តែងអត្ថបទ កាត់អត្ថបទយកដោយស្វ័យប្រវត្តបានឡើយ ។ សូមប្រើប្រាស់បន្សំ ឃីដូចនេះ  (Ctrl/Cmd+X) ។',\r
+       paste: 'បិទ​ភ្ជាប់',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ko.js b/sources/plugins/clipboard/lang/ko.js
new file mode 100644 (file)
index 0000000..8472358
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ko', {\r
+       copy: '복사',\r
+       copyError: '브라우저의 보안설정 때문에 복사할 수 없습니다. 키보드(Ctrl/Cmd+C)를 이용해서 복사하십시오.',\r
+       cut: '잘라내기',\r
+       cutError: '브라우저의 보안설정 때문에 잘라내기 기능을 실행할 수 없습니다. 키보드(Ctrl/Cmd+X)를 이용해서 잘라내기 하십시오',\r
+       paste: '붙여넣기',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ku.js b/sources/plugins/clipboard/lang/ku.js
new file mode 100644 (file)
index 0000000..b87aa8b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ku', {\r
+       copy: 'لەبەرگرتنەوە',\r
+       copyError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بەسەرنووسەکە لە لکاندنی دەقی خۆکارارنە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+C).',\r
+       cut: 'بڕین',\r
+       cutError: 'پارێزی وێبگەڕەکەت ڕێگەنادات بە سەرنووسەکە لەبڕینی خۆکارانە. تکایە لەبری ئەمە ئەم فەرمانە بەکاربهێنە بەداگرتنی کلیلی (Ctrl/Cmd+X).',\r
+       paste: 'لکاندن',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/lt.js b/sources/plugins/clipboard/lang/lt.js
new file mode 100644 (file)
index 0000000..c8d3611
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'lt', {\r
+       copy: 'Kopijuoti',\r
+       copyError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+C).',\r
+       cut: 'Iškirpti',\r
+       cutError: 'Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl/Cmd+X).',\r
+       paste: 'Įdėti',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/lv.js b/sources/plugins/clipboard/lang/lv.js
new file mode 100644 (file)
index 0000000..49775de
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'lv', {\r
+       copy: 'Kopēt',\r
+       copyError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt kopēšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+C), lai veiktu šo darbību.',\r
+       cut: 'Izgriezt',\r
+       cutError: 'Jūsu pārlūkprogrammas drošības iestatījumi nepieļauj redaktoram automātiski veikt izgriezšanas darbību.  Lūdzu, izmantojiet (Ctrl/Cmd+X), lai veiktu šo darbību.',\r
+       paste: 'Ielīmēt',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/mk.js b/sources/plugins/clipboard/lang/mk.js
new file mode 100644 (file)
index 0000000..07a3d56
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'mk', {\r
+       copy: 'Копирај (Copy)',\r
+       copyError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши копирање. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)',\r
+       cut: 'Исечи (Cut)',\r
+       cutError: 'Опциите за безбедност на вашиот прелистувач не дозволуваат уредувачот автоматски да изврши сечење. Ве молиме употребете ја тастатурата. (Ctrl/Cmd+C)',\r
+       paste: 'Залепи (Paste)',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/mn.js b/sources/plugins/clipboard/lang/mn.js
new file mode 100644 (file)
index 0000000..3ba66f5
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'mn', {\r
+       copy: 'Хуулах',\r
+       copyError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хуулах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+C) товчны хослолыг ашиглана уу.',\r
+       cut: 'Хайчлах',\r
+       cutError: 'Таны browser-ын хамгаалалтын тохиргоо editor-д автоматаар хайчлах үйлдэлийг зөвшөөрөхгүй байна. (Ctrl/Cmd+X) товчны хослолыг ашиглана уу.',\r
+       paste: 'Буулгах',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ms.js b/sources/plugins/clipboard/lang/ms.js
new file mode 100644 (file)
index 0000000..b9e479a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ms', {\r
+       copy: 'Salin',\r
+       copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',\r
+       cut: 'Potong',\r
+       cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',\r
+       paste: 'Tampal',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/nb.js b/sources/plugins/clipboard/lang/nb.js
new file mode 100644 (file)
index 0000000..bdf1563
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'nb', {\r
+       copy: 'Kopier',\r
+       copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+C).',\r
+       cut: 'Klipp ut',\r
+       cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk tastatursnarveien (Ctrl/Cmd+X).',\r
+       paste: 'Lim inn',\r
+       pasteNotification: 'Nettleseren din lar deg ikke lime inn på denne måten. Trykk %1 for å lime inn.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/nl.js b/sources/plugins/clipboard/lang/nl.js
new file mode 100644 (file)
index 0000000..16bafd8
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'nl', {\r
+       copy: 'Kopiëren',\r
+       copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.',\r
+       cut: 'Knippen',\r
+       cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',\r
+       paste: 'Plakken',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/no.js b/sources/plugins/clipboard/lang/no.js
new file mode 100644 (file)
index 0000000..77ff08a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'no', {\r
+       copy: 'Kopier',\r
+       copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).',\r
+       cut: 'Klipp ut',\r
+       cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).',\r
+       paste: 'Lim inn',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/oc.js b/sources/plugins/clipboard/lang/oc.js
new file mode 100644 (file)
index 0000000..40d99fa
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'oc', {\r
+       copy: 'Copiar',\r
+       copyError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Copiar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+C).',\r
+       cut: 'Talhar',\r
+       cutError: 'Los paramètres de seguretat de vòstre navigador autorizan pas l\'editor a executar automaticament l\'operacion « Talhar ». Utilizatz l\'acorchi de clavièr a aqueste efièit (Ctrl/Cmd+X).',\r
+       paste: 'Pegar',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/pl.js b/sources/plugins/clipboard/lang/pl.js
new file mode 100644 (file)
index 0000000..494c9c1
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pl', {\r
+       copy: 'Kopiuj',\r
+       copyError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',\r
+       cut: 'Wytnij',\r
+       cutError: 'Ustawienia bezpieczeństwa Twojej przeglądarki nie pozwalają na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',\r
+       paste: 'Wklej',\r
+       pasteNotification: 'Twoja przeglądarka nie pozwala na wklejanie treści w ten sposób. Naciśnij %1 by wkleić tekst.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/pt-br.js b/sources/plugins/clipboard/lang/pt-br.js
new file mode 100644 (file)
index 0000000..e0359d9
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', {\r
+       copy: 'Copiar',\r
+       copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',\r
+       cut: 'Recortar',\r
+       cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',\r
+       paste: 'Colar',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/pt.js b/sources/plugins/clipboard/lang/pt.js
new file mode 100644 (file)
index 0000000..6a6df67
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'pt', {\r
+       copy: 'Copiar',\r
+       copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',\r
+       cut: 'Cortar',\r
+       cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',\r
+       paste: 'Colar',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ro.js b/sources/plugins/clipboard/lang/ro.js
new file mode 100644 (file)
index 0000000..4eb472a
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ro', {\r
+       copy: 'Copiază',\r
+       copyError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de copiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+C).',\r
+       cut: 'Taie',\r
+       cutError: 'Setările de securitate ale navigatorului (browser) pe care îl folosiţi nu permit editorului să execute automat operaţiunea de tăiere. Vă rugăm folosiţi tastatura (Ctrl/Cmd+X).',\r
+       paste: 'Adaugă',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ru.js b/sources/plugins/clipboard/lang/ru.js
new file mode 100644 (file)
index 0000000..9ef951f
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ru', {\r
+       copy: 'Копировать',\r
+       copyError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).',\r
+       cut: 'Вырезать',\r
+       cutError: 'Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).',\r
+       paste: 'Вставить',\r
+       pasteNotification: 'Ваш браузер не поддерживает данный метод вставки. Для вставки нажмите %1'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/si.js b/sources/plugins/clipboard/lang/si.js
new file mode 100644 (file)
index 0000000..7356cf4
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'si', {\r
+       copy: 'පිටපත් කරන්න',\r
+       copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING\r
+       cut: 'කපාගන්න',\r
+       cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING\r
+       paste: 'අලවන්න',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sk.js b/sources/plugins/clipboard/lang/sk.js
new file mode 100644 (file)
index 0000000..b844e58
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sk', {\r
+       copy: 'Kopírovať',\r
+       copyError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu kopírovania. Použite na to klávesnicu (Ctrl/Cmd+C).',\r
+       cut: 'Vystrihnúť',\r
+       cutError: 'Bezpečnostné nastavenia vášho prehliadača nedovoľujú editoru automaticky spustiť operáciu vystrihnutia. Použite na to klávesnicu (Ctrl/Cmd+X).',\r
+       paste: 'Vložiť',\r
+       pasteNotification: 'Váš prehliadač nepovoľuje prilepiť text takýmto spôsobom. Pre prilepenie stlačte %1.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sl.js b/sources/plugins/clipboard/lang/sl.js
new file mode 100644 (file)
index 0000000..787e6fc
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sl', {\r
+       copy: 'Kopiraj',\r
+       copyError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',\r
+       cut: 'Izreži',\r
+       cutError: 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',\r
+       paste: 'Prilepi',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sq.js b/sources/plugins/clipboard/lang/sq.js
new file mode 100644 (file)
index 0000000..d78b2e7
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sq', {\r
+       copy: 'Kopjo',\r
+       copyError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e kopjimit. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+C).',\r
+       cut: 'Preje',\r
+       cutError: 'Të dhënat e sigurisë së shfletuesit tuaj nuk lejojnë që redaktuesi automatikisht të kryej veprimin e prerjes. Ju lutemi shfrytëzoni tastierën për këtë veprim (Ctrl/Cmd+X).',\r
+       paste: 'Hidhe',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sr-latn.js b/sources/plugins/clipboard/lang/sr-latn.js
new file mode 100644 (file)
index 0000000..797429f
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', {\r
+       copy: 'Kopiraj',\r
+       copyError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+C).',\r
+       cut: 'Iseci',\r
+       cutError: 'Sigurnosna podešavanja Vašeg pretraživača ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite prečicu sa tastature (Ctrl/Cmd+X).',\r
+       paste: 'Zalepi',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sr.js b/sources/plugins/clipboard/lang/sr.js
new file mode 100644 (file)
index 0000000..bd4e655
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sr', {\r
+       copy: 'Копирај',\r
+       copyError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског копирања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+C).',\r
+       cut: 'Исеци',\r
+       cutError: 'Сигурносна подешавања Вашег претраживача не дозвољавају операције аутоматског исецања текста. Молимо Вас да користите пречицу са тастатуре (Ctrl/Cmd+X).',\r
+       paste: 'Залепи',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/sv.js b/sources/plugins/clipboard/lang/sv.js
new file mode 100644 (file)
index 0000000..d1ab00b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'sv', {\r
+       copy: 'Kopiera',\r
+       copyError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden kopiera. Använd (Ctrl/Cmd+C) istället.',\r
+       cut: 'Klipp ut',\r
+       cutError: 'Säkerhetsinställningar i din webbläsare tillåter inte åtgärden klipp ut. Använd (Ctrl/Cmd+X) istället.',\r
+       paste: 'Klistra in',\r
+       pasteNotification: 'Din webbläsare tillåter dig inte att klistra in på detta vis. Tryck på %1 för att klistra in.'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/th.js b/sources/plugins/clipboard/lang/th.js
new file mode 100644 (file)
index 0000000..b645b90
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'th', {\r
+       copy: 'สำเนา',\r
+       copyError: 'ไม่สามารถสำเนาข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว C พร้อมกัน).',\r
+       cut: 'ตัด',\r
+       cutError: 'ไม่สามารถตัดข้อความที่เลือกไว้ได้เนื่องจากการกำหนดค่าระดับความปลอดภัย. กรุณาใช้ปุ่มลัดเพื่อวางข้อความแทน (กดปุ่ม Ctrl/Cmd และตัว X พร้อมกัน).',\r
+       paste: 'วาง',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/tr.js b/sources/plugins/clipboard/lang/tr.js
new file mode 100644 (file)
index 0000000..4645335
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'tr', {\r
+       copy: 'Kopyala',\r
+       copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama işlemine izin vermiyor. İşlem için (Ctrl/Cmd+C) tuşlarını kullanın.',\r
+       cut: 'Kes',\r
+       cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme işlemine izin vermiyor. İşlem için (Ctrl/Cmd+X) tuşlarını kullanın.',\r
+       paste: 'Yapıştır',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/tt.js b/sources/plugins/clipboard/lang/tt.js
new file mode 100644 (file)
index 0000000..5e641e3
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'tt', {\r
+       copy: 'Күчермәләү',\r
+       copyError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.',\r
+       cut: 'Кисеп алу',\r
+       cutError: 'Браузерыгызның иминлек үзлекләре автоматик рәвештә күчермәләү үтәүне тыя. Тиз төймәләрне (Ctrl/Cmd+C) кулланыгыз.',\r
+       paste: 'Өстәү',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/ug.js b/sources/plugins/clipboard/lang/ug.js
new file mode 100644 (file)
index 0000000..deb1d2b
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'ug', {\r
+       copy: 'كۆچۈر',\r
+       copyError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كۆچۈر مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+C) ئارقىلىق تاماملاڭ',\r
+       cut: 'كەس',\r
+       cutError: 'تور كۆرگۈڭىزنىڭ بىخەتەرلىك تەڭشىكى تەھرىرلىگۈچنىڭ كەس مەشغۇلاتىنى ئۆزلۈكىدىن ئىجرا قىلىشىغا يول قويمايدۇ، ھەرپتاختا تېز كۇنۇپكا (Ctrl/Cmd+X) ئارقىلىق تاماملاڭ',\r
+       paste: 'چاپلا',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/uk.js b/sources/plugins/clipboard/lang/uk.js
new file mode 100644 (file)
index 0000000..f3e06a5
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'uk', {\r
+       copy: 'Копіювати',\r
+       copyError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції копіювання. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+C).',\r
+       cut: 'Вирізати',\r
+       cutError: 'Налаштування безпеки Вашого браузера не дозволяють редактору автоматично виконувати операції вирізування. Будь ласка, використовуйте клавіатуру для цього (Ctrl/Cmd+X)',\r
+       paste: 'Вставити',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/vi.js b/sources/plugins/clipboard/lang/vi.js
new file mode 100644 (file)
index 0000000..2928a95
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'vi', {\r
+       copy: 'Sao chép',\r
+       copyError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh sao chép. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+C).',\r
+       cut: 'Cắt',\r
+       cutError: 'Các thiết lập bảo mật của trình duyệt không cho phép trình biên tập tự động thực thi lệnh cắt. Hãy sử dụng bàn phím cho lệnh này (Ctrl/Cmd+X).',\r
+       paste: 'Dán',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/zh-cn.js b/sources/plugins/clipboard/lang/zh-cn.js
new file mode 100644 (file)
index 0000000..4b738cb
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', {\r
+       copy: '复制',\r
+       copyError: '您的浏览器安全设置不允许编辑器自动执行复制操作,请使用键盘快捷键(Ctrl/Cmd+C)来完成。',\r
+       cut: '剪切',\r
+       cutError: '您的浏览器安全设置不允许编辑器自动执行剪切操作,请使用键盘快捷键(Ctrl/Cmd+X)来完成。',\r
+       paste: '粘贴',\r
+       pasteNotification: '您的浏览器不允许用此方式粘贴,要粘贴请按 %1。'\r
+} );\r
diff --git a/sources/plugins/clipboard/lang/zh.js b/sources/plugins/clipboard/lang/zh.js
new file mode 100644 (file)
index 0000000..f91de7e
--- /dev/null
@@ -0,0 +1,12 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'clipboard', 'zh', {\r
+       copy: '複製',\r
+       copyError: '瀏覽器的安全性設定不允許編輯器自動執行複製動作。請使用鍵盤快捷鍵 (Ctrl/Cmd+C) 複製。',\r
+       cut: '剪下',\r
+       cutError: '瀏覽器的安全性設定不允許編輯器自動執行剪下動作。請使用鏐盤快捷鍵 (Ctrl/Cmd+X) 剪下。',\r
+       paste: '貼上',\r
+       pasteNotification: 'Your browser doesn\'t allow you to paste this way. Press %1 to paste.' // MISSING\r
+} );\r
diff --git a/sources/plugins/clipboard/plugin.js b/sources/plugins/clipboard/plugin.js
new file mode 100644 (file)
index 0000000..433f547
--- /dev/null
@@ -0,0 +1,2780 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @ignore\r
+ * File overview: Clipboard support.\r
+ */\r
+\r
+//\r
+// COPY & PASTE EXECUTION FLOWS:\r
+// -- CTRL+C\r
+//             * if ( isCustomCopyCutSupported )\r
+//                     * dataTransfer.setData( 'text/html', getSelectedHtml )\r
+//             * else\r
+//                     * browser's default behavior\r
+// -- CTRL+X\r
+//             * listen onKey (onkeydown)\r
+//             * fire 'saveSnapshot' on editor\r
+//             * if ( isCustomCopyCutSupported )\r
+//                     * dataTransfer.setData( 'text/html', getSelectedHtml )\r
+//                     * extractSelectedHtml // remove selected contents\r
+//             * else\r
+//                     * browser's default behavior\r
+//             * deferred second 'saveSnapshot' event\r
+// -- CTRL+V\r
+//             * listen onKey (onkeydown)\r
+//             * simulate 'beforepaste' for non-IEs on editable\r
+//             * listen 'onpaste' on editable ('onbeforepaste' for IE)\r
+//             * fire 'beforePaste' on editor\r
+//             * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin\r
+//             * fire 'paste' on editor\r
+//             * !canceled && fire 'afterPaste' on editor\r
+// -- Copy command\r
+//             * tryToCutCopy\r
+//                     * execCommand\r
+//             * !success && notification\r
+// -- Cut command\r
+//             * fixCut\r
+//             * tryToCutCopy\r
+//                     * execCommand\r
+//             * !success && notification\r
+// -- Paste command\r
+//             * fire 'paste' on editable ('beforepaste' for IE)\r
+//             * !canceled && execCommand 'paste'\r
+// -- Paste from native context menu & menubar\r
+//             (Fx & Webkits are handled in 'paste' default listener.\r
+//             Opera cannot be handled at all because it doesn't fire any events\r
+//             Special treatment is needed for IE, for which is this part of doc)\r
+//             * listen 'onpaste'\r
+//             * cancel native event\r
+//             * fire 'beforePaste' on editor\r
+//             * if ( !canceled && ( htmlInDataTransfer || !external paste) && dataTransfer is not empty ) getClipboardDataByPastebin\r
+//             * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it\r
+//             * fire 'paste' on editor\r
+//             * !canceled && fire 'afterPaste' on editor\r
+//\r
+//\r
+// PASTE EVENT - PREPROCESSING:\r
+// -- Possible dataValue types: auto, text, html.\r
+// -- Possible dataValue contents:\r
+//             * text (possible \n\r)\r
+//             * htmlified text (text + br,div,p - no presentational markup & attrs - depends on browser)\r
+//             * html\r
+// -- Possible flags:\r
+//             * htmlified - if true then content is a HTML even if no markup inside. This flag is set\r
+//                     for content from editable pastebins, because they 'htmlify' pasted content.\r
+//\r
+// -- Type: auto:\r
+//             * content: htmlified text ->    filter, unify text markup (brs, ps, divs), set type: text\r
+//             * content: html ->                              filter, set type: html\r
+// -- Type: text:\r
+//             * content: htmlified text ->    filter, unify text markup\r
+//             * content: html ->                              filter, strip presentational markup, unify text markup\r
+// -- Type: html:\r
+//             * content: htmlified text ->    filter, unify text markup\r
+//             * content: html ->                              filter\r
+//\r
+// -- Phases:\r
+//             * if dataValue is empty copy data from dataTransfer to dataValue (priority 1)\r
+//             * filtering (priorities 3-5) - e.g. pastefromword filters\r
+//             * content type sniffing (priority 6)\r
+//             * markup transformations for text (priority 6)\r
+//\r
+// DRAG & DROP EXECUTION FLOWS:\r
+// -- Drag\r
+//             * save to the global object:\r
+//                     * drag timestamp (with 'cke-' prefix),\r
+//                     * selected html,\r
+//                     * drag range,\r
+//                     * editor instance.\r
+//             * put drag timestamp into event.dataTransfer.text\r
+// -- Drop\r
+//             * if events text == saved timestamp && editor == saved editor\r
+//                     internal drag & drop occurred\r
+//                     * getRangeAtDropPosition\r
+//                     * create bookmarks for drag and drop ranges starting from the end of the document\r
+//                     * dragRange.deleteContents()\r
+//                     * fire 'paste' with saved html and drop range\r
+//             * if events text == saved timestamp && editor != saved editor\r
+//                     cross editor drag & drop occurred\r
+//                     * getRangeAtDropPosition\r
+//                     * fire 'paste' with saved html\r
+//                     * dragRange.deleteContents()\r
+//                     * FF: refreshCursor on afterPaste\r
+//             * if events text != saved timestamp\r
+//                     drop form external source occurred\r
+//                     * getRangeAtDropPosition\r
+//                     * if event contains html data then fire 'paste' with html\r
+//                     * else if event contains text data then fire 'paste' with encoded text\r
+//                     * FF: refreshCursor on afterPaste\r
+\r
+'use strict';\r
+\r
+( function() {\r
+       // Register the plugin.\r
+       CKEDITOR.plugins.add( 'clipboard', {\r
+               requires: 'notification,toolbar',\r
+               // jscs:disable maximumLineLength\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               // jscs:enable maximumLineLength\r
+               icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE%\r
+               hidpi: true, // %REMOVE_LINE_CORE%\r
+               init: function( editor ) {\r
+                       var filterType,\r
+                               filtersFactory = filtersFactoryFactory();\r
+\r
+                       if ( editor.config.forcePasteAsPlainText ) {\r
+                               filterType = 'plain-text';\r
+                       } else if ( editor.config.pasteFilter ) {\r
+                               filterType = editor.config.pasteFilter;\r
+                       }\r
+                       // On Webkit the pasteFilter defaults 'semantic-content' because pasted data is so terrible\r
+                       // that it must be always filtered.\r
+                       else if ( CKEDITOR.env.webkit && !( 'pasteFilter' in editor.config ) ) {\r
+                               filterType = 'semantic-content';\r
+                       }\r
+\r
+                       editor.pasteFilter = filtersFactory.get( filterType );\r
+\r
+                       initPasteClipboard( editor );\r
+                       initDragDrop( editor );\r
+\r
+                       // Convert image file (if present) to base64 string for Firefox. Do it as the first\r
+                       // step as the conversion is asynchronous and should hold all further paste processing.\r
+                       if ( CKEDITOR.env.gecko ) {\r
+                               var supportedImageTypes = [ 'image/png', 'image/jpeg', 'image/gif' ],\r
+                                       latestId;\r
+\r
+                               editor.on( 'paste', function( evt ) {\r
+                                       var dataObj = evt.data,\r
+                                               data = dataObj.dataValue,\r
+                                               dataTransfer = dataObj.dataTransfer;\r
+\r
+                                       // If data empty check for image content inside data transfer. http://dev.ckeditor.com/ticket/16705\r
+                                       if ( !data && dataObj.method == 'paste' && dataTransfer && dataTransfer.getFilesCount() == 1 && latestId != dataTransfer.id ) {\r
+                                               var file = dataTransfer.getFile( 0 );\r
+\r
+                                               if ( CKEDITOR.tools.indexOf( supportedImageTypes, file.type ) != -1 ) {\r
+                                                       var fileReader = new FileReader();\r
+\r
+                                                       // Convert image file to img tag with base64 image.\r
+                                                       fileReader.addEventListener( 'load', function() {\r
+                                                               evt.data.dataValue = '<img src="' + fileReader.result + '" />';\r
+                                                               editor.fire( 'paste', evt.data );\r
+                                                       }, false );\r
+\r
+                                                       // Proceed with normal flow if reading file was aborted.\r
+                                                       fileReader.addEventListener( 'abort', function() {\r
+                                                               editor.fire( 'paste', evt.data );\r
+                                                       }, false );\r
+\r
+                                                       // Proceed with normal flow if reading file failed.\r
+                                                       fileReader.addEventListener( 'error', function() {\r
+                                                               editor.fire( 'paste', evt.data );\r
+                                                       }, false );\r
+\r
+                                                       fileReader.readAsDataURL( file );\r
+\r
+                                                       latestId = dataObj.dataTransfer.id;\r
+\r
+                                                       evt.stop();\r
+                                               }\r
+                                       }\r
+                               }, null, null, 1 );\r
+                       }\r
+\r
+                       editor.on( 'paste', function( evt ) {\r
+                               // Init `dataTransfer` if `paste` event was fired without it, so it will be always available.\r
+                               if ( !evt.data.dataTransfer ) {\r
+                                       evt.data.dataTransfer = new CKEDITOR.plugins.clipboard.dataTransfer();\r
+                               }\r
+\r
+                               // If dataValue is already set (manually or by paste bin), so do not override it.\r
+                               if ( evt.data.dataValue ) {\r
+                                       return;\r
+                               }\r
+\r
+                               var dataTransfer = evt.data.dataTransfer,\r
+                                       // IE support only text data and throws exception if we try to get html data.\r
+                                       // This html data object may also be empty if we drag content of the textarea.\r
+                                       value = dataTransfer.getData( 'text/html' );\r
+\r
+                               if ( value ) {\r
+                                       evt.data.dataValue = value;\r
+                                       evt.data.type = 'html';\r
+                               } else {\r
+                                       // Try to get text data otherwise.\r
+                                       value = dataTransfer.getData( 'text/plain' );\r
+\r
+                                       if ( value ) {\r
+                                               evt.data.dataValue = editor.editable().transformPlainTextToHtml( value );\r
+                                               evt.data.type = 'text';\r
+                                       }\r
+                               }\r
+                       }, null, null, 1 );\r
+\r
+                       editor.on( 'paste', function( evt ) {\r
+                               var data = evt.data.dataValue,\r
+                                       blockElements = CKEDITOR.dtd.$block;\r
+\r
+                               // Filter webkit garbage.\r
+                               if ( data.indexOf( 'Apple-' ) > -1 ) {\r
+                                       // Replace special webkit's &nbsp; with simple space, because webkit\r
+                                       // produces them even for normal spaces.\r
+                                       data = data.replace( /<span class="Apple-converted-space">&nbsp;<\/span>/gi, ' ' );\r
+\r
+                                       // Strip <span> around white-spaces when not in forced 'html' content type.\r
+                                       // This spans are created only when pasting plain text into Webkit,\r
+                                       // but for safety reasons remove them always.\r
+                                       if ( evt.data.type != 'html' ) {\r
+                                               data = data.replace( /<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi, function( all, spaces ) {\r
+                                                       // Replace tabs with 4 spaces like Fx does.\r
+                                                       return spaces.replace( /\t/g, '&nbsp;&nbsp; &nbsp;' );\r
+                                               } );\r
+                                       }\r
+\r
+                                       // This br is produced only when copying & pasting HTML content.\r
+                                       if ( data.indexOf( '<br class="Apple-interchange-newline">' ) > -1 ) {\r
+                                               evt.data.startsWithEOL = 1;\r
+                                               evt.data.preSniffing = 'html'; // Mark as not text.\r
+                                               data = data.replace( /<br class="Apple-interchange-newline">/, '' );\r
+                                       }\r
+\r
+                                       // Remove all other classes.\r
+                                       data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' );\r
+                               }\r
+\r
+                               // Strip editable that was copied from inside. (http://dev.ckeditor.com/ticket/9534)\r
+                               if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) {\r
+                                       var tmp,\r
+                                               editable_wrapper,\r
+                                               wrapper = new CKEDITOR.dom.element( 'div' );\r
+\r
+                                       wrapper.setHtml( data );\r
+                                       // Verify for sure and check for nested editor UI parts. (http://dev.ckeditor.com/ticket/9675)\r
+                                       while ( wrapper.getChildCount() == 1 &&\r
+                                                       ( tmp = wrapper.getFirst() ) &&\r
+                                                       tmp.type == CKEDITOR.NODE_ELEMENT &&    // Make sure first-child is element.\r
+                                                       ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) {\r
+                                               wrapper = editable_wrapper = tmp;\r
+                                       }\r
+\r
+                                       // If editable wrapper was found strip it and bogus <br> (added on FF).\r
+                                       if ( editable_wrapper )\r
+                                               data = editable_wrapper.getHtml().replace( /<br>$/i, '' );\r
+                               }\r
+\r
+                               if ( CKEDITOR.env.ie ) {\r
+                                       // &nbsp; <p> -> <p> (br.cke-pasted-remove will be removed later)\r
+                                       data = data.replace( /^&nbsp;(?: |\r\n)?<(\w+)/g, function( match, elementName ) {\r
+                                               if ( elementName.toLowerCase() in blockElements ) {\r
+                                                       evt.data.preSniffing = 'html'; // Mark as not a text.\r
+                                                       return '<' + elementName;\r
+                                               }\r
+                                               return match;\r
+                                       } );\r
+                               } else if ( CKEDITOR.env.webkit ) {\r
+                                       // </p><div><br></div> -> </p><br>\r
+                                       // We don't mark br, because this situation can happen for htmlified text too.\r
+                                       data = data.replace( /<\/(\w+)><div><br><\/div>$/, function( match, elementName ) {\r
+                                               if ( elementName in blockElements ) {\r
+                                                       evt.data.endsWithEOL = 1;\r
+                                                       return '</' + elementName + '>';\r
+                                               }\r
+                                               return match;\r
+                                       } );\r
+                               } else if ( CKEDITOR.env.gecko ) {\r
+                                       // Firefox adds bogus <br> when user pasted text followed by space(s).\r
+                                       data = data.replace( /(\s)<br>$/, '$1' );\r
+                               }\r
+\r
+                               evt.data.dataValue = data;\r
+                       }, null, null, 3 );\r
+\r
+                       editor.on( 'paste', function( evt ) {\r
+                               var dataObj = evt.data,\r
+                                       type = editor._.nextPasteType || dataObj.type,\r
+                                       data = dataObj.dataValue,\r
+                                       trueType,\r
+                                       // Default is 'html'.\r
+                                       defaultType = editor.config.clipboard_defaultContentType || 'html',\r
+                                       transferType = dataObj.dataTransfer.getTransferType( editor );\r
+\r
+                               // If forced type is 'html' we don't need to know true data type.\r
+                               if ( type == 'html' || dataObj.preSniffing == 'html' ) {\r
+                                       trueType = 'html';\r
+                               } else {\r
+                                       trueType = recogniseContentType( data );\r
+                               }\r
+\r
+                               delete editor._.nextPasteType;\r
+\r
+                               // Unify text markup.\r
+                               if ( trueType == 'htmlifiedtext' ) {\r
+                                       data = htmlifiedTextHtmlification( editor.config, data );\r
+                               }\r
+\r
+                               // Strip presentational markup & unify text markup.\r
+                               // Forced plain text.\r
+                               // Note: we do not check dontFilter option in this case, because forcePAPT was implemented\r
+                               // before pasteFilter and pasteFilter is automatically used on Webkit&Blink since 4.5, so\r
+                               // forcePAPT should have priority as it had before 4.5.\r
+                               if ( type == 'text' && trueType == 'html' ) {\r
+                                       data = filterContent( editor, data, filtersFactory.get( 'plain-text' ) );\r
+                               }\r
+                               // External paste and pasteFilter exists and filtering isn't disabled.\r
+                               else if ( transferType == CKEDITOR.DATA_TRANSFER_EXTERNAL && editor.pasteFilter && !dataObj.dontFilter ) {\r
+                                       data = filterContent( editor, data, editor.pasteFilter );\r
+                               }\r
+\r
+                               if ( dataObj.startsWithEOL ) {\r
+                                       data = '<br data-cke-eol="1">' + data;\r
+                               }\r
+                               if ( dataObj.endsWithEOL ) {\r
+                                       data += '<br data-cke-eol="1">';\r
+                               }\r
+\r
+                               if ( type == 'auto' ) {\r
+                                       type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text';\r
+                               }\r
+\r
+                               dataObj.type = type;\r
+                               dataObj.dataValue = data;\r
+                               delete dataObj.preSniffing;\r
+                               delete dataObj.startsWithEOL;\r
+                               delete dataObj.endsWithEOL;\r
+                       }, null, null, 6 );\r
+\r
+                       // Inserts processed data into the editor at the end of the\r
+                       // events chain.\r
+                       editor.on( 'paste', function( evt ) {\r
+                               var data = evt.data;\r
+\r
+                               if ( data.dataValue ) {\r
+                                       editor.insertHtml( data.dataValue, data.type, data.range );\r
+\r
+                                       // Defer 'afterPaste' so all other listeners for 'paste' will be fired first.\r
+                                       // Fire afterPaste only if paste inserted some HTML.\r
+                                       setTimeout( function() {\r
+                                               editor.fire( 'afterPaste' );\r
+                                       }, 0 );\r
+                               }\r
+                       }, null, null, 1000 );\r
+               }\r
+       } );\r
+\r
+       function firePasteEvents( editor, data, withBeforePaste ) {\r
+               if ( !data.type ) {\r
+                       data.type = 'auto';\r
+               }\r
+\r
+               if ( withBeforePaste ) {\r
+                       // Fire 'beforePaste' event so clipboard flavor get customized\r
+                       // by other plugins.\r
+                       if ( editor.fire( 'beforePaste', data ) === false )\r
+                               return false; // Event canceled\r
+               }\r
+\r
+               // Do not fire paste if there is no data (dataValue and dataTranfser are empty).\r
+               // This check should be done after firing 'beforePaste' because for native paste\r
+               // 'beforePaste' is by default fired even for empty clipboard.\r
+               if ( !data.dataValue && data.dataTransfer.isEmpty() ) {\r
+                       return false;\r
+               }\r
+\r
+               if ( !data.dataValue ) {\r
+                       data.dataValue = '';\r
+               }\r
+\r
+               // Because of FF bug we need to use this hack, otherwise cursor is hidden\r
+               // or it is not possible to move it (http://dev.ckeditor.com/ticket/12420).\r
+               // Also, check that editor.toolbox exists, because the toolbar plugin might not be loaded (http://dev.ckeditor.com/ticket/13305).\r
+               if ( CKEDITOR.env.gecko && data.method == 'drop' && editor.toolbox ) {\r
+                       editor.once( 'afterPaste', function() {\r
+                               editor.toolbox.focus();\r
+                       } );\r
+               }\r
+\r
+               return editor.fire( 'paste', data );\r
+       }\r
+\r
+       function initPasteClipboard( editor ) {\r
+               var clipboard = CKEDITOR.plugins.clipboard,\r
+                       preventBeforePasteEvent = 0,\r
+                       preventPasteEvent = 0,\r
+                       inReadOnly = 0;\r
+\r
+               addListeners();\r
+               addButtonsCommands();\r
+\r
+               /**\r
+                * Gets clipboard data by directly accessing the clipboard (IE only).\r
+                *\r
+                *              editor.getClipboardData( function( data ) {\r
+                *                      if ( data )\r
+                *                              alert( data.type + ' ' + data.dataValue );\r
+                *              } );\r
+                *\r
+                * @member CKEDITOR.editor\r
+                * @param {Function/Object} callbackOrOptions For function, see the `callback` parameter documentation. The object was used before 4.7.0 with the `title` property, to set the paste dialog's title.\r
+                * @param {Function} callback A function that will be executed with the `data` property of the\r
+                * {@link CKEDITOR.editor#event-paste paste event} or `null` if none of the capturing methods succeeded.\r
+                * Since 4.7.0 the `callback` should be provided as a first argument, just like in the example above. This parameter will be removed in\r
+                * an upcoming major release.\r
+                */\r
+               editor.getClipboardData = function( callbackOrOptions, callback ) {\r
+                       // Options are optional - args shift.\r
+                       if ( !callback ) {\r
+                               callback = callbackOrOptions;\r
+                               callbackOrOptions = null;\r
+                       }\r
+\r
+                       // Listen with maximum priority to handle content before everyone else.\r
+                       // This callback will handle paste event that will be fired if direct\r
+                       // access to the clipboard succeed in IE.\r
+                       editor.on( 'paste', onPaste, null, null, 0 );\r
+\r
+                       // If command didn't succeed (only IE allows to access clipboard and only if\r
+                       // user agrees) invoke callback with null, meaning that paste is not blocked.\r
+                       if ( getClipboardDataDirectly() === false ) {\r
+                               // Direct access to the clipboard wasn't successful so remove listener.\r
+                               editor.removeListener( 'paste', onPaste );\r
+\r
+                               callback( null );\r
+                       }\r
+\r
+                       function onPaste( evt ) {\r
+                               evt.removeListener();\r
+                               evt.cancel();\r
+                               callback( evt.data );\r
+                       }\r
+               };\r
+\r
+               function addButtonsCommands() {\r
+                       addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 );\r
+                       addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 );\r
+                       addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 );\r
+\r
+                       function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) {\r
+                               var lang = editor.lang.clipboard[ commandName ];\r
+\r
+                               editor.addCommand( commandName, command );\r
+                               editor.ui.addButton && editor.ui.addButton( buttonName, {\r
+                                       label: lang,\r
+                                       command: commandName,\r
+                                       toolbar: 'clipboard,' + toolbarOrder\r
+                               } );\r
+\r
+                               // If the "menu" plugin is loaded, register the menu item.\r
+                               if ( editor.addMenuItems ) {\r
+                                       editor.addMenuItem( commandName, {\r
+                                               label: lang,\r
+                                               command: commandName,\r
+                                               group: 'clipboard',\r
+                                               order: ctxMenuOrder\r
+                                       } );\r
+                               }\r
+                       }\r
+               }\r
+\r
+               function addListeners() {\r
+                       editor.on( 'key', onKey );\r
+                       editor.on( 'contentDom', addPasteListenersToEditable );\r
+\r
+                       // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.\r
+                       editor.on( 'selectionChange', function( evt ) {\r
+                               inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();\r
+                               setToolbarStates();\r
+                       } );\r
+\r
+                       // If the "contextmenu" plugin is loaded, register the listeners.\r
+                       if ( editor.contextMenu ) {\r
+                               editor.contextMenu.addListener( function( element, selection ) {\r
+                                       inReadOnly = selection.getRanges()[ 0 ].checkReadOnly();\r
+                                       return {\r
+                                               cut: stateFromNamedCommand( 'cut' ),\r
+                                               copy: stateFromNamedCommand( 'copy' ),\r
+                                               paste: stateFromNamedCommand( 'paste' )\r
+                                       };\r
+                               } );\r
+                       }\r
+               }\r
+\r
+               // Add events listeners to editable.\r
+               function addPasteListenersToEditable() {\r
+                       var editable = editor.editable();\r
+\r
+                       if ( CKEDITOR.plugins.clipboard.isCustomCopyCutSupported ) {\r
+                               var initOnCopyCut = function( evt ) {\r
+                                       // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872)\r
+                                       if ( !editor.readOnly || evt.name != 'cut' ) {\r
+                                               clipboard.initPasteDataTransfer( evt, editor );\r
+                                       }\r
+                                       evt.data.preventDefault();\r
+                               };\r
+\r
+                               editable.on( 'copy', initOnCopyCut );\r
+                               editable.on( 'cut', initOnCopyCut );\r
+\r
+                               // Delete content with the low priority so one can overwrite cut data.\r
+                               editable.on( 'cut', function() {\r
+                                       // If user tries to cut in read-only editor, we must prevent default action. (http://dev.ckeditor.com/ticket/13872)\r
+                                       if ( !editor.readOnly ) {\r
+                                               editor.extractSelectedHtml();\r
+                                       }\r
+                               }, null, null, 999 );\r
+                       }\r
+\r
+                       // We'll be catching all pasted content in one line, regardless of whether\r
+                       // it's introduced by a document command execution (e.g. toolbar buttons) or\r
+                       // user paste behaviors (e.g. CTRL+V).\r
+                       editable.on( clipboard.mainPasteEvent, function( evt ) {\r
+                               if ( clipboard.mainPasteEvent == 'beforepaste' && preventBeforePasteEvent ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // If you've just asked yourself why preventPasteEventNow() is not here, but\r
+                               // in listener for CTRL+V and exec method of 'paste' command\r
+                               // you've asked the same question we did.\r
+                               //\r
+                               // THE ANSWER:\r
+                               //\r
+                               // First thing to notice - this answer makes sense only for IE,\r
+                               // because other browsers don't listen for 'paste' event.\r
+                               //\r
+                               // What would happen if we move preventPasteEventNow() here?\r
+                               // For:\r
+                               // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK.\r
+                               // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent\r
+                               //              'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK.\r
+                               // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately\r
+                               //              on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but\r
+                               //              we just fail, so... we paste nothing. FAIL.\r
+                               // * native menu bar - the same as for native context menu.\r
+                               //\r
+                               // But don't you know any way to distinguish first two cases from last two?\r
+                               // Only one - special flag set in CTRL+V handler and exec method of 'paste'\r
+                               // command. And that's what we did using preventPasteEventNow().\r
+\r
+                               pasteDataFromClipboard( evt );\r
+                       } );\r
+\r
+                       // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar\r
+                       // native context menu, editor's command) in one 'paste/beforepaste' event in IE.\r
+                       //\r
+                       // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener,\r
+                       // so we do this. For another two methods it's better to use 'paste' event.\r
+                       //\r
+                       // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native\r
+                       // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste'\r
+                       // using preventPasteEvent state.\r
+                       //\r
+                       // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback.\r
+                       //\r
+                       // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'?\r
+                       //              Wouldn't this just be simpler?\r
+                       // ANSWER: Then we would have to evt.data.preventDefault() only for native\r
+                       //              context menu and menu bar pastes. The same with execIECommand().\r
+                       //              That would force us to mark CTRL+V and editor's paste command with\r
+                       //              special flag, other than preventPasteEvent. But we still would have to\r
+                       //              have preventPasteEvent for the second event fired by execIECommand.\r
+                       //              Code would be longer and not cleaner.\r
+                       if ( clipboard.mainPasteEvent == 'beforepaste' ) {\r
+                               editable.on( 'paste', function( evt ) {\r
+                                       if ( preventPasteEvent ) {\r
+                                               return;\r
+                                       }\r
+\r
+                                       // Cancel next 'paste' event fired by execIECommand( 'paste' )\r
+                                       // at the end of this callback.\r
+                                       preventPasteEventNow();\r
+\r
+                                       // Prevent native paste.\r
+                                       evt.data.preventDefault();\r
+\r
+                                       pasteDataFromClipboard( evt );\r
+\r
+                                       // Force IE to paste content into pastebin so pasteDataFromClipboard will work.\r
+                                       execIECommand( 'paste' );\r
+                               } );\r
+\r
+                               // If mainPasteEvent is 'beforePaste' (IE before Edge),\r
+                               // dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (http://dev.ckeditor.com/ticket/7953)\r
+                               editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 );\r
+\r
+                               editable.on( 'beforepaste', function( evt ) {\r
+                                       // Do not prevent event on CTRL+V and SHIFT+INS because it blocks paste (http://dev.ckeditor.com/ticket/11970).\r
+                                       if ( evt.data && !evt.data.$.ctrlKey && !evt.data.$.shiftKey )\r
+                                               preventBeforePasteEventNow();\r
+                               }, null, null, 0 );\r
+                       }\r
+\r
+                       editable.on( 'beforecut', function() {\r
+                               !preventBeforePasteEvent && fixCut( editor );\r
+                       } );\r
+\r
+                       var mouseupTimeout;\r
+\r
+                       // Use editor.document instead of editable in non-IEs for observing mouseup\r
+                       // since editable won't fire the event if selection process started within\r
+                       // iframe and ended out of the editor (http://dev.ckeditor.com/ticket/9851).\r
+                       editable.attachListener( CKEDITOR.env.ie ? editable : editor.document.getDocumentElement(), 'mouseup', function() {\r
+                               mouseupTimeout = setTimeout( function() {\r
+                                       setToolbarStates();\r
+                               }, 0 );\r
+                       } );\r
+\r
+                       // Make sure that deferred mouseup callback isn't executed after editor instance\r
+                       // had been destroyed. This may happen when editor.destroy() is called in parallel\r
+                       // with mouseup event (i.e. a button with onclick callback) (http://dev.ckeditor.com/ticket/10219).\r
+                       editor.on( 'destroy', function() {\r
+                               clearTimeout( mouseupTimeout );\r
+                       } );\r
+\r
+                       editable.on( 'keyup', setToolbarStates );\r
+               }\r
+\r
+               // Create object representing Cut or Copy commands.\r
+               function createCutCopyCmd( type ) {\r
+                       return {\r
+                               type: type,\r
+                               canUndo: type == 'cut', // We can't undo copy to clipboard.\r
+                               startDisabled: true,\r
+                               fakeKeystroke: type == 'cut' ? CKEDITOR.CTRL + 88 /*X*/ :  CKEDITOR.CTRL + 67 /*C*/,\r
+                               exec: function() {\r
+                                       // Attempts to execute the Cut and Copy operations.\r
+                                       function tryToCutCopy( type ) {\r
+                                               if ( CKEDITOR.env.ie )\r
+                                                       return execIECommand( type );\r
+\r
+                                               // non-IEs part\r
+                                               try {\r
+                                                       // Other browsers throw an error if the command is disabled.\r
+                                                       return editor.document.$.execCommand( type, false, null );\r
+                                               } catch ( e ) {\r
+                                                       return false;\r
+                                               }\r
+                                       }\r
+\r
+                                       this.type == 'cut' && fixCut();\r
+\r
+                                       var success = tryToCutCopy( this.type );\r
+\r
+                                       if ( !success ) {\r
+                                               // Show cutError or copyError.\r
+                                               editor.showNotification( editor.lang.clipboard[ this.type + 'Error' ] ); // jshint ignore:line\r
+                                       }\r
+\r
+                                       return success;\r
+                               }\r
+                       };\r
+               }\r
+\r
+               function createPasteCmd() {\r
+                       return {\r
+                               // Snapshots are done manually by editable.insertXXX methods.\r
+                               canUndo: false,\r
+                               async: true,\r
+                               fakeKeystroke: CKEDITOR.CTRL + 86 /*V*/,\r
+\r
+                               /**\r
+                                * The default implementation of the paste command.\r
+                                *\r
+                                * @private\r
+                                * @param {CKEDITOR.editor} editor An instance of the editor where the command is being executed.\r
+                                * @param {Object/String} data If `data` is a string, then it is considered content that is being pasted.\r
+                                * Otherwise it is treated as an object with options.\r
+                                * @param {Boolean/String} [data.notification=true] Content for a notification shown after an unsuccessful\r
+                                * paste attempt. If `false`, the notification will not be displayed. This parameter was added in 4.7.0.\r
+                                * @param {String} [data.type='html'] The type of pasted content. There are two allowed values:\r
+                                * * 'html'\r
+                                * * 'text'\r
+                                * @param {String/Object} data.dataValue Content being pasted. If this parameter is an object, it\r
+                                * is supposed to be a `data` property of the {@link CKEDITOR.editor#paste} event.\r
+                                * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Data transfer instance connected\r
+                                * with the current paste action.\r
+                                * @member CKEDITOR.editor.commands.paste\r
+                                */\r
+                               exec: function( editor, data ) {\r
+                                       data = typeof data !== 'undefined' && data !== null ? data : {};\r
+\r
+                                       var cmd = this,\r
+                                               notification = typeof data.notification !== 'undefined' ? data.notification : true,\r
+                                               forcedType = data.type,\r
+                                               keystroke = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard,\r
+                                                       editor.getCommandKeystroke( this ) ),\r
+                                               msg = typeof notification === 'string' ? notification : editor.lang.clipboard.pasteNotification\r
+                                                       .replace( /%1/, '<kbd aria-label="' + keystroke.aria + '">' + keystroke.display + '</kbd>' ),\r
+                                               pastedContent = typeof data === 'string' ? data : data.dataValue;\r
+\r
+                                       function callback( data, withBeforePaste ) {\r
+                                               withBeforePaste = typeof withBeforePaste !== 'undefined' ? withBeforePaste : true;\r
+\r
+                                               if ( data ) {\r
+                                                       data.method = 'paste';\r
+\r
+                                                       if ( !data.dataTransfer ) {\r
+                                                               data.dataTransfer = clipboard.initPasteDataTransfer();\r
+                                                       }\r
+\r
+                                                       firePasteEvents( editor, data, withBeforePaste );\r
+                                               } else if ( notification ) {\r
+                                                       editor.showNotification( msg, 'info', editor.config.clipboard_notificationDuration );\r
+                                               }\r
+\r
+                                               editor.fire( 'afterCommandExec', {\r
+                                                       name: 'paste',\r
+                                                       command: cmd,\r
+                                                       returnValue: !!data\r
+                                               } );\r
+                                       }\r
+\r
+                                       // Force type for the next paste.\r
+                                       if ( forcedType ) {\r
+                                               editor._.nextPasteType = forcedType;\r
+                                       } else {\r
+                                               delete editor._.nextPasteType;\r
+                                       }\r
+\r
+                                       if ( typeof pastedContent === 'string' ) {\r
+                                               callback( {\r
+                                                       dataValue: pastedContent\r
+                                               } );\r
+                                       } else {\r
+                                               editor.getClipboardData( callback );\r
+                                       }\r
+                               }\r
+                       };\r
+               }\r
+\r
+               function preventPasteEventNow() {\r
+                       preventPasteEvent = 1;\r
+                       // For safety reason we should wait longer than 0/1ms.\r
+                       // We don't know how long execution of quite complex getClipboardData will take\r
+                       // and in for example 'paste' listener execCommand() (which fires 'paste') is called\r
+                       // after getClipboardData finishes.\r
+                       // Luckily, it's impossible to immediately fire another 'paste' event we want to handle,\r
+                       // because we only handle there native context menu and menu bar.\r
+                       setTimeout( function() {\r
+                               preventPasteEvent = 0;\r
+                       }, 100 );\r
+               }\r
+\r
+               function preventBeforePasteEventNow() {\r
+                       preventBeforePasteEvent = 1;\r
+                       setTimeout( function() {\r
+                               preventBeforePasteEvent = 0;\r
+                       }, 10 );\r
+               }\r
+\r
+               // Tries to execute any of the paste, cut or copy commands in IE. Returns a\r
+               // boolean indicating that the operation succeeded.\r
+               // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy').\r
+               function execIECommand( command ) {\r
+                       var doc = editor.document,\r
+                               body = doc.getBody(),\r
+                               enabled = false,\r
+                               onExec = function() {\r
+                                       enabled = true;\r
+                               };\r
+\r
+                       // The following seems to be the only reliable way to detect that\r
+                       // clipboard commands are enabled in IE. It will fire the\r
+                       // onpaste/oncut/oncopy events only if the security settings allowed\r
+                       // the command to execute.\r
+                       body.on( command, onExec );\r
+\r
+                       // IE7: document.execCommand has problem to paste into positioned element.\r
+                       if ( CKEDITOR.env.version > 7 ) {\r
+                               doc.$.execCommand( command );\r
+                       } else {\r
+                               doc.$.selection.createRange().execCommand( command );\r
+                       }\r
+\r
+                       body.removeListener( command, onExec );\r
+\r
+                       return enabled;\r
+               }\r
+\r
+               // Cutting off control type element in IE standards breaks the selection entirely. (http://dev.ckeditor.com/ticket/4881)\r
+               function fixCut() {\r
+                       if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )\r
+                               return;\r
+\r
+                       var sel = editor.getSelection(),\r
+                               control, range, dummy;\r
+\r
+                       if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) {\r
+                               range = sel.getRanges()[ 0 ];\r
+                               dummy = editor.document.createText( '' );\r
+                               dummy.insertBefore( control );\r
+                               range.setStartBefore( dummy );\r
+                               range.setEndAfter( control );\r
+                               sel.selectRanges( [ range ] );\r
+\r
+                               // Clear up the fix if the paste wasn't succeeded.\r
+                               setTimeout( function() {\r
+                                       // Element still online?\r
+                                       if ( control.getParent() ) {\r
+                                               dummy.remove();\r
+                                               sel.selectElement( control );\r
+                                       }\r
+                               }, 0 );\r
+                       }\r
+               }\r
+\r
+               // Allow to peek clipboard content by redirecting the\r
+               // pasting content into a temporary bin and grab the content of it.\r
+               function getClipboardDataByPastebin( evt, callback ) {\r
+                       var doc = editor.document,\r
+                               editable = editor.editable(),\r
+                               cancel = function( evt ) {\r
+                                       evt.cancel();\r
+                               },\r
+                               blurListener;\r
+\r
+                       // Avoid recursions on 'paste' event or consequent paste too fast. (http://dev.ckeditor.com/ticket/5730)\r
+                       if ( doc.getById( 'cke_pastebin' ) )\r
+                               return;\r
+\r
+                       var sel = editor.getSelection();\r
+                       var bms = sel.createBookmarks();\r
+\r
+                       // http://dev.ckeditor.com/ticket/11384. On IE9+ we use native selectionchange (i.e. editor#selectionCheck) to cache the most\r
+                       // recent selection which we then lock on editable blur. See selection.js for more info.\r
+                       // selectionchange fired before getClipboardDataByPastebin() cached selection\r
+                       // before creating bookmark (cached selection will be invalid, because bookmarks modified the DOM),\r
+                       // so we need to fire selectionchange one more time, to store current seleciton.\r
+                       // Selection will be locked when we focus pastebin.\r
+                       if ( CKEDITOR.env.ie )\r
+                               sel.root.fire( 'selectionchange' );\r
+\r
+                       // Create container to paste into.\r
+                       // For rich content we prefer to use "body" since it holds\r
+                       // the least possibility to be splitted by pasted content, while this may\r
+                       // breaks the text selection on a frame-less editable, "div" would be\r
+                       // the best one in that case.\r
+                       // In another case on old IEs moving the selection into a "body" paste bin causes error panic.\r
+                       // Body can't be also used for Opera which fills it with <br>\r
+                       // what is indistinguishable from pasted <br> (copying <br> in Opera isn't possible,\r
+                       // but it can be copied from other browser).\r
+                       var pastebin = new CKEDITOR.dom.element(\r
+                               ( CKEDITOR.env.webkit || editable.is( 'body' ) ) && !CKEDITOR.env.ie ? 'body' : 'div', doc );\r
+\r
+                       pastebin.setAttributes( {\r
+                               id: 'cke_pastebin',\r
+                               'data-cke-temp': '1'\r
+                       } );\r
+\r
+                       var containerOffset = 0,\r
+                               offsetParent,\r
+                               win = doc.getWindow();\r
+\r
+                       if ( CKEDITOR.env.webkit ) {\r
+                               // It's better to paste close to the real paste destination, so inherited styles\r
+                               // (which Webkits will try to compensate by styling span) differs less from the destination's one.\r
+                               editable.append( pastebin );\r
+                               // Style pastebin like .cke_editable, to minimize differences between origin and destination. (http://dev.ckeditor.com/ticket/9754)\r
+                               pastebin.addClass( 'cke_editable' );\r
+\r
+                               // Compensate position of offsetParent.\r
+                               if ( !editable.is( 'body' ) ) {\r
+                                       // We're not able to get offsetParent from pastebin (body element), so check whether\r
+                                       // its parent (editable) is positioned.\r
+                                       if ( editable.getComputedStyle( 'position' ) != 'static' )\r
+                                               offsetParent = editable;\r
+                                       // And if not - safely get offsetParent from editable.\r
+                                       else\r
+                                               offsetParent = CKEDITOR.dom.element.get( editable.$.offsetParent );\r
+\r
+                                       containerOffset = offsetParent.getDocumentPosition().y;\r
+                               }\r
+                       } else {\r
+                               // Opera and IE doesn't allow to append to html element.\r
+                               editable.getAscendant( CKEDITOR.env.ie ? 'body' : 'html', 1 ).append( pastebin );\r
+                       }\r
+\r
+                       pastebin.setStyles( {\r
+                               position: 'absolute',\r
+                               // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll.\r
+                               top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px',\r
+                               width: '1px',\r
+                               // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it.\r
+                               // Set height equal to viewport's height - 20px (safety gaps), minimum 1px.\r
+                               height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px',\r
+                               overflow: 'hidden',\r
+                               // Reset styles that can mess up pastebin position.\r
+                               margin: 0,\r
+                               padding: 0\r
+                       } );\r
+\r
+                       // Paste fails in Safari when the body tag has 'user-select: none'. (http://dev.ckeditor.com/ticket/12506)\r
+                       if ( CKEDITOR.env.safari )\r
+                               pastebin.setStyles( CKEDITOR.tools.cssVendorPrefix( 'user-select', 'text' ) );\r
+\r
+                       // Check if the paste bin now establishes new editing host.\r
+                       var isEditingHost = pastebin.getParent().isReadOnly();\r
+\r
+                       if ( isEditingHost ) {\r
+                               // Hide the paste bin.\r
+                               pastebin.setOpacity( 0 );\r
+                               // And make it editable.\r
+                               pastebin.setAttribute( 'contenteditable', true );\r
+                       }\r
+                       // Transparency is not enough since positioned non-editing host always shows\r
+                       // resize handler, pull it off the screen instead.\r
+                       else {\r
+                               pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-10000px' );\r
+                       }\r
+\r
+                       editor.on( 'selectionChange', cancel, null, null, 0 );\r
+\r
+                       // Webkit fill fire blur on editable when moving selection to\r
+                       // pastebin (if body is used). Cancel it because it causes incorrect\r
+                       // selection lock in case of inline editor (http://dev.ckeditor.com/ticket/10644).\r
+                       // The same seems to apply to Firefox (http://dev.ckeditor.com/ticket/10787).\r
+                       if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko )\r
+                               blurListener = editable.once( 'blur', cancel, null, null, -100 );\r
+\r
+                       // Temporarily move selection to the pastebin.\r
+                       isEditingHost && pastebin.focus();\r
+                       var range = new CKEDITOR.dom.range( pastebin );\r
+                       range.selectNodeContents( pastebin );\r
+                       var selPastebin = range.select();\r
+\r
+                       // If non-native paste is executed, IE will open security alert and blur editable.\r
+                       // Editable will then lock selection inside itself and after accepting security alert\r
+                       // this selection will be restored. We overwrite stored selection, so it's restored\r
+                       // in pastebin. (http://dev.ckeditor.com/ticket/9552)\r
+                       if ( CKEDITOR.env.ie ) {\r
+                               blurListener = editable.once( 'blur', function() {\r
+                                       editor.lockSelection( selPastebin );\r
+                               } );\r
+                       }\r
+\r
+                       var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y;\r
+\r
+                       // Wait a while and grab the pasted contents.\r
+                       setTimeout( function() {\r
+                               // Restore main window's scroll position which could have been changed\r
+                               // by browser in cases described in http://dev.ckeditor.com/ticket/9771.\r
+                               if ( CKEDITOR.env.webkit )\r
+                                       CKEDITOR.document.getBody().$.scrollTop = scrollTop;\r
+\r
+                               // Blur will be fired only on non-native paste. In other case manually remove listener.\r
+                               blurListener && blurListener.removeListener();\r
+\r
+                               // Restore properly the document focus. (http://dev.ckeditor.com/ticket/8849)\r
+                               if ( CKEDITOR.env.ie )\r
+                                       editable.focus();\r
+\r
+                               // IE7: selection must go before removing pastebin. (http://dev.ckeditor.com/ticket/8691)\r
+                               sel.selectBookmarks( bms );\r
+                               pastebin.remove();\r
+\r
+                               // Grab the HTML contents.\r
+                               // We need to look for a apple style wrapper on webkit it also adds\r
+                               // a div wrapper if you copy/paste the body of the editor.\r
+                               // Remove hidden div and restore selection.\r
+                               var bogusSpan;\r
+                               if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) )\r
+                                       pastebin = bogusSpan;\r
+\r
+                               editor.removeListener( 'selectionChange', cancel );\r
+                               callback( pastebin.getHtml() );\r
+                       }, 0 );\r
+               }\r
+\r
+               // Try to get content directly on IE from clipboard, without native event\r
+               // being fired before. In other words - synthetically get clipboard data, if it's possible.\r
+               // mainPasteEvent will be fired, so if forced native paste:\r
+               // * worked, getClipboardDataByPastebin will grab it,\r
+               // * didn't work, dataValue and dataTransfer will be empty and editor#paste won't be fired.\r
+               // Clipboard data can be accessed directly only on IEs older than Edge.\r
+               // On other browsers we should fire beforePaste event and return false.\r
+               function getClipboardDataDirectly() {\r
+                       if ( clipboard.mainPasteEvent == 'paste' ) {\r
+                               editor.fire( 'beforePaste', { type: 'auto', method: 'paste' } );\r
+                               return false;\r
+                       }\r
+\r
+                       // Prevent IE from pasting at the begining of the document.\r
+                       editor.focus();\r
+\r
+                       // Command will be handled by 'beforepaste', but as\r
+                       // execIECommand( 'paste' ) will fire also 'paste' event\r
+                       // we're canceling it.\r
+                       preventPasteEventNow();\r
+\r
+                       // http://dev.ckeditor.com/ticket/9247: Lock focus to prevent IE from hiding toolbar for inline editor.\r
+                       var focusManager = editor.focusManager;\r
+                       focusManager.lock();\r
+\r
+                       if ( editor.editable().fire( clipboard.mainPasteEvent ) && !execIECommand( 'paste' ) ) {\r
+                               focusManager.unlock();\r
+                               return false;\r
+                       }\r
+                       focusManager.unlock();\r
+\r
+                       return true;\r
+               }\r
+\r
+               // Listens for some clipboard related keystrokes, so they get customized.\r
+               // Needs to be bind to keydown event.\r
+               function onKey( event ) {\r
+                       if ( editor.mode != 'wysiwyg' )\r
+                               return;\r
+\r
+                       switch ( event.data.keyCode ) {\r
+                               // Paste\r
+                               case CKEDITOR.CTRL + 86: // CTRL+V\r
+                               case CKEDITOR.SHIFT + 45: // SHIFT+INS\r
+                                       var editable = editor.editable();\r
+\r
+                                       // Cancel 'paste' event because ctrl+v is for IE handled\r
+                                       // by 'beforepaste'.\r
+                                       preventPasteEventNow();\r
+\r
+                                       // Simulate 'beforepaste' event for all browsers using 'paste' as main event.\r
+                                       if ( clipboard.mainPasteEvent == 'paste' ) {\r
+                                               editable.fire( 'beforepaste' );\r
+                                       }\r
+\r
+                                       return;\r
+\r
+                                       // Cut\r
+                               case CKEDITOR.CTRL + 88: // CTRL+X\r
+                               case CKEDITOR.SHIFT + 46: // SHIFT+DEL\r
+                                       // Save Undo snapshot.\r
+                                       editor.fire( 'saveSnapshot' ); // Save before cut\r
+                                       setTimeout( function() {\r
+                                               editor.fire( 'saveSnapshot' ); // Save after cut\r
+                                       }, 50 ); // OSX is slow (http://dev.ckeditor.com/ticket/11416).\r
+                       }\r
+               }\r
+\r
+               function pasteDataFromClipboard( evt ) {\r
+                       // Default type is 'auto', but can be changed by beforePaste listeners.\r
+                       var eventData = {\r
+                                       type: 'auto',\r
+                                       method: 'paste',\r
+                                       dataTransfer: clipboard.initPasteDataTransfer( evt )\r
+                               };\r
+\r
+                       eventData.dataTransfer.cacheData();\r
+\r
+                       // Fire 'beforePaste' event so clipboard flavor get customized by other plugins.\r
+                       // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing\r
+                       // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically\r
+                       // and natively pasted content and prevent its insertion into editor\r
+                       // after canceling 'beforePaste' event.\r
+                       var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData ) !== false;\r
+\r
+                       // Do not use paste bin if the browser let us get HTML or files from dataTranfer.\r
+                       if ( beforePasteNotCanceled && clipboard.canClipboardApiBeTrusted( eventData.dataTransfer, editor ) ) {\r
+                               evt.data.preventDefault();\r
+                               setTimeout( function() {\r
+                                       firePasteEvents( editor, eventData );\r
+                               }, 0 );\r
+                       } else {\r
+                               getClipboardDataByPastebin( evt, function( data ) {\r
+                                       // Clean up.\r
+                                       eventData.dataValue = data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig, '' );\r
+\r
+                                       // Fire remaining events (without beforePaste)\r
+                                       beforePasteNotCanceled && firePasteEvents( editor, eventData );\r
+                               } );\r
+                       }\r
+               }\r
+\r
+               function setToolbarStates() {\r
+                       if ( editor.mode != 'wysiwyg' )\r
+                               return;\r
+\r
+                       var pasteState = stateFromNamedCommand( 'paste' );\r
+\r
+                       editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'cut' ) );\r
+                       editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'copy' ) );\r
+                       editor.getCommand( 'paste' ).setState( pasteState );\r
+                       editor.fire( 'pasteState', pasteState );\r
+               }\r
+\r
+               function stateFromNamedCommand( command ) {\r
+                       if ( inReadOnly && command in { paste: 1, cut: 1 } )\r
+                               return CKEDITOR.TRISTATE_DISABLED;\r
+\r
+                       if ( command == 'paste' )\r
+                               return CKEDITOR.TRISTATE_OFF;\r
+\r
+                       // Cut, copy - check if the selection is not empty.\r
+                       var sel = editor.getSelection(),\r
+                               ranges = sel.getRanges(),\r
+                               selectionIsEmpty = sel.getType() == CKEDITOR.SELECTION_NONE || ( ranges.length == 1 && ranges[ 0 ].collapsed );\r
+\r
+                       return selectionIsEmpty ? CKEDITOR.TRISTATE_DISABLED : CKEDITOR.TRISTATE_OFF;\r
+               }\r
+       }\r
+\r
+       // Returns:\r
+       // * 'htmlifiedtext' if content looks like transformed by browser from plain text.\r
+       //              See clipboard/paste.html TCs for more info.\r
+       // * 'html' if it is not 'htmlifiedtext'.\r
+       function recogniseContentType( data ) {\r
+               if ( CKEDITOR.env.webkit ) {\r
+                       // Plain text or ( <div><br></div> and text inside <div> ).\r
+                       if ( !data.match( /^[^<]*$/g ) && !data.match( /^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi ) )\r
+                               return 'html';\r
+               } else if ( CKEDITOR.env.ie ) {\r
+                       // Text and <br> or ( text and <br> in <p> - paragraphs can be separated by new \r\n ).\r
+                       if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) && !data.match( /^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi ) )\r
+                               return 'html';\r
+               } else if ( CKEDITOR.env.gecko ) {\r
+                       // Text or <br>.\r
+                       if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) )\r
+                               return 'html';\r
+               } else {\r
+                       return 'html';\r
+               }\r
+\r
+               return 'htmlifiedtext';\r
+       }\r
+\r
+       // This function transforms what browsers produce when\r
+       // pasting plain text into editable element (see clipboard/paste.html TCs\r
+       // for more info) into correct HTML (similar to that produced by text2Html).\r
+       function htmlifiedTextHtmlification( config, data ) {\r
+               function repeatParagraphs( repeats ) {\r
+                       // Repeat blocks floor((n+1)/2) times.\r
+                       // Even number of repeats - add <br> at the beginning of last <p>.\r
+                       return CKEDITOR.tools.repeat( '</p><p>', ~~( repeats / 2 ) ) + ( repeats % 2 == 1 ? '<br>' : '' );\r
+               }\r
+\r
+                       // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space.\r
+               data = data.replace( /\s+/g, ' ' )\r
+                       // Remove spaces from between tags.\r
+                       .replace( /> +</g, '><' )\r
+                       // Normalize XHTML syntax and upper cased <br> tags.\r
+                       .replace( /<br ?\/>/gi, '<br>' );\r
+\r
+               // IE - lower cased tags.\r
+               data = data.replace( /<\/?[A-Z]+>/g, function( match ) {\r
+                       return match.toLowerCase();\r
+               } );\r
+\r
+               // Don't touch single lines (no <br|p|div>) - nothing to do here.\r
+               if ( data.match( /^[^<]$/ ) )\r
+                       return data;\r
+\r
+               // Webkit.\r
+               if ( CKEDITOR.env.webkit && data.indexOf( '<div>' ) > -1 ) {\r
+                               // One line break at the beginning - insert <br>\r
+                       data = data.replace( /^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g, '<br>' )\r
+                               // Two or more - reduce number of new lines by one.\r
+                               .replace( /^(<div>(<br>|)<\/div>){2}(?!$)/g, '<div></div>' );\r
+\r
+                       // Two line breaks create one paragraph in Webkit.\r
+                       if ( data.match( /<div>(<br>|)<\/div>/ ) ) {\r
+                               data = '<p>' + data.replace( /(<div>(<br>|)<\/div>)+/g, function( match ) {\r
+                                       return repeatParagraphs( match.split( '</div><div>' ).length + 1 );\r
+                               } ) + '</p>';\r
+                       }\r
+\r
+                       // One line break create br.\r
+                       data = data.replace( /<\/div><div>/g, '<br>' );\r
+\r
+                       // Remove remaining divs.\r
+                       data = data.replace( /<\/?div>/g, '' );\r
+               }\r
+\r
+               // Opera and Firefox and enterMode != BR.\r
+               if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR ) {\r
+                       // Remove bogus <br> - Fx generates two <brs> for one line break.\r
+                       // For two line breaks it still produces two <brs>, but it's better to ignore this case than the first one.\r
+                       if ( CKEDITOR.env.gecko )\r
+                               data = data.replace( /^<br><br>$/, '<br>' );\r
+\r
+                       // This line satisfy edge case when for Opera we have two line breaks\r
+                       //data = data.replace( /)\r
+\r
+                       if ( data.indexOf( '<br><br>' ) > -1 ) {\r
+                               // Two line breaks create one paragraph, three - 2, four - 3, etc.\r
+                               data = '<p>' + data.replace( /(<br>){2,}/g, function( match ) {\r
+                                       return repeatParagraphs( match.length / 4 );\r
+                               } ) + '</p>';\r
+                       }\r
+               }\r
+\r
+               return switchEnterMode( config, data );\r
+       }\r
+\r
+       function filtersFactoryFactory() {\r
+               var filters = {};\r
+\r
+               function setUpTags() {\r
+                       var tags = {};\r
+\r
+                       for ( var tag in CKEDITOR.dtd ) {\r
+                               if ( tag.charAt( 0 ) != '$' && tag != 'div' && tag != 'span' ) {\r
+                                       tags[ tag ] = 1;\r
+                               }\r
+                       }\r
+\r
+                       return tags;\r
+               }\r
+\r
+               function createSemanticContentFilter() {\r
+                       var filter = new CKEDITOR.filter();\r
+\r
+                       filter.allow( {\r
+                               $1: {\r
+                                       elements: setUpTags(),\r
+                                       attributes: true,\r
+                                       styles: false,\r
+                                       classes: false\r
+                               }\r
+                       } );\r
+\r
+                       return filter;\r
+               }\r
+\r
+               return {\r
+                       get: function( type ) {\r
+                               if ( type == 'plain-text' ) {\r
+                                       // Does this look confusing to you? Did we forget about enter mode?\r
+                                       // It is a trick that let's us creating one filter for edidtor, regardless of its\r
+                                       // activeEnterMode (which as the name indicates can change during runtime).\r
+                                       //\r
+                                       // How does it work?\r
+                                       // The active enter mode is passed to the filter.applyTo method.\r
+                                       // The filter first marks all elements except <br> as disallowed and then tries to remove\r
+                                       // them. However, it cannot remove e.g. a <p> element completely, because it's a basic structural element,\r
+                                       // so it tries to replace it with an element created based on the active enter mode, eventually doing nothing.\r
+                                       //\r
+                                       // Now you can sleep well.\r
+                                       return filters.plainText || ( filters.plainText = new CKEDITOR.filter( 'br' ) );\r
+                               } else if ( type == 'semantic-content' ) {\r
+                                       return filters.semanticContent || ( filters.semanticContent = createSemanticContentFilter() );\r
+                               } else if ( type ) {\r
+                                       // Create filter based on rules (string or object).\r
+                                       return new CKEDITOR.filter( type );\r
+                               }\r
+\r
+                               return null;\r
+                       }\r
+               };\r
+       }\r
+\r
+       function filterContent( editor, data, filter ) {\r
+               var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data ),\r
+                       writer = new CKEDITOR.htmlParser.basicWriter();\r
+\r
+               filter.applyTo( fragment, true, false, editor.activeEnterMode );\r
+               fragment.writeHtml( writer );\r
+\r
+               return writer.getHtml();\r
+       }\r
+\r
+       function switchEnterMode( config, data ) {\r
+               if ( config.enterMode == CKEDITOR.ENTER_BR ) {\r
+                       data = data.replace( /(<\/p><p>)+/g, function( match ) {\r
+                               return CKEDITOR.tools.repeat( '<br>', match.length / 7 * 2 );\r
+                       } ).replace( /<\/?p>/g, '' );\r
+               } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) {\r
+                       data = data.replace( /<(\/)?p>/g, '<$1div>' );\r
+               }\r
+\r
+               return data;\r
+       }\r
+\r
+       function preventDefaultSetDropEffectToNone( evt ) {\r
+               evt.data.preventDefault();\r
+               evt.data.$.dataTransfer.dropEffect = 'none';\r
+       }\r
+\r
+       function initDragDrop( editor ) {\r
+               var clipboard = CKEDITOR.plugins.clipboard;\r
+\r
+               editor.on( 'contentDom', function() {\r
+                       var editable = editor.editable(),\r
+                               dropTarget = CKEDITOR.plugins.clipboard.getDropTarget( editor ),\r
+                               top = editor.ui.space( 'top' ),\r
+                               bottom = editor.ui.space( 'bottom' );\r
+\r
+                       // -------------- DRAGOVER TOP & BOTTOM --------------\r
+\r
+                       // Not allowing dragging on toolbar and bottom (http://dev.ckeditor.com/ticket/12613).\r
+                       clipboard.preventDefaultDropOnElement( top );\r
+                       clipboard.preventDefaultDropOnElement( bottom );\r
+\r
+                       // -------------- DRAGSTART --------------\r
+                       // Listed on dragstart to mark internal and cross-editor drag & drop\r
+                       // and save range and selected HTML.\r
+\r
+                       editable.attachListener( dropTarget, 'dragstart', fireDragEvent );\r
+\r
+                       // Make sure to reset data transfer (in case dragend was not called or was canceled).\r
+                       editable.attachListener( editor, 'dragstart', clipboard.resetDragDataTransfer, clipboard, null, 1 );\r
+\r
+                       // Create a dataTransfer object and save it globally.\r
+                       editable.attachListener( editor, 'dragstart', function( evt ) {\r
+                               clipboard.initDragDataTransfer( evt, editor );\r
+                       }, null, null, 2 );\r
+\r
+                       editable.attachListener( editor, 'dragstart', function() {\r
+                               // Save drag range globally for cross editor D&D.\r
+                               var dragRange = clipboard.dragRange = editor.getSelection().getRanges()[ 0 ];\r
+\r
+                               // Store number of children, so we can later tell if any text node was split on drop. (http://dev.ckeditor.com/ticket/13011, http://dev.ckeditor.com/ticket/13447)\r
+                               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
+                                       clipboard.dragStartContainerChildCount = dragRange ? getContainerChildCount( dragRange.startContainer ) : null;\r
+                                       clipboard.dragEndContainerChildCount = dragRange ? getContainerChildCount( dragRange.endContainer ) : null;\r
+                               }\r
+                       }, null, null, 100 );\r
+\r
+                       // -------------- DRAGEND --------------\r
+                       // Clean up on dragend.\r
+\r
+                       editable.attachListener( dropTarget, 'dragend', fireDragEvent );\r
+\r
+                       // Init data transfer if someone wants to use it in dragend.\r
+                       editable.attachListener( editor, 'dragend', clipboard.initDragDataTransfer, clipboard, null, 1 );\r
+\r
+                       // When drag & drop is done we need to reset dataTransfer so the future\r
+                       // external drop will be not recognize as internal.\r
+                       editable.attachListener( editor, 'dragend', clipboard.resetDragDataTransfer, clipboard, null, 100 );\r
+\r
+                       // -------------- DRAGOVER --------------\r
+                       // We need to call preventDefault on dragover because otherwise if\r
+                       // we drop image it will overwrite document.\r
+\r
+                       editable.attachListener( dropTarget, 'dragover', function( evt ) {\r
+                               // Edge requires this handler to have `preventDefault()` regardless of the situation.\r
+                               if ( CKEDITOR.env.edge ) {\r
+                                       evt.data.preventDefault();\r
+                                       return;\r
+                               }\r
+\r
+                               var target = evt.data.getTarget();\r
+\r
+                               // Prevent reloading page when dragging image on empty document (http://dev.ckeditor.com/ticket/12619).\r
+                               if ( target && target.is && target.is( 'html' ) ) {\r
+                                       evt.data.preventDefault();\r
+                                       return;\r
+                               }\r
+\r
+                               // If we do not prevent default dragover on IE the file path\r
+                               // will be loaded and we will lose content. On the other hand\r
+                               // if we prevent it the cursor will not we shown, so we prevent\r
+                               // dragover only on IE, on versions which support file API and only\r
+                               // if the event contains files.\r
+                               if ( CKEDITOR.env.ie &&\r
+                                       CKEDITOR.plugins.clipboard.isFileApiSupported &&\r
+                                       evt.data.$.dataTransfer.types.contains( 'Files' ) ) {\r
+                                       evt.data.preventDefault();\r
+                               }\r
+                       } );\r
+\r
+                       // -------------- DROP --------------\r
+\r
+                       editable.attachListener( dropTarget, 'drop', function( evt ) {\r
+                               // Do nothing if event was already prevented. (http://dev.ckeditor.com/ticket/13879)\r
+                               if ( evt.data.$.defaultPrevented ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // Cancel native drop.\r
+                               evt.data.preventDefault();\r
+\r
+                               var target = evt.data.getTarget(),\r
+                                       readOnly = target.isReadOnly();\r
+\r
+                               // Do nothing if drop on non editable element (http://dev.ckeditor.com/ticket/13015).\r
+                               // The <html> tag isn't editable (body is), but we want to allow drop on it\r
+                               // (so it is possible to drop below editor contents).\r
+                               if ( readOnly && !( target.type == CKEDITOR.NODE_ELEMENT && target.is( 'html' ) ) ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // Getting drop position is one of the most complex parts.\r
+                               var dropRange = clipboard.getRangeAtDropPosition( evt, editor ),\r
+                                       dragRange = clipboard.dragRange;\r
+\r
+                               // Do nothing if it was not possible to get drop range.\r
+                               if ( !dropRange ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // Fire drop.\r
+                               fireDragEvent( evt, dragRange, dropRange  );\r
+                       }, null, null, 9999 );\r
+\r
+                       // Create dataTransfer or get it, if it was created before.\r
+                       editable.attachListener( editor, 'drop', clipboard.initDragDataTransfer, clipboard, null, 1 );\r
+\r
+                       // Execute drop action, fire paste.\r
+                       editable.attachListener( editor, 'drop', function( evt ) {\r
+                               var data = evt.data;\r
+\r
+                               if ( !data ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // Let user modify drag and drop range.\r
+                               var dropRange = data.dropRange,\r
+                                       dragRange = data.dragRange,\r
+                                       dataTransfer = data.dataTransfer;\r
+\r
+                               if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_INTERNAL ) {\r
+                                       // Execute drop with a timeout because otherwise selection, after drop,\r
+                                       // on IE is in the drag position, instead of drop position.\r
+                                       setTimeout( function() {\r
+                                               clipboard.internalDrop( dragRange, dropRange, dataTransfer, editor );\r
+                                       }, 0 );\r
+                               } else if ( dataTransfer.getTransferType( editor ) == CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) {\r
+                                       crossEditorDrop( dragRange, dropRange, dataTransfer );\r
+                               } else {\r
+                                       externalDrop( dropRange, dataTransfer );\r
+                               }\r
+                       }, null, null, 9999 );\r
+\r
+                       // Cross editor drag and drop (drag in one Editor and drop in the other).\r
+                       function crossEditorDrop( dragRange, dropRange, dataTransfer ) {\r
+                               // Paste event should be fired before delete contents because otherwise\r
+                               // Chrome have a problem with drop range (Chrome split the drop\r
+                               // range container so the offset is bigger then container length).\r
+                               dropRange.select();\r
+                               firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 );\r
+\r
+                               // Remove dragged content and make a snapshot.\r
+                               dataTransfer.sourceEditor.fire( 'saveSnapshot' );\r
+\r
+                               dataTransfer.sourceEditor.editable().extractHtmlFromRange( dragRange );\r
+\r
+                               // Make some selection before saving snapshot, otherwise error will be thrown, because\r
+                               // there will be no valid selection after content is removed.\r
+                               dataTransfer.sourceEditor.getSelection().selectRanges( [ dragRange ] );\r
+                               dataTransfer.sourceEditor.fire( 'saveSnapshot' );\r
+                       }\r
+\r
+                       // Drop from external source.\r
+                       function externalDrop( dropRange, dataTransfer ) {\r
+                               // Paste content into the drop position.\r
+                               dropRange.select();\r
+\r
+                               firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop' }, 1 );\r
+\r
+                               // Usually we reset DataTranfer on dragend,\r
+                               // but dragend is called on the same element as dragstart\r
+                               // so it will not be called on on external drop.\r
+                               clipboard.resetDragDataTransfer();\r
+                       }\r
+\r
+                       // Fire drag/drop events (dragstart, dragend, drop).\r
+                       function fireDragEvent( evt, dragRange, dropRange ) {\r
+                               var eventData = {\r
+                                               $: evt.data.$,\r
+                                               target: evt.data.getTarget()\r
+                                       };\r
+\r
+                               if ( dragRange ) {\r
+                                       eventData.dragRange = dragRange;\r
+                               }\r
+                               if ( dropRange ) {\r
+                                       eventData.dropRange = dropRange;\r
+                               }\r
+\r
+                               if ( editor.fire( evt.name, eventData ) === false ) {\r
+                                       evt.data.preventDefault();\r
+                               }\r
+                       }\r
+\r
+                       function getContainerChildCount( container ) {\r
+                               if ( container.type != CKEDITOR.NODE_ELEMENT ) {\r
+                                       container = container.getParent();\r
+                               }\r
+\r
+                               return container.getChildCount();\r
+                       }\r
+               } );\r
+       }\r
+\r
+       /**\r
+        * @singleton\r
+        * @class CKEDITOR.plugins.clipboard\r
+        */\r
+       CKEDITOR.plugins.clipboard = {\r
+               /**\r
+                * True if the environment allows to set data on copy or cut manually. This value is false in IE, because this browser\r
+                * shows the security dialog window when the script tries to set clipboard data and on iOS, because custom data is\r
+                * not saved to clipboard there.\r
+                *\r
+                * @since 4.5\r
+                * @readonly\r
+                * @property {Boolean}\r
+                */\r
+               isCustomCopyCutSupported: !CKEDITOR.env.ie && !CKEDITOR.env.iOS,\r
+\r
+               /**\r
+                * True if the environment supports MIME types and custom data types in dataTransfer/cliboardData getData/setData methods.\r
+                *\r
+                * @since 4.5\r
+                * @readonly\r
+                * @property {Boolean}\r
+                */\r
+               isCustomDataTypesSupported: !CKEDITOR.env.ie,\r
+\r
+               /**\r
+                * True if the environment supports File API.\r
+                *\r
+                * @since 4.5\r
+                * @readonly\r
+                * @property {Boolean}\r
+                */\r
+               isFileApiSupported: !CKEDITOR.env.ie || CKEDITOR.env.version > 9,\r
+\r
+               /**\r
+                * Main native paste event editable should listen to.\r
+                *\r
+                * **Note:** Safari does not like the {@link CKEDITOR.editor#beforePaste} event &mdash; it sometimes does not\r
+                * handle <kbd>Ctrl+C</kbd> properly. This is probably caused by some race condition between events.\r
+                * Chrome, Firefox and Edge work well with both events, so it is better to use {@link CKEDITOR.editor#paste}\r
+                * which will handle pasting from e.g. browsers' menu bars.\r
+                * IE7/8 does not like the {@link CKEDITOR.editor#paste} event for which it is throwing random errors.\r
+                *\r
+                * @since 4.5\r
+                * @readonly\r
+                * @property {String}\r
+                */\r
+               mainPasteEvent: ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) ? 'beforepaste' : 'paste',\r
+\r
+               /**\r
+                * Returns `true` if it is expected that a browser provides HTML data through the Clipboard API.\r
+                * If not, this method returns `false` and as a result CKEditor will use the paste bin. Read more in\r
+                * the [Clipboard Integration](http://docs.ckeditor.com/#!/guide/dev_clipboard-section-clipboard-api) guide.\r
+                *\r
+                * @since 4.5.2\r
+                * @returns {Boolean}\r
+                */\r
+               canClipboardApiBeTrusted: function( dataTransfer, editor ) {\r
+                       // If it's an internal or cross-editor data transfer, then it means that custom cut/copy/paste support works\r
+                       // and that the data were put manually on the data transfer so we can be sure that it's available.\r
+                       if ( dataTransfer.getTransferType( editor ) != CKEDITOR.DATA_TRANSFER_EXTERNAL ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // In Chrome we can trust Clipboard API, with the exception of Chrome on Android (in both - mobile and desktop modes), where\r
+                       // clipboard API is not available so we need to check it (http://dev.ckeditor.com/ticket/13187).\r
+                       if ( CKEDITOR.env.chrome && !dataTransfer.isEmpty() ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // Because of a Firefox bug HTML data are not available in some cases (e.g. paste from Word), in such cases we\r
+                       // need to use the pastebin (http://dev.ckeditor.com/ticket/13528, https://bugzilla.mozilla.org/show_bug.cgi?id=1183686).\r
+                       if ( CKEDITOR.env.gecko && ( dataTransfer.getData( 'text/html' ) || dataTransfer.getFilesCount() ) ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // Safari fixed clipboard in 10.1 (https://bugs.webkit.org/show_bug.cgi?id=19893) (http://dev.ckeditor.com/ticket/16982).\r
+                       // However iOS version still doesn't work well enough (https://bugs.webkit.org/show_bug.cgi?id=19893#c34).\r
+                       if ( CKEDITOR.env.safari && CKEDITOR.env.version >= 603 && !CKEDITOR.env.iOS ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // In older Safari and IE HTML data is not available though the Clipboard API.\r
+                       // In Edge things are a bit messy at the moment -\r
+                       // https://connect.microsoft.com/IE/feedback/details/1572456/edge-clipboard-api-text-html-content-messed-up-in-event-clipboarddata\r
+                       // It is safer to use the paste bin in unknown cases.\r
+                       return false;\r
+               },\r
+\r
+               /**\r
+                * Returns the element that should be used as the target for the drop event.\r
+                *\r
+                * @since 4.5\r
+                * @param {CKEDITOR.editor} editor The editor instance.\r
+                * @returns {CKEDITOR.dom.domObject} the element that should be used as the target for the drop event.\r
+                */\r
+               getDropTarget: function( editor ) {\r
+                       var editable = editor.editable();\r
+\r
+                       // http://dev.ckeditor.com/ticket/11123 Firefox needs to listen on document, because otherwise event won't be fired.\r
+                       // http://dev.ckeditor.com/ticket/11086 IE8 cannot listen on document.\r
+                       if ( ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) || editable.isInline() ) {\r
+                               return editable;\r
+                       } else {\r
+                               return editor.document;\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * IE 8 & 9 split text node on drop so the first node contains the\r
+                * text before the drop position and the second contains the rest. If you\r
+                * drag the content from the same node you will be not be able to get\r
+                * it (the range becomes invalid), so you need to join them back.\r
+                *\r
+                * Note that the first node in IE 8 & 9 is the original node object\r
+                * but with shortened content.\r
+                *\r
+                *              Before:\r
+                *                --- Text Node A ----------------------------------\r
+                *                                                           /\\r
+                *                                                      Drag position\r
+                *\r
+                *              After (IE 8 & 9):\r
+                *                --- Text Node A -----  --- Text Node B -----------\r
+                *                                     /\                    /\\r
+                *                                Drop position        Drag position\r
+                *                                                       (invalid)\r
+                *\r
+                *              After (other browsers):\r
+                *                --- Text Node A ----------------------------------\r
+                *                                     /\                    /\\r
+                *                                Drop position        Drag position\r
+                *\r
+                * **Note:** This function is in the public scope for tests usage only.\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @param {CKEDITOR.dom.range} dragRange The drag range.\r
+                * @param {CKEDITOR.dom.range} dropRange The drop range.\r
+                * @param {Number} preDragStartContainerChildCount The number of children of the drag range start container before the drop.\r
+                * @param {Number} preDragEndContainerChildCount The number of children of the drag range end container before the drop.\r
+                */\r
+               fixSplitNodesAfterDrop: function( dragRange, dropRange, preDragStartContainerChildCount, preDragEndContainerChildCount ) {\r
+                       var dropContainer = dropRange.startContainer;\r
+\r
+                       if (\r
+                               typeof preDragEndContainerChildCount != 'number' ||\r
+                               typeof preDragStartContainerChildCount != 'number'\r
+                       ) {\r
+                               return;\r
+                       }\r
+\r
+                       // We are only concerned about ranges anchored in elements.\r
+                       if ( dropContainer.type != CKEDITOR.NODE_ELEMENT ) {\r
+                               return;\r
+                       }\r
+\r
+                       if ( handleContainer( dragRange.startContainer, dropContainer, preDragStartContainerChildCount ) ) {\r
+                               return;\r
+                       }\r
+\r
+                       if ( handleContainer( dragRange.endContainer, dropContainer, preDragEndContainerChildCount ) ) {\r
+                               return;\r
+                       }\r
+\r
+                       function handleContainer( dragContainer, dropContainer, preChildCount ) {\r
+                               var dragElement = dragContainer;\r
+                               if ( dragElement.type == CKEDITOR.NODE_TEXT ) {\r
+                                       dragElement = dragContainer.getParent();\r
+                               }\r
+\r
+                               if ( dragElement.equals( dropContainer ) && preChildCount != dropContainer.getChildCount() ) {\r
+                                       applyFix( dropRange );\r
+                                       return true;\r
+                               }\r
+                       }\r
+\r
+                       function applyFix( dropRange ) {\r
+                               var nodeBefore = dropRange.startContainer.getChild( dropRange.startOffset - 1 ),\r
+                                       nodeAfter = dropRange.startContainer.getChild( dropRange.startOffset );\r
+\r
+                               if (\r
+                                       nodeBefore && nodeBefore.type == CKEDITOR.NODE_TEXT &&\r
+                                       nodeAfter && nodeAfter.type == CKEDITOR.NODE_TEXT\r
+                               ) {\r
+                                       var offset = nodeBefore.getLength();\r
+\r
+                                       nodeBefore.setText( nodeBefore.getText() + nodeAfter.getText() );\r
+                                       nodeAfter.remove();\r
+\r
+                                       dropRange.setStart( nodeBefore, offset );\r
+                                       dropRange.collapse( true );\r
+                               }\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Checks whether turning the drag range into bookmarks will invalidate the drop range.\r
+                * This usually happens when the drop range shares the container with the drag range and is\r
+                * located after the drag range, but there are countless edge cases.\r
+                *\r
+                * This function is stricly related to {@link #internalDrop} which toggles\r
+                * order in which it creates bookmarks for both ranges based on a value returned\r
+                * by this method. In some cases this method returns a value which is not necessarily\r
+                * true in terms of what it was meant to check, but it is convenient, because\r
+                * we know how it is interpreted in {@link #internalDrop}, so the correct\r
+                * behavior of the entire algorithm is assured.\r
+                *\r
+                * **Note:** This function is in the public scope for tests usage only.\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @param {CKEDITOR.dom.range} dragRange The first range to compare.\r
+                * @param {CKEDITOR.dom.range} dropRange The second range to compare.\r
+                * @returns {Boolean} `true` if the first range is before the second range.\r
+                */\r
+               isDropRangeAffectedByDragRange: function( dragRange, dropRange ) {\r
+                       var dropContainer = dropRange.startContainer,\r
+                               dropOffset = dropRange.endOffset;\r
+\r
+                       // Both containers are the same and drop offset is at the same position or later.\r
+                       // " A L] A " " M A "\r
+                       //       ^ ^\r
+                       if ( dragRange.endContainer.equals( dropContainer ) && dragRange.endOffset <= dropOffset ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // Bookmark for drag start container will mess up with offsets.\r
+                       // " O [L A " " M A "\r
+                       //           ^       ^\r
+                       if (\r
+                               dragRange.startContainer.getParent().equals( dropContainer ) &&\r
+                               dragRange.startContainer.getIndex() < dropOffset\r
+                       ) {\r
+                               return true;\r
+                       }\r
+\r
+                       // Bookmark for drag end container will mess up with offsets.\r
+                       // " O] L A " " M A "\r
+                       //           ^       ^\r
+                       if (\r
+                               dragRange.endContainer.getParent().equals( dropContainer ) &&\r
+                               dragRange.endContainer.getIndex() < dropOffset\r
+                       ) {\r
+                               return true;\r
+                       }\r
+\r
+                       return false;\r
+               },\r
+\r
+               /**\r
+                * Internal drag and drop (drag and drop in the same editor instance).\r
+                *\r
+                * **Note:** This function is in the public scope for tests usage only.\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @param {CKEDITOR.dom.range} dragRange The first range to compare.\r
+                * @param {CKEDITOR.dom.range} dropRange The second range to compare.\r
+                * @param {CKEDITOR.plugins.clipboard.dataTransfer} dataTransfer\r
+                * @param {CKEDITOR.editor} editor\r
+                */\r
+               internalDrop: function( dragRange, dropRange, dataTransfer, editor ) {\r
+                       var clipboard = CKEDITOR.plugins.clipboard,\r
+                               editable = editor.editable(),\r
+                               dragBookmark, dropBookmark, isDropRangeAffected;\r
+\r
+                       // Save and lock snapshot so there will be only\r
+                       // one snapshot for both remove and insert content.\r
+                       editor.fire( 'saveSnapshot' );\r
+                       editor.fire( 'lockSnapshot', { dontUpdate: 1 } );\r
+\r
+                       if ( CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
+                               this.fixSplitNodesAfterDrop(\r
+                                       dragRange,\r
+                                       dropRange,\r
+                                       clipboard.dragStartContainerChildCount,\r
+                                       clipboard.dragEndContainerChildCount\r
+                               );\r
+                       }\r
+\r
+                       // Because we manipulate multiple ranges we need to do it carefully,\r
+                       // changing one range (event creating a bookmark) may make other invalid.\r
+                       // We need to change ranges into bookmarks so we can manipulate them easily in the future.\r
+                       // We can change the range which is later in the text before we change the preceding range.\r
+                       // We call isDropRangeAffectedByDragRange to test the order of ranges.\r
+                       isDropRangeAffected = this.isDropRangeAffectedByDragRange( dragRange, dropRange );\r
+                       if ( !isDropRangeAffected ) {\r
+                               dragBookmark = dragRange.createBookmark( false );\r
+                       }\r
+                       dropBookmark = dropRange.clone().createBookmark( false );\r
+                       if ( isDropRangeAffected ) {\r
+                               dragBookmark = dragRange.createBookmark( false );\r
+                       }\r
+\r
+                       // Check if drop range is inside range.\r
+                       // This is an edge case when we drop something on editable's margin/padding.\r
+                       // That space is not treated as a part of the range we drag, so it is possible to drop there.\r
+                       // When we drop, browser tries to find closest drop position and it finds it inside drag range. (http://dev.ckeditor.com/ticket/13453)\r
+                       var startNode = dragBookmark.startNode,\r
+                               endNode = dragBookmark.endNode,\r
+                               dropNode = dropBookmark.startNode,\r
+                               dropInsideDragRange =\r
+                                       // Must check endNode because dragRange could be collapsed in some edge cases (simulated DnD).\r
+                                       endNode &&\r
+                                       ( startNode.getPosition( dropNode ) & CKEDITOR.POSITION_PRECEDING ) &&\r
+                                       ( endNode.getPosition( dropNode ) & CKEDITOR.POSITION_FOLLOWING );\r
+\r
+                       // If the drop range happens to be inside drag range change it's position to the beginning of the drag range.\r
+                       if ( dropInsideDragRange ) {\r
+                               // We only change position of bookmark span that is connected with dropBookmark.\r
+                               // dropRange will be overwritten and set to the dropBookmark later.\r
+                               dropNode.insertBefore( startNode );\r
+                       }\r
+\r
+                       // No we can safely delete content for the drag range...\r
+                       dragRange = editor.createRange();\r
+                       dragRange.moveToBookmark( dragBookmark );\r
+                       editable.extractHtmlFromRange( dragRange, 1 );\r
+\r
+                       // ...and paste content into the drop position.\r
+                       dropRange = editor.createRange();\r
+                       dropRange.moveToBookmark( dropBookmark );\r
+\r
+                       // We do not select drop range, because of may be in the place we can not set the selection\r
+                       // (e.g. between blocks, in case of block widget D&D). We put range to the paste event instead.\r
+                       firePasteEvents( editor, { dataTransfer: dataTransfer, method: 'drop', range: dropRange }, 1 );\r
+\r
+                       editor.fire( 'unlockSnapshot' );\r
+               },\r
+\r
+               /**\r
+                * Gets the range from the `drop` event.\r
+                *\r
+                * @since 4.5\r
+                * @param {Object} domEvent A native DOM drop event object.\r
+                * @param {CKEDITOR.editor} editor The source editor instance.\r
+                * @returns {CKEDITOR.dom.range} range at drop position.\r
+                */\r
+               getRangeAtDropPosition: function( dropEvt, editor ) {\r
+                       var $evt = dropEvt.data.$,\r
+                               x = $evt.clientX,\r
+                               y = $evt.clientY,\r
+                               $range,\r
+                               defaultRange = editor.getSelection( true ).getRanges()[ 0 ],\r
+                               range = editor.createRange();\r
+\r
+                       // Make testing possible.\r
+                       if ( dropEvt.data.testRange )\r
+                               return dropEvt.data.testRange;\r
+\r
+                       // Webkits.\r
+                       if ( document.caretRangeFromPoint && editor.document.$.caretRangeFromPoint( x, y ) ) {\r
+                               $range = editor.document.$.caretRangeFromPoint( x, y );\r
+                               range.setStart( CKEDITOR.dom.node( $range.startContainer ), $range.startOffset );\r
+                               range.collapse( true );\r
+                       }\r
+                       // FF.\r
+                       else if ( $evt.rangeParent ) {\r
+                               range.setStart( CKEDITOR.dom.node( $evt.rangeParent ), $evt.rangeOffset );\r
+                               range.collapse( true );\r
+                       }\r
+                       // IEs 9+.\r
+                       // We check if editable is focused to make sure that it's an internal DnD. External DnD must use the second\r
+                       // mechanism because of http://dev.ckeditor.com/ticket/13472#comment:6.\r
+                       else if ( CKEDITOR.env.ie && CKEDITOR.env.version > 8 && defaultRange && editor.editable().hasFocus ) {\r
+                               // On IE 9+ range by default is where we expected it.\r
+                               // defaultRange may be undefined if dragover was canceled (file drop).\r
+                               return defaultRange;\r
+                       }\r
+                       // IE 8 and all IEs if !defaultRange or external DnD.\r
+                       else if ( document.body.createTextRange ) {\r
+                               // To use this method we need a focus (which may be somewhere else in case of external drop).\r
+                               editor.focus();\r
+\r
+                               $range = editor.document.getBody().$.createTextRange();\r
+                               try {\r
+                                       var sucess = false;\r
+\r
+                                       // If user drop between text line IEs moveToPoint throws exception:\r
+                                       //\r
+                                       //              Lorem ipsum pulvinar purus et euismod\r
+                                       //\r
+                                       //              dolor sit amet,| consectetur adipiscing\r
+                                       //                             *\r
+                                       //              vestibulum tincidunt augue eget tempus.\r
+                                       //\r
+                                       // * - drop position\r
+                                       // | - expected cursor position\r
+                                       //\r
+                                       // So we try to call moveToPoint with +-1px up to +-20px above or\r
+                                       // below original drop position to find nearest good drop position.\r
+                                       for ( var i = 0; i < 20 && !sucess; i++ ) {\r
+                                               if ( !sucess ) {\r
+                                                       try {\r
+                                                               $range.moveToPoint( x, y - i );\r
+                                                               sucess = true;\r
+                                                       } catch ( err ) {\r
+                                                       }\r
+                                               }\r
+                                               if ( !sucess ) {\r
+                                                       try {\r
+                                                               $range.moveToPoint( x, y + i );\r
+                                                               sucess = true;\r
+                                                       } catch ( err ) {\r
+                                                       }\r
+                                               }\r
+                                       }\r
+\r
+                                       if ( sucess ) {\r
+                                               var id = 'cke-temp-' + ( new Date() ).getTime();\r
+                                               $range.pasteHTML( '<span id="' + id + '">\u200b</span>' );\r
+\r
+                                               var span = editor.document.getById( id );\r
+                                               range.moveToPosition( span, CKEDITOR.POSITION_BEFORE_START );\r
+                                               span.remove();\r
+                                       } else {\r
+                                               // If the fist method does not succeed we might be next to\r
+                                               // the short element (like header):\r
+                                               //\r
+                                               //              Lorem ipsum pulvinar purus et euismod.\r
+                                               //\r
+                                               //\r
+                                               //              SOME HEADER|        *\r
+                                               //\r
+                                               //\r
+                                               //              vestibulum tincidunt augue eget tempus.\r
+                                               //\r
+                                               // * - drop position\r
+                                               // | - expected cursor position\r
+                                               //\r
+                                               // In such situation elementFromPoint returns proper element. Using getClientRect\r
+                                               // it is possible to check if the cursor should be at the beginning or at the end\r
+                                               // of paragraph.\r
+                                               var $element = editor.document.$.elementFromPoint( x, y ),\r
+                                                       element = new CKEDITOR.dom.element( $element ),\r
+                                                       rect;\r
+\r
+                                               if ( !element.equals( editor.editable() ) && element.getName() != 'html' ) {\r
+                                                       rect = element.getClientRect();\r
+\r
+                                                       if ( x < rect.left ) {\r
+                                                               range.setStartAt( element, CKEDITOR.POSITION_AFTER_START );\r
+                                                               range.collapse( true );\r
+                                                       } else {\r
+                                                               range.setStartAt( element, CKEDITOR.POSITION_BEFORE_END );\r
+                                                               range.collapse( true );\r
+                                                       }\r
+                                               }\r
+                                               // If drop happens on no element elementFromPoint returns html or body.\r
+                                               //\r
+                                               //              *      |Lorem ipsum pulvinar purus et euismod.\r
+                                               //\r
+                                               //                     vestibulum tincidunt augue eget tempus.\r
+                                               //\r
+                                               // * - drop position\r
+                                               // | - expected cursor position\r
+                                               //\r
+                                               // In such case we can try to use default selection. If startContainer is not\r
+                                               // 'editable' element it is probably proper selection.\r
+                                               else if ( defaultRange && defaultRange.startContainer &&\r
+                                                       !defaultRange.startContainer.equals( editor.editable() ) ) {\r
+                                                       return defaultRange;\r
+\r
+                                               // Otherwise we can not find any drop position and we have to return null\r
+                                               // and cancel drop event.\r
+                                               } else {\r
+                                                       return null;\r
+                                               }\r
+\r
+                                       }\r
+                               } catch ( err ) {\r
+                                       return null;\r
+                               }\r
+                       } else {\r
+                               return null;\r
+                       }\r
+\r
+                       return range;\r
+               },\r
+\r
+               /**\r
+                * This function tries to link the `evt.data.dataTransfer` property of the {@link CKEDITOR.editor#dragstart},\r
+                * {@link CKEDITOR.editor#dragend} and {@link CKEDITOR.editor#drop} events to a single\r
+                * {@link CKEDITOR.plugins.clipboard.dataTransfer} object.\r
+                *\r
+                * This method is automatically used by the core of the drag and drop functionality and\r
+                * usually does not have to be called manually when using the drag and drop events.\r
+                *\r
+                * This method behaves differently depending on whether the drag and drop events were fired\r
+                * artificially (to represent a non-native drag and drop) or whether they were caused by the native drag and drop.\r
+                *\r
+                * If the native event is not available, then it will create a new {@link CKEDITOR.plugins.clipboard.dataTransfer}\r
+                * instance (if it does not exist already) and will link it to this and all following event objects until\r
+                * the {@link #resetDragDataTransfer} method is called. It means that all three drag and drop events must be fired\r
+                * in order to ensure that the data transfer is bound correctly.\r
+                *\r
+                * If the native event is available, then the {@link CKEDITOR.plugins.clipboard.dataTransfer} is identified\r
+                * by its ID and a new instance is assigned to the `evt.data.dataTransfer` only if the ID changed or\r
+                * the {@link #resetDragDataTransfer} method was called.\r
+                *\r
+                * @since 4.5\r
+                * @param {CKEDITOR.dom.event} [evt] A drop event object.\r
+                * @param {CKEDITOR.editor} [sourceEditor] The source editor instance.\r
+                */\r
+               initDragDataTransfer: function( evt, sourceEditor ) {\r
+                       // Create a new dataTransfer object based on the drop event.\r
+                       // If this event was used on dragstart to create dataTransfer\r
+                       // both dataTransfer objects will have the same id.\r
+                       var nativeDataTransfer = evt.data.$ ? evt.data.$.dataTransfer : null,\r
+                               dataTransfer = new this.dataTransfer( nativeDataTransfer, sourceEditor );\r
+\r
+                       if ( !nativeDataTransfer ) {\r
+                               // No native event.\r
+                               if ( this.dragData ) {\r
+                                       dataTransfer = this.dragData;\r
+                               } else {\r
+                                       this.dragData = dataTransfer;\r
+                               }\r
+                       } else {\r
+                               // Native event. If there is the same id we will replace dataTransfer with the one\r
+                               // created on drag, because it contains drag editor, drag content and so on.\r
+                               // Otherwise (in case of drag from external source) we save new object to\r
+                               // the global clipboard.dragData.\r
+                               if ( this.dragData && dataTransfer.id == this.dragData.id ) {\r
+                                       dataTransfer = this.dragData;\r
+                               } else {\r
+                                       this.dragData = dataTransfer;\r
+                               }\r
+                       }\r
+\r
+                       evt.data.dataTransfer = dataTransfer;\r
+               },\r
+\r
+               /**\r
+                * Removes the global {@link #dragData} so the next call to {@link #initDragDataTransfer}\r
+                * always creates a new instance of {@link CKEDITOR.plugins.clipboard.dataTransfer}.\r
+                *\r
+                * @since 4.5\r
+                */\r
+               resetDragDataTransfer: function() {\r
+                       this.dragData = null;\r
+               },\r
+\r
+               /**\r
+                * Global object storing the data transfer of the current drag and drop operation.\r
+                * Do not use it directly, use {@link #initDragDataTransfer} and {@link #resetDragDataTransfer}.\r
+                *\r
+                * Note: This object is global (meaning that it is not related to a single editor instance)\r
+                * in order to handle drag and drop from one editor into another.\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @property {CKEDITOR.plugins.clipboard.dataTransfer} dragData\r
+                */\r
+\r
+               /**\r
+                * Range object to save the drag range and remove its content after the drop.\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @property {CKEDITOR.dom.range} dragRange\r
+                */\r
+\r
+               /**\r
+                * Initializes and links data transfer objects based on the paste event. If the data\r
+                * transfer object was already initialized on this event, the function will\r
+                * return that object. In IE it is not possible to link copy/cut and paste events\r
+                * so the method always returns a new object. The same happens if there is no paste event\r
+                * passed to the method.\r
+                *\r
+                * @since 4.5\r
+                * @param {CKEDITOR.dom.event} [evt] A paste event object.\r
+                * @param {CKEDITOR.editor} [sourceEditor] The source editor instance.\r
+                * @returns {CKEDITOR.plugins.clipboard.dataTransfer} The data transfer object.\r
+                */\r
+               initPasteDataTransfer: function( evt, sourceEditor ) {\r
+                       if ( !this.isCustomCopyCutSupported ) {\r
+                               // Edge does not support custom copy/cut, but it have some useful data in the clipboardData (http://dev.ckeditor.com/ticket/13755).\r
+                               return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor );\r
+                       } else if ( evt && evt.data && evt.data.$ ) {\r
+                               var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor );\r
+\r
+                               if ( this.copyCutData && dataTransfer.id == this.copyCutData.id ) {\r
+                                       dataTransfer = this.copyCutData;\r
+                                       dataTransfer.$ = evt.data.$.clipboardData;\r
+                               } else {\r
+                                       this.copyCutData = dataTransfer;\r
+                               }\r
+\r
+                               return dataTransfer;\r
+                       } else {\r
+                               return new this.dataTransfer( null, sourceEditor );\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Prevents dropping on the specified element.\r
+                *\r
+                * @since 4.5\r
+                * @param {CKEDITOR.dom.element} element The element on which dropping should be disabled.\r
+                */\r
+               preventDefaultDropOnElement: function( element ) {\r
+                       element && element.on( 'dragover', preventDefaultSetDropEffectToNone );\r
+               }\r
+       };\r
+\r
+       // Data type used to link drag and drop events.\r
+       //\r
+       // In IE URL data type is buggie and there is no way to mark drag & drop  without\r
+       // modifying text data (which would be displayed if user drop content to the textarea)\r
+       // so we just read dragged text.\r
+       //\r
+       // In Chrome and Firefox we can use custom data types.\r
+       var clipboardIdDataType = CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ? 'cke/id' : 'Text';\r
+       /**\r
+        * Facade for the native `dataTransfer`/`clipboadData` object to hide all differences\r
+        * between browsers.\r
+        *\r
+        * @since 4.5\r
+        * @class CKEDITOR.plugins.clipboard.dataTransfer\r
+        * @constructor Creates a class instance.\r
+        * @param {Object} [nativeDataTransfer] A native data transfer object.\r
+        * @param {CKEDITOR.editor} [editor] The source editor instance. If the editor is defined, dataValue will\r
+        * be created based on the editor content and the type will be 'html'.\r
+        */\r
+       CKEDITOR.plugins.clipboard.dataTransfer = function( nativeDataTransfer, editor ) {\r
+               if ( nativeDataTransfer ) {\r
+                       this.$ = nativeDataTransfer;\r
+               }\r
+\r
+               this._ = {\r
+                       metaRegExp: /^<meta.*?>/i,\r
+                       bodyRegExp: /<body(?:[\s\S]*?)>([\s\S]*)<\/body>/i,\r
+                       fragmentRegExp: /<!--(?:Start|End)Fragment-->/g,\r
+\r
+                       data: {},\r
+                       files: [],\r
+\r
+                       normalizeType: function( type ) {\r
+                               type = type.toLowerCase();\r
+\r
+                               if ( type == 'text' || type == 'text/plain' ) {\r
+                                       return 'Text'; // IE support only Text and URL;\r
+                               } else if ( type == 'url' ) {\r
+                                       return 'URL'; // IE support only Text and URL;\r
+                               } else {\r
+                                       return type;\r
+                               }\r
+                       }\r
+               };\r
+\r
+               // Check if ID is already created.\r
+               this.id = this.getData( clipboardIdDataType );\r
+\r
+               // If there is no ID we need to create it. Different browsers needs different ID.\r
+               if ( !this.id ) {\r
+                       if ( clipboardIdDataType == 'Text' ) {\r
+                               // For IE10+ only Text data type is supported and we have to compare dragged\r
+                               // and dropped text. If the ID is not set it means that empty string was dragged\r
+                               // (ex. image with no alt). We change null to empty string.\r
+                               this.id = '';\r
+                       } else {\r
+                               // String for custom data type.\r
+                               this.id = 'cke-' + CKEDITOR.tools.getUniqueId();\r
+                       }\r
+               }\r
+\r
+               // In IE10+ we can not use any data type besides text, so we do not call setData.\r
+               if ( clipboardIdDataType != 'Text' ) {\r
+                       // Try to set ID so it will be passed from the drag to the drop event.\r
+                       // On some browsers with some event it is not possible to setData so we\r
+                       // need to catch exceptions.\r
+                       try {\r
+                               this.$.setData( clipboardIdDataType, this.id );\r
+                       } catch ( err ) {}\r
+               }\r
+\r
+               if ( editor ) {\r
+                       this.sourceEditor = editor;\r
+\r
+                       this.setData( 'text/html', editor.getSelectedHtml( 1 ) );\r
+\r
+                       // Without setData( 'text', ... ) on dragstart there is no drop event in Safari.\r
+                       // Also 'text' data is empty as drop to the textarea does not work if we do not put there text.\r
+                       if ( clipboardIdDataType != 'Text' && !this.getData( 'text/plain' ) ) {\r
+                               this.setData( 'text/plain', editor.getSelection().getSelectedText() );\r
+                       }\r
+               }\r
+\r
+               /**\r
+                * Data transfer ID used to bind all dataTransfer\r
+                * objects based on the same event (e.g. in drag and drop events).\r
+                *\r
+                * @readonly\r
+                * @property {String} id\r
+                */\r
+\r
+               /**\r
+                * A native DOM event object.\r
+                *\r
+                * @readonly\r
+                * @property {Object} $\r
+                */\r
+\r
+               /**\r
+                * Source editor &mdash; the editor where the drag starts.\r
+                * Might be undefined if the drag starts outside the editor (e.g. when dropping files to the editor).\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.editor} sourceEditor\r
+                */\r
+\r
+               /**\r
+                * Private properties and methods.\r
+                *\r
+                * @private\r
+                * @property {Object} _\r
+                */\r
+       };\r
+\r
+       /**\r
+        * Data transfer operation (drag and drop or copy and paste) started and ended in the same\r
+        * editor instance.\r
+        *\r
+        * @since 4.5\r
+        * @readonly\r
+        * @property {Number} [=1]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.DATA_TRANSFER_INTERNAL = 1;\r
+\r
+       /**\r
+        * Data transfer operation (drag and drop or copy and paste) started in one editor\r
+        * instance and ended in another.\r
+        *\r
+        * @since 4.5\r
+        * @readonly\r
+        * @property {Number} [=2]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.DATA_TRANSFER_CROSS_EDITORS = 2;\r
+\r
+       /**\r
+        * Data transfer operation (drag and drop or copy and paste) started outside of the editor.\r
+        * The source of the data may be a textarea, HTML, another application, etc.\r
+        *\r
+        * @since 4.5\r
+        * @readonly\r
+        * @property {Number} [=3]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.DATA_TRANSFER_EXTERNAL = 3;\r
+\r
+       CKEDITOR.plugins.clipboard.dataTransfer.prototype = {\r
+               /**\r
+                * Facade for the native `getData` method.\r
+                *\r
+                * @param {String} type The type of data to retrieve.\r
+                * @param {Boolean} [getNative=false] Indicates if the whole, original content of the dataTransfer should be returned.\r
+                * Introduced in CKEditor 4.7.0.\r
+                * @returns {String} type Stored data for the given type or an empty string if the data for that type does not exist.\r
+                */\r
+               getData: function( type, getNative ) {\r
+                       function isEmpty( data ) {\r
+                               return data === undefined || data === null || data === '';\r
+                       }\r
+\r
+                       function filterUnwantedCharacters( data ) {\r
+                               if ( typeof data !== 'string' ) {\r
+                                       return data;\r
+                               }\r
+\r
+                               var htmlEnd = data.indexOf( '</html>' );\r
+\r
+                               if ( htmlEnd !== -1 ) {\r
+                                       // Just cut everything after `</html>`, so everything after htmlEnd index + length of `</html>`.\r
+                                       // Required to workaround bug: https://bugs.chromium.org/p/chromium/issues/detail?id=696978\r
+                                       return data.substring( 0, htmlEnd + 7 );\r
+                               }\r
+\r
+                               return data;\r
+                       }\r
+\r
+                       type = this._.normalizeType( type );\r
+\r
+                       var data = this._.data[ type ],\r
+                               result;\r
+\r
+                       if ( isEmpty( data ) ) {\r
+                               try {\r
+                                       data = this.$.getData( type );\r
+                               } catch ( e ) {}\r
+                       }\r
+\r
+                       if ( isEmpty( data ) ) {\r
+                               data = '';\r
+                       }\r
+\r
+                       // Some browsers add <meta http-equiv="content-type" content="text/html; charset=utf-8"> at the begging of the HTML data\r
+                       // or surround it with <html><head>...</head><body>(some content)<!--StartFragment--> and <!--EndFragment-->(some content)</body></html>\r
+                       // This code removes meta tags and returns only the contents of the <body> element if found. Note that\r
+                       // some significant content may be placed outside Start/EndFragment comments so it's kept.\r
+                       //\r
+                       // See http://dev.ckeditor.com/ticket/13583 for more details.\r
+                       // Additionally http://dev.ckeditor.com/ticket/16847 adds a flag allowing to get the whole, original content.\r
+                       if ( type == 'text/html' && !getNative ) {\r
+                               data = data.replace( this._.metaRegExp, '' );\r
+\r
+                               // Keep only contents of the <body> element\r
+                               result = this._.bodyRegExp.exec( data );\r
+                               if ( result && result.length ) {\r
+                                       data = result[ 1 ];\r
+\r
+                                       // Remove also comments.\r
+                                       data = data.replace( this._.fragmentRegExp, '' );\r
+                               }\r
+                       }\r
+                       // Firefox on Linux put files paths as a text/plain data if there are files\r
+                       // in the dataTransfer object. We need to hide it, because files should be\r
+                       // handled on paste only if dataValue is empty.\r
+                       else if ( type == 'Text' && CKEDITOR.env.gecko && this.getFilesCount() &&\r
+                               data.substring( 0, 7 ) == 'file://' ) {\r
+                               data = '';\r
+                       }\r
+\r
+                       return filterUnwantedCharacters( data );\r
+               },\r
+\r
+               /**\r
+                * Facade for the native `setData` method.\r
+                *\r
+                * @param {String} type The type of data to retrieve.\r
+                * @param {String} value The data to add.\r
+                */\r
+               setData: function( type, value ) {\r
+                       type = this._.normalizeType( type );\r
+\r
+                       this._.data[ type ] = value;\r
+\r
+                       // There is "Unexpected call to method or property access." error if you try\r
+                       // to set data of unsupported type on IE.\r
+                       if ( !CKEDITOR.plugins.clipboard.isCustomDataTypesSupported && type != 'URL' && type != 'Text' ) {\r
+                               return;\r
+                       }\r
+\r
+                       // If we use the text type to bind the ID, then if someone tries to set the text, we must also\r
+                       // update ID accordingly. http://dev.ckeditor.com/ticket/13468.\r
+                       if ( clipboardIdDataType == 'Text' && type == 'Text' ) {\r
+                               this.id = value;\r
+                       }\r
+\r
+                       try {\r
+                               this.$.setData( type, value );\r
+                       } catch ( e ) {}\r
+               },\r
+\r
+               /**\r
+                * Gets the data transfer type.\r
+                *\r
+                * @param {CKEDITOR.editor} targetEditor The drop/paste target editor instance.\r
+                * @returns {Number} Possible values: {@link CKEDITOR#DATA_TRANSFER_INTERNAL},\r
+                * {@link CKEDITOR#DATA_TRANSFER_CROSS_EDITORS}, {@link CKEDITOR#DATA_TRANSFER_EXTERNAL}.\r
+                */\r
+               getTransferType: function( targetEditor ) {\r
+                       if ( !this.sourceEditor ) {\r
+                               return CKEDITOR.DATA_TRANSFER_EXTERNAL;\r
+                       } else if ( this.sourceEditor == targetEditor ) {\r
+                               return CKEDITOR.DATA_TRANSFER_INTERNAL;\r
+                       } else {\r
+                               return CKEDITOR.DATA_TRANSFER_CROSS_EDITORS;\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Copies the data from the native data transfer to a private cache.\r
+                * This function is needed because the data from the native data transfer\r
+                * is available only synchronously to the event listener. It is not possible\r
+                * to get the data asynchronously, after a timeout, and the {@link CKEDITOR.editor#paste}\r
+                * event is fired asynchronously &mdash; hence the need for caching the data.\r
+                */\r
+               cacheData: function() {\r
+                       if ( !this.$ ) {\r
+                               return;\r
+                       }\r
+\r
+                       var that = this,\r
+                               i, file;\r
+\r
+                       function getAndSetData( type ) {\r
+                               type = that._.normalizeType( type );\r
+\r
+                               var data = that.getData( type, true );\r
+                               if ( data ) {\r
+                                       that._.data[ type ] = data;\r
+                               }\r
+                       }\r
+\r
+                       // Copy data.\r
+                       if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) {\r
+                               if ( this.$.types ) {\r
+                                       for ( i = 0; i < this.$.types.length; i++ ) {\r
+                                               getAndSetData( this.$.types[ i ] );\r
+                                       }\r
+                               }\r
+                       } else {\r
+                               getAndSetData( 'Text' );\r
+                               getAndSetData( 'URL' );\r
+                       }\r
+\r
+                       // Copy files references.\r
+                       file = this._getImageFromClipboard();\r
+                       if ( ( this.$ && this.$.files ) || file ) {\r
+                               this._.files = [];\r
+\r
+                               // Edge have empty files property with no length (http://dev.ckeditor.com/ticket/13755).\r
+                               if ( this.$.files && this.$.files.length ) {\r
+                                       for ( i = 0; i < this.$.files.length; i++ ) {\r
+                                               this._.files.push( this.$.files[ i ] );\r
+                                       }\r
+                               }\r
+\r
+                               // Don't include $.items if both $.files and $.items contains files, because,\r
+                               // according to spec and browsers behavior, they contain the same files.\r
+                               if ( this._.files.length === 0 && file ) {\r
+                                       this._.files.push( file );\r
+                               }\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Gets the number of files in the dataTransfer object.\r
+                *\r
+                * @returns {Number} The number of files.\r
+                */\r
+               getFilesCount: function() {\r
+                       if ( this._.files.length ) {\r
+                               return this._.files.length;\r
+                       }\r
+\r
+                       if ( this.$ && this.$.files && this.$.files.length ) {\r
+                               return this.$.files.length;\r
+                       }\r
+\r
+                       return this._getImageFromClipboard() ? 1 : 0;\r
+               },\r
+\r
+               /**\r
+                * Gets the file at the index given.\r
+                *\r
+                * @param {Number} i Index.\r
+                * @returns {File} File instance.\r
+                */\r
+               getFile: function( i ) {\r
+                       if ( this._.files.length ) {\r
+                               return this._.files[ i ];\r
+                       }\r
+\r
+                       if ( this.$ && this.$.files && this.$.files.length ) {\r
+                               return this.$.files[ i ];\r
+                       }\r
+\r
+                       // File or null if the file was not found.\r
+                       return i === 0 ? this._getImageFromClipboard() : undefined;\r
+               },\r
+\r
+               /**\r
+                * Checks if the data transfer contains any data.\r
+                *\r
+                * @returns {Boolean} `true` if the object contains no data.\r
+                */\r
+               isEmpty: function() {\r
+                       var typesToCheck = {},\r
+                               type;\r
+\r
+                       // If dataTransfer contains files it is not empty.\r
+                       if ( this.getFilesCount() ) {\r
+                               return false;\r
+                       }\r
+\r
+                       // Add custom types.\r
+                       for ( type in this._.data ) {\r
+                               typesToCheck[ type ] = 1;\r
+                       }\r
+\r
+                       // Add native types.\r
+                       if ( this.$ ) {\r
+                               if ( CKEDITOR.plugins.clipboard.isCustomDataTypesSupported ) {\r
+                                       if ( this.$.types ) {\r
+                                               for ( var i = 0; i < this.$.types.length; i++ ) {\r
+                                                       typesToCheck[ this.$.types[ i ] ] = 1;\r
+                                               }\r
+                                       }\r
+                               } else {\r
+                                       typesToCheck.Text = 1;\r
+                                       typesToCheck.URL = 1;\r
+                               }\r
+                       }\r
+\r
+                       // Remove ID.\r
+                       if ( clipboardIdDataType != 'Text' ) {\r
+                               typesToCheck[ clipboardIdDataType ] = 0;\r
+                       }\r
+\r
+                       for ( type in typesToCheck ) {\r
+                               if ( typesToCheck[ type ] && this.getData( type ) !== '' ) {\r
+                                       return false;\r
+                               }\r
+                       }\r
+\r
+                       return true;\r
+               },\r
+\r
+               /**\r
+                * When the content of the clipboard is pasted in Chrome, the clipboard data object has an empty `files` property,\r
+                * but it is possible to get the file as `items[0].getAsFile();` (http://dev.ckeditor.com/ticket/12961).\r
+                *\r
+                * @private\r
+                * @returns {File} File instance or `null` if not found.\r
+                */\r
+               _getImageFromClipboard: function() {\r
+                       var file;\r
+\r
+                       if ( this.$ && this.$.items && this.$.items[ 0 ] ) {\r
+                               try {\r
+                                       file = this.$.items[ 0 ].getAsFile();\r
+                                       // Duck typing\r
+                                       if ( file && file.type ) {\r
+                                               return file;\r
+                                       }\r
+                               } catch ( err ) {\r
+                                       // noop\r
+                               }\r
+                       }\r
+\r
+                       return undefined;\r
+               }\r
+       };\r
+} )();\r
+\r
+/**\r
+ * The default content type that is used when pasted data cannot be clearly recognized as HTML or text.\r
+ *\r
+ * For example: `'foo'` may come from a plain text editor or a website. It is not possible to recognize the content\r
+ * type in this case, so the default type will be used. At the same time it is clear that `'<b>example</b> text'` is\r
+ * HTML and its origin is a web page, email or another rich text editor.\r
+ *\r
+ * **Note:** If content type is text, then styles of the paste context are preserved.\r
+ *\r
+ *             CKEDITOR.config.clipboard_defaultContentType = 'text';\r
+ *\r
+ * See also the {@link CKEDITOR.editor#paste} event and read more about the integration with clipboard\r
+ * in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * @since 4.0\r
+ * @cfg {'html'/'text'} [clipboard_defaultContentType='html']\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * Fired after the user initiated a paste action, but before the data is inserted into the editor.\r
+ * The listeners to this event are able to process the content before its insertion into the document.\r
+ *\r
+ * Read more about the integration with clipboard in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * the {@link CKEDITOR.config#pasteFilter} option,\r
+ * * the {@link CKEDITOR.editor#drop} event,\r
+ * * the {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 3.1\r
+ * @event paste\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {String} data.type The type of data in `data.dataValue`. Usually `'html'` or `'text'`, but for listeners\r
+ * with a priority smaller than `6` it may also be `'auto'` which means that the content type has not been recognised yet\r
+ * (this will be done by the content type sniffer that listens with priority `6`).\r
+ * @param {String} data.dataValue HTML to be pasted.\r
+ * @param {String} data.method Indicates the data transfer method. It could be drag and drop or copy and paste.\r
+ * Possible values: `'drop'`, `'paste'`. Introduced in CKEditor 4.5.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer Facade for the native dataTransfer object\r
+ * which provides access to various data types and files, and passes some data between linked events\r
+ * (like drag and drop). Introduced in CKEditor 4.5.\r
+ * @param {Boolean} [data.dontFilter=false] Whether the {@link CKEDITOR.editor#pasteFilter paste filter} should not\r
+ * be applied to data. This option has no effect when `data.type` equals `'text'` which means that for instance\r
+ * {@link CKEDITOR.config#forcePasteAsPlainText} has a higher priority. Introduced in CKEditor 4.5.\r
+ */\r
+\r
+/**\r
+ * Fired before the {@link #paste} event. Allows to preset data type.\r
+ *\r
+ * **Note:** This event is deprecated. Add a `0` priority listener for the\r
+ * {@link #paste} event instead.\r
+ *\r
+ * @deprecated\r
+ * @event beforePaste\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Fired after the {@link #paste} event if content was modified. Note that if the paste\r
+ * event does not insert any data, the `afterPaste` event will not be fired.\r
+ *\r
+ * @event afterPaste\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Facade for the native `drop` event. Fired when the native `drop` event occurs.\r
+ *\r
+ * **Note:** To manipulate dropped data, use the {@link CKEDITOR.editor#paste} event.\r
+ * Use the `drop` event only to control drag and drop operations (e.g. to prevent the ability to drop some content).\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#dragstart} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event drop\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native drop event.\r
+ * @param {CKEDITOR.dom.node} data.target Drop target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ * @param {CKEDITOR.dom.range} data.dragRange Drag range, lets you manipulate the drag range.\r
+ * Note that dragged HTML is saved as `text/html` data on `dragstart` so if you change the drag range\r
+ * on drop, dropped HTML will not change. You need to change it manually using\r
+ * {@link CKEDITOR.plugins.clipboard.dataTransfer#setData dataTransfer.setData}.\r
+ * @param {CKEDITOR.dom.range} data.dropRange Drop range, lets you manipulate the drop range.\r
+ */\r
+\r
+/**\r
+ * Facade for the native `dragstart` event. Fired when the native `dragstart` event occurs.\r
+ *\r
+ * This event can be canceled in order to block the drag start operation. It can also be fired to mimic the start of the drag and drop\r
+ * operation. For instance, the `widget` plugin uses this option to integrate its custom block widget drag and drop with\r
+ * the entire system.\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event dragstart\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native dragstart event.\r
+ * @param {CKEDITOR.dom.node} data.target Drag target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ */\r
+\r
+/**\r
+ * Facade for the native `dragend` event. Fired when the native `dragend` event occurs.\r
+ *\r
+ * Read more about integration with drag and drop in the [Clipboard Deep Dive guide](#!/guide/dev_clipboard).\r
+ *\r
+ * See also:\r
+ *\r
+ * * The {@link CKEDITOR.editor#paste} event,\r
+ * * The {@link CKEDITOR.editor#drop} and {@link CKEDITOR.editor#dragend} events,\r
+ * * The {@link CKEDITOR.plugins.clipboard.dataTransfer} class.\r
+ *\r
+ * @since 4.5\r
+ * @event dragend\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.editor} editor This editor instance.\r
+ * @param data\r
+ * @param {Object} data.$ Native dragend event.\r
+ * @param {CKEDITOR.dom.node} data.target Drag target.\r
+ * @param {CKEDITOR.plugins.clipboard.dataTransfer} data.dataTransfer DataTransfer facade.\r
+ */\r
+\r
+/**\r
+ * Defines a filter which is applied to external data pasted or dropped into the editor. Possible values are:\r
+ *\r
+ * * `'plain-text'` &ndash; Content will be pasted as a plain text.\r
+ * * `'semantic-content'` &ndash; Known tags (except `div`, `span`) with all attributes (except\r
+ * `style` and `class`) will be kept.\r
+ * * `'h1 h2 p div'` &ndash; Custom rules compatible with {@link CKEDITOR.filter}.\r
+ * * `null` &ndash; Content will not be filtered by the paste filter (but it still may be filtered\r
+ * by [Advanced Content Filter](#!/guide/dev_advanced_content_filter)). This value can be used to\r
+ * disable the paste filter in Chrome and Safari, where this option defaults to `'semantic-content'`.\r
+ *\r
+ * Example:\r
+ *\r
+ *             config.pasteFilter = 'plain-text';\r
+ *\r
+ * Custom setting:\r
+ *\r
+ *             config.pasteFilter = 'h1 h2 p ul ol li; img[!src, alt]; a[!href]';\r
+ *\r
+ * Based on this configuration option, a proper {@link CKEDITOR.filter} instance will be defined and assigned to the editor\r
+ * as a {@link CKEDITOR.editor#pasteFilter}. You can tweak the paste filter settings on the fly on this object\r
+ * as well as delete or replace it.\r
+ *\r
+ *             var editor = CKEDITOR.replace( 'editor', {\r
+ *                     pasteFilter: 'semantic-content'\r
+ *             } );\r
+ *\r
+ *             editor.on( 'instanceReady', function() {\r
+ *                     // The result of this will be that all semantic content will be preserved\r
+ *                     // except tables.\r
+ *                     editor.pasteFilter.disallow( 'table' );\r
+ *             } );\r
+ *\r
+ * Note that the paste filter is applied only to **external** data. There are three data sources:\r
+ *\r
+ * * copied and pasted in the same editor (internal),\r
+ * * copied from one editor and pasted into another (cross-editor),\r
+ * * coming from all other sources like websites, MS Word, etc. (external).\r
+ *\r
+ * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then\r
+ * it will also be applied to pasted and dropped data. The paste filter job is to "normalize"\r
+ * external data which often needs to be handled differently than content produced by the editor.\r
+ *\r
+ * This setting defaults to `'semantic-content'` in Chrome, Opera and Safari (all Blink and Webkit based browsers)\r
+ * due to messy HTML which these browsers keep in the clipboard. In other browsers it defaults to `null`.\r
+ *\r
+ * @since 4.5\r
+ * @cfg {String} [pasteFilter='semantic-content' in Chrome and Safari and `null` in other browsers]\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * {@link CKEDITOR.filter Content filter} which is used when external data is pasted or dropped into the editor\r
+ * or a forced paste as plain text occurs.\r
+ *\r
+ * This object might be used on the fly to define rules for pasted external content.\r
+ * This object is available and used if the {@link CKEDITOR.plugins.clipboard clipboard} plugin is enabled and\r
+ * {@link CKEDITOR.config#pasteFilter} or {@link CKEDITOR.config#forcePasteAsPlainText} was defined.\r
+ *\r
+ * To enable the filter:\r
+ *\r
+ *             var editor = CKEDITOR.replace( 'editor', {\r
+ *                     pasteFilter: 'plain-text'\r
+ *             } );\r
+ *\r
+ * You can also modify the filter on the fly later on:\r
+ *\r
+ *             editor.pasteFilter = new CKEDITOR.filter( 'p h1 h2; a[!href]' );\r
+ *\r
+ * Note that the paste filter is only applied to **external** data. There are three data sources:\r
+ *\r
+ * * copied and pasted in the same editor (internal),\r
+ * * copied from one editor and pasted into another (cross-editor),\r
+ * * coming from all other sources like websites, MS Word, etc. (external).\r
+ *\r
+ * If {@link CKEDITOR.config#allowedContent Advanced Content Filter} is not disabled, then\r
+ * it will also be applied to pasted and dropped data. The paste filter job is to "normalize"\r
+ * external data which often needs to be handled differently than content produced by the editor.\r
+ *\r
+ * @since 4.5\r
+ * @readonly\r
+ * @property {CKEDITOR.filter} [pasteFilter]\r
+ * @member CKEDITOR.editor\r
+ */\r
+\r
+/**\r
+ * Duration of the notification displayed after pasting was blocked by the browser.\r
+ *\r
+ * @since 4.7.0\r
+ * @cfg {Number} [clipboard_notificationDuration=10000]\r
+ * @member CKEDITOR.config\r
+ */\r
+CKEDITOR.config.clipboard_notificationDuration = 10000;\r
index bf849cc00106607d9369ef5abea9c99ad273769f..76b5b9614cfb939897f30fe9664625a58722799a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'af', {\r
index 6f4b9cd5ce6758436006ffc5d3cf48b83526cf2b..c81b06318ea7316833d5b0cb201e6fcca4c5debc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ar', {\r
diff --git a/sources/plugins/contextmenu/lang/az.js b/sources/plugins/contextmenu/lang/az.js
new file mode 100644 (file)
index 0000000..651f2f8
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'az', {\r
+       options: 'Əlavə əməliyyatlar'\r
+} );\r
index 7e37b2e58e68ae42a8468d409ce2e17c58c25c03..6bb7a40c64895808901c99c1e4df2a1e87edbc4f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'bg', {\r
index e18bb70fa3dafd805aa4f09b54a4bec851957418..fe93ec8aafce12d281ca5615873ddc227df7b9d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'bn', {\r
index 22cade1b681534c0fbf7cfef3940a3c28f72fb74..9354351224ead2eb2f3ba0869902418130dafc87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'bs', {\r
index d9c157a76a1bd83c62e513f0085d6ddaed16f78e..91c7ec8d13a49d1c72c8d8278af10ebc1b09ef54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ca', {\r
index 49ba46136fff35f9020bc52de403a293be38187a..e53a0f5bfcb184d27010661dbc76c3ff779c85de 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'cs', {\r
index 2bb01d9d45bc1dabf06c7a1430b0cd1680b3e0e5..1816b84183fce8348676182648f6efa5a1cfa27b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'cy', {\r
index 3e73bd814ac2df812f676a73f2ee066b97d8b3d3..10043a5933b09329e2ae0e3066b80960bf6b9b28 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'da', {\r
index 606c5e57b739c1a53a9995ad0db2f0056af2aa08..216cd186d905a2d0e0c4204fe1b1475ac76ac39d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'de-ch', {\r
index af3d94ff25892ece17265492a01453c150f58d23..aa0c0988e48bb18de4a4040ec91cd10ec7b9a1ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'de', {\r
index 5641cc22417c2b929d469c535aa7e99965a4e9ef..bdad7206f5337550001bae69fc8a5691b483049f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'el', {\r
index 2cfb13e226ba6b03e4884cd4e587074f53bad01a..cd6b20221af52f8cc46fd945a3bffc26104d80a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', {\r
index f5fff30e9095a98ccee42a579576d0b091747e1c..25950c995134c2207c3cf6a21ccc01241da5d74f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', {\r
index 25b6dfa3b974c71c2560a748d4530e1282d339e3..62f08d5d89a669ef313a29e3fdaf5e20ca23aaa8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', {\r
index 59343e3f6583ad32fc7e2756a56eda69f4d3b2eb..10b5f47586bc14f179606e64d696ab3a1797595f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'en', {\r
index 8782e56e63986580e5d38a7dc579b6568cc34aea..6a9760c1f8751118fe6938aaa876e22064c09e18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'eo', {\r
diff --git a/sources/plugins/contextmenu/lang/es-mx.js b/sources/plugins/contextmenu/lang/es-mx.js
new file mode 100644 (file)
index 0000000..72bb1fa
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'es-mx', {\r
+       options: 'Opciones del menú contextual'\r
+} );\r
index 7eed8ab15482cd3e92f86606b71c159a4974dd32..1e8e06d90734b62f164b4aca3f2e690ddbf6c39b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'es', {\r
index 7e34fbb7995310310c721b13379e39ce7b05e25d..d7ece9a4647a7b7b43ad6698382e4b4c7da940d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'et', {\r
index f04ae72193ef4ec8ef73b946f79190bb8330a48e..32018e0c91ab0b6a620463e27d168c9ff4764217 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'eu', {\r
index 6ba8b7c6ee061b132495ccd76fc2265d2847456e..233d30dab55cff74ff77ab08803123373ef137fc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'fa', {\r
index 920c49426ceee443446eecac8ff8a37243063e52..5c11832a5d83b99fc9a6414abbed065401d9c6c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'fi', {\r
index 6e710766f03c3014865074cc1d5a9e3562d477e1..6069a48d3b298e6aaaff2f22f0c54f9c26ccbdfb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'fo', {\r
index c9ffdc13d9037f304c5dcf77c7d9eb967fd88636..d7aca5c5e42e5574b69ee7de2db0a2113a86633a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', {\r
index 9205c526039a182f6dfda4203ba5ff053d14da9b..7af3f332daa36f45cdcf47cfeb577863e8438be2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'fr', {\r
index 92561cc3f4b597ac06292835d6c4fe592289c737..de69eae184b482630c93b107153ba1fcd24efcc3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'gl', {\r
index f2065eee6a9f3f54ebe0c2d487d45c4e780bd8cd..d9a83da3e4e7b92bb0d8101a6b96291faad01cd7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'gu', {\r
index 71d3bd988ec0aa2621f01149a9235e5657c1fc66..a2765342360feebf376ff31d749d96cbc9cd8de1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'he', {\r
index 9181aca9fbe238250fbf6758f7b1c522fc9b180c..a3f501d85bd8c15a957f4adcf0dd58d40eb62bce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'hi', {\r
index 335215d760ef8ffc0397af434a094f39caaaa7f8..149c1eb55d71ddd8e8b93f6528d4e03d56c73e22 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'hr', {\r
index f80d0aef609515b228317c893b0c725df0e4b8c2..60bb66c8a7bb48acce42fc46c6c84843fa462feb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'hu', {\r
index 0278f79e4a734382ad440b9e2315fc0d30ef274f..8d19e5023c5b2175ac1a7e2e937c9cd7587432f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'id', {\r
index 6d208f1a7fe55af4a340e5dda72b92c9b1b48c0a..4404c99a8364d2b02419a658b2513fb89bab7efc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'is', {\r
index dc206c9c14dc16358367a5a385b7e94ef6fe4d9c..0453e18d90fde06cc85a53dcbdcdbb2deaf0d625 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'it', {\r
index 939486f5d090597b739801158f4f2087787764d3..5887847664bbb6b5703377a5fb8b6875b724cdc2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ja', {\r
index b7c553b304dacf0dca7640f1e694b8b5f619fa23..f279b0a2c528457a122ac1c34cc7533c6361718e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ka', {\r
index 967e4fe8c5cf0623af9463fbb0b5cc311cd7b7c4..9f5d9657f3eab7432a0e0804530dbb2b4c2604e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'km', {\r
index 8f873fe8c9a68b4a80eb7471191091e5872b4b64..45273b5d86d17e19b8e764fea72552894bda2cec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ko', {\r
index f49b18bf1d4e96894710545541d084aa61cb6999..c183cb2b044c8e9d8651b33e5f2acfacab356a86 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ku', {\r
index e50e8a499f45fd927e33416885b9048538c687e6..e16597abbaca3e6e9a12752e2176640b037b1394 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'lt', {\r
index fad495a72fb40bb4568f64d7870ad036e2e9f32e..b14f0eb2350a6216f96f8d8b823c7bf87d0552ee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'lv', {\r
index c00cebb1279ca16beb3c3c1d1a1d267af8a0ab0c..1d7c4c7a0cc4ddd9df1ff3e6d54f100175014242 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'mk', {\r
index 074593878edfe6bbe3aca7f904d0e34f173f1a69..5076f1803e82e75dace6d18638213e5293c47565 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'mn', {\r
index 870cbac78721be47e40071bcb1b290a5198a0e5d..019ba76f545d29594475764e62c26a0572dadcbc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ms', {\r
index cc319452f8b9d850dfb48472e6462b9e5cdc354c..c7c41b07e8c3434916262814f8ab6ec3fcb07d1b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'nb', {\r
index baa8eb2f9c3e850feb41a31512a49f5e7f26a163..0ceb7cbccf291938cb27a566f80ff75b0b3af6f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'nl', {\r
index 8885d404e1f4a02360616d59bde4f512e72b9e19..ee283cf444660e5accb656c1aaf1c266087d03ac 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'no', {\r
diff --git a/sources/plugins/contextmenu/lang/oc.js b/sources/plugins/contextmenu/lang/oc.js
new file mode 100644 (file)
index 0000000..8fab98f
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'contextmenu', 'oc', {\r
+       options: 'Opcions del menú contextual'\r
+} );\r
index 47de98dc76e696a56fcb106eb95112004f855d1e..99ef5d98bf41664dcbde8a35d6bb68026e77c12b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'pl', {\r
index 8cf3255999782af5c15a944f14138de32614f303..ec9151383bbf0fd831ab6d6a208f5c9f60f0e817 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', {\r
index 31c027f20e3bdebe619ab13832708ec4e19d3e69..c2c969de7dfc4425eb545bbf3ee4c071648feba0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'pt', {\r
index b9c00772e8ed87d128b0f779376476f0a0023d0c..928c4b36c934482928cae0e6c5a29cd4dca2ad53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ro', {\r
index 330afbe49a5a190c9692d4c38def8a95d62690f2..f671b6a5ce4a6712a88d971b9ee1347150a26687 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ru', {\r
index 8b3eda090439e1cee250c5377f5fb867a6c128a4..ec603a3434e9ae699d34c340d69ed5c47cc1369a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'si', {\r
index 34d64ac894e72296e5d0729a28dd906706fd0912..fda2b3d9629dcd1a292f720256e517450e7bfa66 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sk', {\r
index e823bb6d33645e99af3d2434f7cd404385f9423d..9c7fc29c937ea22a5d9678a89a1b898286d3dc01 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sl', {\r
-       options: 'Možnosti Kontekstnega Menija'\r
+       options: 'Možnosti kontekstnega menija'\r
 } );\r
index e1d40dc4cc1c809c40d75037232b88dcc4f66538..698ca2da9278be36581d99a5f47b3cd7207a537a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sq', {\r
index a63e7836998479e764e62301b9d08a94457991b2..d550e846530e427cdd418e6b3bfba245488a6300 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', {\r
index ec79a0c3aaa3db55fd4c59dde5150fee7442bfd1..2f7ba14f391d726482a85117ed0f1c87d24133d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sr', {\r
index 69fa7b9664a9fc3cf16cf0d019ee37bf22fe731c..a3b043f7405bc40ff853e6636efa7102a661df13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'sv', {\r
index c17f20fdedf627338f564c756461b444327f5388..ce77065362c32e3fcef7731bc0e48ffd3c279970 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'th', {\r
index c31e6f3b89c63a4d5e25431b4f7654abc652ffc6..4d5a550e3f4272879ca2277c49ab5afd26ead3ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'tr', {\r
index 514a35f3fc197cdf53df41b6447d5904c8fd3b37..05313704b85a7fed58086f94a6af363a943b4c7c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'tt', {\r
index b52e25900eb1da08bbed4fea6613ab6d2df6daec..95a9d0adceba9f8a3af1c65d048df5242ba81e72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'ug', {\r
index 97b514a2c65c898582c77279196d49145108084f..0a4ffb9416bea37984ebe6532c2d7c671366a24d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'uk', {\r
index 91fc97c5d5332772da2627cd55faaa181e1b9c43..42c39b03581f77a8d8dbaea992c43f616e30ee75 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'vi', {\r
index 9ee221367c40c5b67fbd0eaac697ac7360235c5c..56879ee0c7f6988b13d1780cf2de65a506cb690b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', {\r
index b451c7f2f5c059e565e2abf7da16695a505cf1b4..c8d8b93c39c40e67072c787c4c8901cb092b6647 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'contextmenu', 'zh', {\r
index 09d7f250bf1164d1f16b54ad40dbf4bd45f438e5..4a3bd5f34673faa4b67515fb888b2d203fc5e672 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -7,10 +7,10 @@ CKEDITOR.plugins.add( 'contextmenu', {
        requires: 'menu',\r
 \r
        // jscs:disable maximumLineLength\r
-       lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+       lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
        // jscs:enable maximumLineLength\r
 \r
-       // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318).\r
+       // Make sure the base class (CKEDITOR.menu) is loaded before it (http://dev.ckeditor.com/ticket/3318).\r
        onLoad: function() {\r
                /**\r
                 * Class replacing the non-configurable native context menu with a configurable CKEditor's equivalent.\r
@@ -51,7 +51,7 @@ CKEDITOR.plugins.add( 'contextmenu', {
                                                var domEvent = event.data,\r
                                                        isCtrlKeyDown =\r
                                                                // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,\r
-                                                               // which make this property unreliable. (#4826)\r
+                                                               // which make this property unreliable. (http://dev.ckeditor.com/ticket/4826)\r
                                                                ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) );\r
 \r
                                                if ( nativeContextMenuOnCtrl && isCtrlKeyDown )\r
@@ -60,7 +60,7 @@ CKEDITOR.plugins.add( 'contextmenu', {
                                                // Cancel the browser context menu.\r
                                                domEvent.preventDefault();\r
 \r
-                                               // Fix selection when non-editable element in Webkit/Blink (Mac) (#11306).\r
+                                               // Fix selection when non-editable element in Webkit/Blink (Mac) (http://dev.ckeditor.com/ticket/11306).\r
                                                if ( CKEDITOR.env.mac && CKEDITOR.env.webkit ) {\r
                                                        var editor = this.editor,\r
                                                                contentEditableParent = new CKEDITOR.dom.elementPath( domEvent.getTarget(), editor.editable() ).contains( function( el ) {\r
@@ -83,7 +83,7 @@ CKEDITOR.plugins.add( 'contextmenu', {
                                                CKEDITOR.tools.setTimeout( function() {\r
                                                        this.open( offsetParent, null, offsetX, offsetY );\r
 \r
-                                                       // IE needs a short while to allow selection change before opening menu. (#7908)\r
+                                                       // IE needs a short while to allow selection change before opening menu. (http://dev.ckeditor.com/ticket/7908)\r
                                                }, CKEDITOR.env.ie ? 200 : 0, this );\r
                                        }, this );\r
 \r
@@ -111,10 +111,14 @@ CKEDITOR.plugins.add( 'contextmenu', {
                                 * @param {Number} [offsetY]\r
                                 */\r
                                open: function( offsetParent, corner, offsetX, offsetY ) {\r
+                                       if ( this.editor.config.enableContextMenu === false ) {\r
+                                               return;\r
+                                       }\r
+\r
                                        this.editor.focus();\r
                                        offsetParent = offsetParent || CKEDITOR.document.getDocumentElement();\r
 \r
-                                       // #9362: Force selection check to update commands' states in the new context.\r
+                                       // http://dev.ckeditor.com/ticket/9362: Force selection check to update commands' states in the new context.\r
                                        this.editor.selectionChange( 1 );\r
 \r
                                        this.show( offsetParent, corner, offsetX, offsetY );\r
@@ -157,3 +161,14 @@ CKEDITOR.plugins.add( 'contextmenu', {
  * @cfg {Boolean} [browserContextMenuOnCtrl=true]\r
  * @member CKEDITOR.config\r
  */\r
+\r
+/**\r
+ * Whether to enable the context menu. Regardless of the setting the [Context Menu](http://ckeditor.com/addon/contextmenu)\r
+ * plugin is still loaded.\r
+ *\r
+ *             config.enableContextMenu = false;\r
+ *\r
+ * @since 4.7.0\r
+ * @cfg {Boolean} [enableContextMenu=true]\r
+ * @member CKEDITOR.config\r
+ */\r
index df5870ca4b342c3e5e3483818efc531ab291bd86..6ecb49129fe21293695ddc3230a9fcc7e0a9b583 100644 (file)
@@ -1,6 +1,6 @@
 // jscs:disable disallowMixedSpacesAndTabs\r
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 3afe88706f0f0945d6c4e80fe0dbca884b2b2933..f26f9c9b9ac7667755bfeb247b54c4032b17957e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -177,10 +177,10 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        title = body.getChild( 0 ),\r
                        close = body.getChild( 1 );\r
 \r
-               // Don't allow dragging on dialog (#13184).\r
+               // Don't allow dragging on dialog (http://dev.ckeditor.com/ticket/13184).\r
                editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( body );\r
 \r
-               // IFrame shim for dialog that masks activeX in IE. (#7619)\r
+               // IFrame shim for dialog that masks activeX in IE. (http://dev.ckeditor.com/ticket/7619)\r
                if ( CKEDITOR.env.ie && !CKEDITOR.env.quirks && !CKEDITOR.env.edge ) {\r
                        var src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();(' + CKEDITOR.tools.fixDomain + ')();document.close();' ) + '}())', // jshint ignore:line\r
                                iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +\r
@@ -229,7 +229,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        tabsToRemove = {},\r
                        i, processed, stopPropagation;\r
 \r
-               if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750)\r
+               if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (http://dev.ckeditor.com/ticket/4750)\r
                ( buttonsOrder == 'rtl' && dir == 'ltr' ) || ( buttonsOrder == 'ltr' && dir == 'rtl' ) )\r
                        defaultDefinition.buttons.reverse();\r
 \r
@@ -334,7 +334,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
 \r
                if ( definition.onOk ) {\r
                        this.on( 'ok', function( evt ) {\r
-                               // Dialog confirm might probably introduce content changes (#5415).\r
+                               // Dialog confirm might probably introduce content changes (http://dev.ckeditor.com/ticket/5415).\r
                                editor.fire( 'saveSnapshot' );\r
                                setTimeout( function() {\r
                                        editor.fire( 'saveSnapshot' );\r
@@ -451,7 +451,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                currentIndex = currentIndex + offset;\r
 \r
                                if ( hasTabs && !me._.tabBarMode && ( currentIndex == focusList.length || currentIndex == -1 ) ) {\r
-                                       // If the dialog was not in tab mode, then focus the first tab (#13027).\r
+                                       // If the dialog was not in tab mode, then focus the first tab (http://dev.ckeditor.com/ticket/13027).\r
                                        me._.tabBarMode = true;\r
                                        me._.tabs[ me._.currentTabId ][ 0 ].focus();\r
                                        me._.currentFocusIndex = -1;\r
@@ -528,7 +528,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                        button && CKEDITOR.tools.setTimeout( button.click, 0, button );\r
                                        processed = 1;\r
                                }\r
-                               stopPropagation = 1; // Always block the propagation (#4269)\r
+                               stopPropagation = 1; // Always block the propagation (http://dev.ckeditor.com/ticket/4269)\r
                        } else if ( keystroke == 27 /*ESC*/ ) {\r
                                button = this.getButton( 'cancel' );\r
 \r
@@ -539,7 +539,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                        if ( this.fire( 'cancel', { hide: true } ).hide !== false )\r
                                                this.hide();\r
                                }\r
-                               stopPropagation = 1; // Always block the propagation (#4269)\r
+                               stopPropagation = 1; // Always block the propagation (http://dev.ckeditor.com/ticket/4269)\r
                        } else {\r
                                return;\r
                        }\r
@@ -563,7 +563,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        dialogElement.on( 'keydown', keydownHandler, this );\r
 \r
                        // Some browsers instead, don't cancel key events in the keydown, but in the\r
-                       // keypress. So we must do a longer trip in those cases. (#4531,#8985)\r
+                       // keypress. So we must do a longer trip in those cases. (http://dev.ckeditor.com/ticket/4531,http://dev.ckeditor.com/ticket/8985)\r
                        if ( CKEDITOR.env.gecko )\r
                                dialogElement.on( 'keypress', keypressHandler, this );\r
 \r
@@ -612,7 +612,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        }\r
                }, this, null, 0xffffffff );\r
 \r
-               // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (#2661).\r
+               // IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (http://dev.ckeditor.com/ticket/2661).\r
                // This is still needed after [2708] and [2709] because text fields in hidden TR tags are still broken.\r
                if ( CKEDITOR.env.ie6Compat ) {\r
                        this.on( 'load', function() {\r
@@ -788,7 +788,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        var element = this._.element.getFirst(), rtl = this._.editor.lang.dir == 'rtl';\r
                        var isFixed = element.getComputedStyle( 'position' ) == 'fixed';\r
 \r
-                       // (#8888) In some cases of a very small viewport, dialog is incorrectly\r
+                       // (http://dev.ckeditor.com/ticket/8888) In some cases of a very small viewport, dialog is incorrectly\r
                        // positioned in IE7. It also happens that it remains sticky and user cannot\r
                        // scroll down/up to reveal dialog's content below/above the viewport; this is\r
                        // cumbersome.\r
@@ -862,8 +862,10 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                        // Reset all inputs back to their default value.\r
                        this.reset();\r
 \r
-                       // Select the first tab by default.\r
-                       this.selectPage( this.definition.contents[ 0 ].id );\r
+                       // Selects the first tab if no tab is already selected.\r
+                       if ( this._.currentTabId === null ) {\r
+                               this.selectPage( this.definition.contents[ 0 ].id );\r
+                       }\r
 \r
                        // Set z-index.\r
                        if ( CKEDITOR.dialog._.currentZIndex === null )\r
@@ -1038,7 +1040,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                commitContent: function() {\r
                        var args = arguments;\r
                        this.foreach( function( widget ) {\r
-                               // Make sure IE triggers "change" event on last focused input before closing the dialog. (#7915)\r
+                               // Make sure IE triggers "change" event on last focused input before closing the dialog. (http://dev.ckeditor.com/ticket/7915)\r
                                if ( CKEDITOR.env.ie && this._.currentFocusIndex == widget.focusIndex )\r
                                        widget.getInputElement().$.blur();\r
 \r
@@ -1090,11 +1092,11 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                var editor = this._.editor;\r
                                editor.focus();\r
 \r
-                               // Give a while before unlock, waiting for focus to return to the editable. (#172)\r
+                               // Give a while before unlock, waiting for focus to return to the editable. (http://dev.ckeditor.com/ticket/172)\r
                                setTimeout( function() {\r
                                        editor.focusManager.unlock();\r
 \r
-                                       // Fixed iOS focus issue (#12381).\r
+                                       // Fixed iOS focus issue (http://dev.ckeditor.com/ticket/12381).\r
                                        // Keep in mind that editor.focus() does not work in this case.\r
                                        if ( CKEDITOR.env.iOS ) {\r
                                                editor.window.focus();\r
@@ -1111,7 +1113,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                contentObj.resetInitValue && contentObj.resetInitValue();\r
                        } );\r
 \r
-                       // Reset dialog state back to IDLE, if busy (#13213).\r
+                       // Reset dialog state back to IDLE, if busy (http://dev.ckeditor.com/ticket/13213).\r
                        this.setState( CKEDITOR.DIALOG_STATE_IDLE );\r
                },\r
 \r
@@ -1232,7 +1234,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
 \r
                        // [IE] an invisible input[type='text'] will enlarge it's width\r
                        // if it's value is long when it shows, so we clear it's value\r
-                       // before it shows and then recover it (#5649)\r
+                       // before it shows and then recover it (http://dev.ckeditor.com/ticket/5649)\r
                        if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) {\r
                                clearOrRecoverTextInputValue( selected[ 1 ] );\r
                                selected[ 1 ].show();\r
@@ -2106,9 +2108,10 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
        }\r
 \r
        function showCover( editor ) {\r
-               var win = CKEDITOR.document.getWindow();\r
-               var config = editor.config,\r
-                       backgroundColorStyle = config.dialog_backgroundCoverColor || 'white',\r
+               var win = CKEDITOR.document.getWindow(),\r
+                       config = editor.config,\r
+                       skinName = ( CKEDITOR.skinName || editor.config.skin ),\r
+                       backgroundColorStyle = config.dialog_backgroundCoverColor || ( skinName == 'moono-lisa' ? 'black' : 'white' ),\r
                        backgroundCoverOpacity = config.dialog_backgroundCoverOpacity,\r
                        baseFloatZIndex = config.baseFloatZIndex,\r
                        coverKey = CKEDITOR.tools.genKey( backgroundColorStyle, backgroundCoverOpacity, baseFloatZIndex ),\r
@@ -2198,7 +2201,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                resizeCover = resizeFunc;\r
                win.on( 'resize', resizeFunc );\r
                resizeFunc();\r
-               // Using Safari/Mac, focus must be kept where it is (#7027)\r
+               // Using Safari/Mac, focus must be kept where it is (http://dev.ckeditor.com/ticket/7027)\r
                if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) )\r
                        coverElement.focus();\r
 \r
@@ -2559,7 +2562,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                                        if ( elementDefinition && elementDefinition.padding !== undefined ) {\r
                                                                styles.push( 'padding:' + cssLength( elementDefinition.padding ) );\r
                                                        }\r
-                                                       // In IE Quirks alignment has to be done on table cells. (#7324)\r
+                                                       // In IE Quirks alignment has to be done on table cells. (http://dev.ckeditor.com/ticket/7324)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align ) {\r
                                                                styles.push( 'text-align:' + children[ i ].align );\r
                                                        }\r
@@ -2618,7 +2621,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                                        html.push( 'height:100%;' );\r
                                                html.push( 'width:' + cssLength( width || '100%' ), ';' );\r
 \r
-                                               // (#10123) Temp fix for dialog broken layout in latest webkit.\r
+                                               // (http://dev.ckeditor.com/ticket/10123) Temp fix for dialog broken layout in latest webkit.\r
                                                if ( CKEDITOR.env.webkit )\r
                                                        html.push( 'float:none;' );\r
 \r
@@ -2638,7 +2641,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
                                                                styles.push( 'height:' + Math.floor( 100 / childHtmlList.length ) + '%' );\r
                                                        if ( elementDefinition && elementDefinition.padding !== undefined )\r
                                                                styles.push( 'padding:' + cssLength( elementDefinition.padding ) );\r
-                                                       // In IE Quirks alignment has to be done on table cells. (#7324)\r
+                                                       // In IE Quirks alignment has to be done on table cells. (http://dev.ckeditor.com/ticket/7324)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align )\r
                                                                styles.push( 'text-align:' + children[ i ].align );\r
                                                        if ( styles.length > 0 )\r
@@ -2983,7 +2986,7 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
        /**\r
         * Generic dialog command. It opens a specific dialog when executed.\r
         *\r
-        *              // Register the "link" command, which opens the "link" dialog.\r
+        *              // Register the "link" command which opens the "link" dialog.\r
         *              editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) );\r
         *\r
         * @class\r
@@ -2992,6 +2995,10 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
         * @param {String} dialogName The name of the dialog to open when executing\r
         * this command.\r
         * @param {Object} [ext] Additional command definition's properties.\r
+        * @param {String} [ext.tabId] You can provide additional property (`tabId`) if you wish to open the dialog on a specific tabId.\r
+        *\r
+        *              // Open the dialog on the 'keystroke' tabId.\r
+        *              editor.addCommand( 'keystroke', new CKEDITOR.dialogCommand( 'a11yHelp', { tabId: 'keystroke' } ) );\r
         */\r
        CKEDITOR.dialogCommand = function( dialogName, ext ) {\r
                this.dialogName = dialogName;\r
@@ -3000,7 +3007,13 @@ CKEDITOR.DIALOG_STATE_BUSY = 2;
 \r
        CKEDITOR.dialogCommand.prototype = {\r
                exec: function( editor ) {\r
-                       editor.openDialog( this.dialogName );\r
+                       var tabId = this.tabId;\r
+                       editor.openDialog( this.dialogName, function( dialog ) {\r
+                               // Select different tab if it's provided (#830).\r
+                               if ( tabId ) {\r
+                                       dialog.selectPage( tabId );\r
+                               }\r
+                       } );\r
                },\r
 \r
                // Dialog commands just open a dialog ui, thus require no undo logic,\r
index cf9185e6a5781224b8a3d1ed98c947bc0e73ebca..6239dea04f8ae9f52bfe59504288acb7f7c4b119 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 7fda2bb83326b759f1869b4f1fc7bbb64ce7fb2c..0f22a1ac428189457b89f473ec61cb255c2f60fa 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -182,7 +182,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 2d4bcabc694cd33b63916e66123009363ee31ab8..460b5341b3da2b17e94dbcccfb4c4c1da9dad693 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 03fe75388d5216bd4ebe0e7e1657ac758524df45..ab367919181125417fb7f949ba271672dddbe12b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -72,7 +72,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                        if ( !this._.domOnChangeRegistered ) {\r
                                                dialog.on( 'load', function() {\r
                                                        this.getInputElement().on( 'change', function() {\r
-                                                               // Make sure 'onchange' doesn't get fired after dialog closed. (#5719)\r
+                                                               // Make sure 'onchange' doesn't get fired after dialog closed. (http://dev.ckeditor.com/ticket/5719)\r
                                                                if ( !dialog.parts.dialog.isVisible() )\r
                                                                        return;\r
 \r
@@ -240,7 +240,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                                        keyPressedOnMe = true;\r
                                        } );\r
 \r
-                                       // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749)\r
+                                       // Lower the priority this 'keyup' since 'ok' will close the dialog.(http://dev.ckeditor.com/ticket/3749)\r
                                        me.getInputElement().on( 'keyup', function( evt ) {\r
                                                if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) {\r
                                                        dialog.getButton( 'ok' ) && setTimeout( function() {\r
@@ -472,7 +472,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                                if ( typeof inputDefinition.inputStyle != 'undefined' )\r
                                                        inputDefinition.style = inputDefinition.inputStyle;\r
 \r
-                                               // Make inputs of radio type focusable (#10866).\r
+                                               // Make inputs of radio type focusable (http://dev.ckeditor.com/ticket/10866).\r
                                                inputDefinition.keyboardFocusable = true;\r
 \r
                                                children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );\r
@@ -537,7 +537,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                        ( function() {\r
                                                element.on( 'click', function( evt ) {\r
                                                        me.click();\r
-                                                       // #9958\r
+                                                       // http://dev.ckeditor.com/ticket/9958\r
                                                        evt.data.preventDefault();\r
                                                } );\r
 \r
@@ -686,7 +686,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                                        ' src="javascript:void('\r
                                        ];\r
 \r
-                                       // Support for custom document.domain on IE. (#10165)\r
+                                       // Support for custom document.domain on IE. (http://dev.ckeditor.com/ticket/10165)\r
                                        html.push( CKEDITOR.env.ie ?\r
                                                '(function(){' + encodeURIComponent(\r
                                                        'document.open();' +\r
@@ -1423,7 +1423,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                                                '<label id="', _.labelId, '" for="', inputId, '" style="display:none">',\r
                                                                        CKEDITOR.tools.htmlEncode( elementDefinition.label ),\r
                                                                '</label>',\r
-                                                               // Set width to make sure that input is not clipped by the iframe (#11253).\r
+                                                               // Set width to make sure that input is not clipped by the iframe (http://dev.ckeditor.com/ticket/11253).\r
                                                                '<input style="width:100%" id="', inputId, '" aria-labelledby="', _.labelId, '" type="file" name="',\r
                                                                        CKEDITOR.tools.htmlEncode( elementDefinition.id || 'cke_upload' ),\r
                                                                        '" size="',\r
@@ -1446,7 +1446,7 @@ CKEDITOR.plugins.add( 'dialogui', {
                                                buttons[ i ].enable();\r
                                }\r
 \r
-                               // #3465: Wait for the browser to finish rendering the dialog first.\r
+                               // http://dev.ckeditor.com/ticket/3465: Wait for the browser to finish rendering the dialog first.\r
                                if ( CKEDITOR.env.gecko )\r
                                        setTimeout( generateFormField, 500 );\r
                                else\r
index 7d83e854c08948e520e2e5c368e0d158d27c4dd5..c07fa3921d841bbfebf2457ae34f94be74951720 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'af', {\r
index f00047c58c1627129760bb9d8da11a8ce464eb49..fa0147caa11557a598156297c8d8417ddf80d57e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ar', {\r
diff --git a/sources/plugins/elementspath/lang/az.js b/sources/plugins/elementspath/lang/az.js
new file mode 100644 (file)
index 0000000..c344c1e
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'az', {\r
+       eleLabel: 'Elementin izləri',\r
+       eleTitle: '%1 element'\r
+} );\r
index 563140712ed1e4dfa47e470e93da26ff7340a355..07b990b9712683ca8f62a57eaa53cb0f55063b72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'bg', {\r
index a332dca3bdee1564c03b697f916995c4bb45bbf9..493caaddca3bdef5de8d092b53cbea0fd220356c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'bn', {\r
index 6fc622a3d124e1724640bd0c4b9e5f6157a3e4a3..f432973c4263e21a2cbda03380ce4480c3fa115e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'bs', {\r
index 4f964cf9ba34d71ec7f292daad32f24c3392d79e..d9573c255eda2538709358cb03e0a2faa0b2efff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ca', {\r
index da063544fa2bace6efbbe5db2b71775dea714e80..427e5bf3ed4f921b0e96117c6a05dae152aa3804 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'cs', {\r
index 05f58855300d9a106f668c3c0f0925bb5d26a8bc..5c9c77d5866bbb6b38aa02c1982c02a5abffaa0d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'cy', {\r
index 8c68da748abcfdf73a5d4a5c33bbeeaeb3dce5f6..3cd404eb3a758b9e48c252056037e0d5a1d75271 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'da', {\r
index dc440b1227be4cf90a1349761b9da733a5019ed5..ad13b785dd423c4cd4d6d70fec77db6d605bbf17 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'de-ch', {\r
index 0c898efd09d0139465128faae334f7aa0871d281..5072d3ba78df4b969b9c0379fba8eb1eca0f5147 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'de', {\r
index 5106bd8788d776a6a73a88995fdc4390796d0a1c..00a4812182461c8469c0ccef26555fb820e461a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'el', {\r
index fc9a3aa42f07e8096251ca78509fba7511ea4211..60a838aa6a00b16e77ad0307d6cc366733bd6f65 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'en-au', {\r
index 894d9857e1ccf85d5924075018a1988d2af83778..8acb5c4823da3ca2904d75a049a179adfbf3500e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'en-ca', {\r
index f172fc04ad3323f4c5437ea551c56fefebcbe81b..86fb78e9076066e3f00f0be00f4a1c0072284a8b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'en-gb', {\r
index 135c89574df780ea527cc98a75e3b288aa5fcb90..96feac700e072b20faefe5a4fabf9a7e836f2a39 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'en', {\r
index 5df75e9dd7bfc26c168fa6e28281cd80923b3d30..20e03201a36f6ca76e150d23088425db43a8c480 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'eo', {\r
diff --git a/sources/plugins/elementspath/lang/es-mx.js b/sources/plugins/elementspath/lang/es-mx.js
new file mode 100644 (file)
index 0000000..625d951
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'es-mx', {\r
+       eleLabel: 'Ruta de los elementos',\r
+       eleTitle: '%1 elemento'\r
+} );\r
index 3953de4aadeda81ec3086435166271f7d0824c00..815a18d615a351448124b2e23a18b102b04a8786 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'es', {\r
index be7f786095eda7f03f6a63e1e83bbf02bd0ee1ab..ab62d21906ab25395ff819549eb1d92feab3c736 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'et', {\r
index 06a70413bb591ca2eddf7df0c34a7cb0a51cf5e2..f3d0bb99c2297bebab5ca5e99211bd495a26d830 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'eu', {\r
index 72b4b110f0582c8a148746ee144f73c992651f87..faeb18eb7e3ff9a7d46797efd06e973d236d1bcf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'fa', {\r
index 5a175b5d13475ccdcbfc604402b99d3a33acfceb..5f975cf7b2cab8e22d44455044a9747f64159493 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'fi', {\r
index a9feb77219fc1f9f31d2992813fa4470e2250754..0935eb981e6fbb25722651533dcd446c2911656f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'fo', {\r
index 0f3d209f757d1522c4ef5fb4e93096d92f42ebd5..0b8796cf557c3c2e29e209fdd7451af2049b776b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'fr-ca', {\r
index 8cd9b1a3b5d9b6639f6611d0ab0453caa81ade38..78488bb7e1e7edd1188f95910c8d0969f3d92099 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'fr', {\r
-       eleLabel: 'Elements path',\r
-       eleTitle: '%1 éléments'\r
+       eleLabel: 'Chemin des éléments',\r
+       eleTitle: 'Élément %1'\r
 } );\r
index 827325b01d01b6596d8154d6a8a05e1e621f1787..7dfc4576c4fa174a3889da80fdb02e6a97c813cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'gl', {\r
index ffdfb3dd2aa43bbd3d8cbe51d128b2d163654515..d6f4f4000991367c1e4db9e35850a5f51d5804cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'gu', {\r
index 19ec76e2d74abd6ff1c65624ecffaef2d83c156b..3e2773f8050f672cfd1df327c3e893df57cd9c81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'he', {\r
index 6f89d6d7c43d277328d3d2b58698c2cec6e52ad3..3d514f275b7e1587a0a7c26a4729c1c2452ef9da 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'hi', {\r
index 6d07ae573ca106bcd3369b0e16941ed9caac4958..004182b1e5319072532021dd52867b172645de1e 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'hr', {\r
-       eleLabel: 'Putanja elemenata',\r
+       eleLabel: 'Putanje elemenata',\r
        eleTitle: '%1 element'\r
 } );\r
index 62152ceea6368601e983f12e932cd1a257fddf3b..23701f2c6ebcfbb8a56b97b72aba80075ab50555 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'hu', {\r
index ef8abad1811f5755720246a0ebb178a93bb8c42c..b5711ded20ed0c253fab13642c3a91c2dc749e1a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'is', {\r
index 966ae054cc4e8dfa05b1789aa1ebb30eceaf298c..2e3ed4d6349b6e52c8cd0c3c2483c357c0bbcc28 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'it', {\r
index 60fc4cd205ce764ca2efe2c200409f02ccb21245..6fba524edfbd9102d8ac8cd56baaeed042b9e8ce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ja', {\r
index 901f95f14f4371df0275674363c0f11661457ae2..99239021d261a454ba51dee89ef9b7b9ee264785 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ka', {\r
index d8cf78c8c755aef784f825530e51b9504366d3e0..2fc661d978f11a31579b9f42d14c6f552a45f00a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'km', {\r
index 77d399ff37f897d7b9700b873233530568537a47..843a2def766bda44ac495871be581088aa49a18f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ko', {\r
index 7461fdf9ea6ac0d047b5370dfbca075d145ef6e8..f425c90f132f1ffad6ba4d9230203f73b03721d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ku', {\r
index 266a8e69a1a1a57b3b9c087ec19bf4feaa2068cb..14c5345088c9b53f0b993cef7aac954ef7fdcf1a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'lt', {\r
index e4b56812ef30d2f6fbaf2ddb6dd3b1dab88f4639..7459ce8dc66049818931352f850231406e85989d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'lv', {\r
index 6bf992b47479f2b09c8ed41f41b7a9bb2668d8f5..3fb1549681fc128ad14cb4c8ffa40cb7d1ea43a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'mk', {\r
index 95ff8190febcd8d0375259143c22d8466471d7e4..e3e92859cf39e849f3ca76866faff4d477d66d93 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'mn', {\r
index 9220621d96d245d0fbedf09ebea6d4d2b4d4d78e..143b4cd47b0807aeb25640066e022e6055c58943 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ms', {\r
index 6972c0266e3f7858eaea90cfd1f40b157a51e8f7..d797354ac839feca1e2c8db1701ee07aa11fabc1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'nb', {\r
index 559d3b621bfef2cba75e996d5d0e9f691b02b379..14a35855c90983ccd89bc369f2b6d357250284d5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'nl', {\r
index a3e2a847eabad47978731b9d49b2de54fd4e9bd5..64d05f599d0ee4106ab83f7fbc937e115dd27a04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'no', {\r
diff --git a/sources/plugins/elementspath/lang/oc.js b/sources/plugins/elementspath/lang/oc.js
new file mode 100644 (file)
index 0000000..04c1b30
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'elementspath', 'oc', {\r
+       eleLabel: 'Camin dels elements',\r
+       eleTitle: 'Element %1'\r
+} );\r
index f477bd16ec66a2c8db0ac5b21dc06b5ac82ff071..082224df4b6bdcca17358fdc2f61df1e0d755fa3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'pl', {\r
index 0cccfea08488642221e83a057804cc79cbd226e5..ec265b68cad0fef319a398e6b98d1886f975848d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'pt-br', {\r
index 6b79d0fb742a9f06987bce6ae1c5da7799e45bfb..5eed642429fb6fec678602c3ccd8b44b322830c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'pt', {\r
index c11f4dea7a9f6a4bfe2ac47340c8cab0a3f62a30..bc79113eb981936ab40a265d718e45e490d08db3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ro', {\r
index 3e1bd71954a5705aae40be8ee575f9adaea334db..ce9529eaea44e1a967de44251944d80fe673a4b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ru', {\r
index 8a5c18032df60cd10f0c761cee1f1df3d48af3cf..ff4e5dcfd9eba35501ee9143d5789468ccc26557 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'si', {\r
index f4b82f6bd6594d619786528118303e7079023d87..b3eb72566a68f8a67496b04dd41b2bc9edb7e261 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sk', {\r
index 8888344485d9a569fb7506d9152c63c03d80f2c0..2d2a1c67b02a1f1e0f4f2638bb6558d700a250b3 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sl', {\r
        eleLabel: 'Pot elementov',\r
-       eleTitle: '%1 element'\r
+       eleTitle: 'Element %1'\r
 } );\r
index ad0faf3351fcee178ffa4fd88153776bba8b7608..0018d6f647b87c2dc4cafbc48a7b4c1eddadba8b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sq', {\r
index 455802329653cded6bc03802e19397c5711ec027..65ae9f4d37c7d090444be7847fd34b4aca584bf3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sr-latn', {\r
index b27edf6c3369ce81f01c8e1dd63974d66ae02cc7..80d1ba408f1d4bac7ce3c089a1c48cb18bf08a16 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sr', {\r
index bfe4fdeb12a9d26d1467115bf29dd57db44be3c3..e34dd0e24025211fa85a7ab4132765e45a795caf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'sv', {\r
index a57021ba66e5846d751fbb4a490c104f62399fec..d56fb77f23689d9c1291248277420af7f67d1e18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'th', {\r
index d0c48bdb1a5030333042fbd98ca584b985fbb6ec..e32e4ff441c8dc11dfd139639e7ee7b8690fa191 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'tr', {\r
index ccc908be9ed73d72d7e749395fa06ca3f38d4c19..63b171c4f411e68c9552ca2fad3329ad128c54af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'tt', {\r
index 9d1b2f100c9e4cba3d848825a01aef11d42b5611..5b66e0fa501b768fabc60749482a7aca7e88f95d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'ug', {\r
index b0eb6920406795bc74df017513c925919a6f2649..0d247c6b8d2022a5badacd5eb1b1f70ad62fe1b6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'uk', {\r
index d3a938b32c8b4b347ceaf4e30e7554491bd948d3..5ba86b43eff65a7a9cbcd922d972a9c172a34fe7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'vi', {\r
index 4e7c8367cfaddd5998c99223f03946585b046d14..e585d130e80f1e5e5e343aea9b8ce45029af7670 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'zh-cn', {\r
index 4a968da2e505168ae3f72616f6b27ad76f414678..5031d0fa34f3e6c119d6322c3a22dc03614bdeec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'elementspath', 'zh', {\r
index fd02d70d03d83363f6bf8efa189e2876ea194570..f66d7adb07e6fafa98d13ee21d744465dd629734 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -17,7 +17,7 @@
                                var idBase = editor._.elementsPath.idBase;\r
                                var element = CKEDITOR.document.getById( idBase + '0' );\r
 \r
-                               // Make the first button focus accessible for IE. (#3417)\r
+                               // Make the first button focus accessible for IE. (http://dev.ckeditor.com/ticket/3417)\r
                                // Adobe AIR instead need while of delay.\r
                                element && element.focus( CKEDITOR.env.ie || CKEDITOR.env.air );\r
                        }\r
@@ -55,7 +55,7 @@
 \r
        CKEDITOR.plugins.add( 'elementspath', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                init: function( editor ) {\r
                        editor._.elementsPath = {\r
                } );\r
 \r
                function onClick( elementIndex ) {\r
-                       var element = elementsPath.list[ elementIndex ];\r
+                       var element = elementsPath.list[ elementIndex ],\r
+                               selection;\r
+\r
                        if ( element.equals( editor.editable() ) || element.getAttribute( 'contenteditable' ) == 'true' ) {\r
                                var range = editor.createRange();\r
                                range.selectNodeContents( element );\r
-                               range.select();\r
+\r
+                               selection = range.select();\r
                        } else {\r
-                               editor.getSelection().selectElement( element );\r
+                               selection = editor.getSelection();\r
+                               selection.selectElement( element );\r
+                       }\r
+\r
+                       // Explicitly fire selectionChange when clicking on an element path button. (http://dev.ckeditor.com/ticket/13548)\r
+                       if ( CKEDITOR.env.ie ) {\r
+                               editor.fire( 'selectionChange', { selection: selection, path: new CKEDITOR.dom.elementPath( element ) } );\r
                        }\r
 \r
                        // It is important to focus() *after* the above selection\r
-                       // manipulation, otherwise Firefox will have troubles. #10119\r
+                       // manipulation, otherwise Firefox will have troubles. http://dev.ckeditor.com/ticket/10119\r
                        editor.focus();\r
                }\r
 \r
                                filters = elementsPath.filters,\r
                                isContentEditable = true,\r
 \r
-                               // Use elementPath to consider children of editable only (#11124).\r
+                               // Use elementPath to consider children of editable only (http://dev.ckeditor.com/ticket/11124).\r
                                elementsChain = editor.elementPath().elements,\r
                                name;\r
 \r
index 4cbb7bf8b7ea807ac691f78a848dc87a08a1a74f..e65555feb3059400259d3ab3443d8c4baacf2789 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -43,7 +43,7 @@
                                return;\r
 \r
                        // When range is in nested editable, we have to replace range with this one,\r
-                       // which have root property set to closest editable, to make auto paragraphing work. (#12162)\r
+                       // which have root property set to closest editable, to make auto paragraphing work. (http://dev.ckeditor.com/ticket/12162)\r
                        range = replaceRangeWithClosestEditableRoot( range );\r
 \r
                        var doc = range.document;\r
@@ -58,9 +58,9 @@
 \r
                                newBlock;\r
 \r
-                       // Exit the list when we're inside an empty list item block. (#5376)\r
+                       // Exit the list when we're inside an empty list item block. (http://dev.ckeditor.com/ticket/5376)\r
                        if ( atBlockStart && atBlockEnd ) {\r
-                               // Exit the list when we're inside an empty list item block. (#5376)\r
+                               // Exit the list when we're inside an empty list item block. (http://dev.ckeditor.com/ticket/5376)\r
                                if ( block && ( block.is( 'li' ) || block.getParent().is( 'li' ) ) ) {\r
                                        // Make sure to point to the li when dealing with empty list item.\r
                                        if ( !block.is( 'li' ) )\r
 \r
                        var node;\r
 \r
-                       // If this is a block under a list item, split it as well. (#1647)\r
+                       // If this is a block under a list item, split it as well. (http://dev.ckeditor.com/ticket/1647)\r
                        if ( nextBlock ) {\r
                                node = nextBlock.getParent();\r
                                if ( node.is( 'li' ) ) {\r
                        if ( !isStartOfBlock && !isEndOfBlock ) {\r
                                // If the next block is an <li> with another list tree as the first\r
                                // child, we'll need to append a filler (<br>/NBSP) or the list item\r
-                               // wouldn't be editable. (#1420)\r
+                               // wouldn't be editable. (http://dev.ckeditor.com/ticket/1420)\r
                                if ( nextBlock.is( 'li' ) ) {\r
                                        var walkerRange = range.clone();\r
                                        walkerRange.selectNodeContents( nextBlock );\r
 \r
                                if ( previousBlock ) {\r
                                        // Do not enter this block if it's a header tag, or we are in\r
-                                       // a Shift+Enter (#77). Create a new block element instead\r
+                                       // a Shift+Enter (http://dev.ckeditor.com/ticket/77). Create a new block element instead\r
                                        // (later in the code).\r
                                        if ( previousBlock.is( 'li' ) || !( headerTagRegex.test( previousBlock.getName() ) || previousBlock.is( 'pre' ) ) ) {\r
                                                // Otherwise, duplicate the previous block.\r
                                }\r
 \r
                                if ( !newBlock ) {\r
-                                       // We have already created a new list item. (#6849)\r
+                                       // We have already created a new list item. (http://dev.ckeditor.com/ticket/6849)\r
                                        if ( node && node.is( 'li' ) )\r
                                                newBlock = node;\r
                                        else {\r
                                if ( !newBlock.getParent() )\r
                                        range.insertNode( newBlock );\r
 \r
-                               // list item start number should not be duplicated (#7330), but we need\r
-                               // to remove the attribute after it's onto the DOM tree because of old IEs (#7581).\r
+                               // list item start number should not be duplicated (http://dev.ckeditor.com/ticket/7330), but we need\r
+                               // to remove the attribute after it's onto the DOM tree because of old IEs (http://dev.ckeditor.com/ticket/7581).\r
                                newBlock.is( 'li' ) && newBlock.removeAttribute( 'value' );\r
 \r
                                // This is tricky, but to make the new block visible correctly\r
                        } else {\r
                                var lineBreak;\r
 \r
-                               // IE<8 prefers text node as line-break inside of <pre> (#4711).\r
+                               // IE<8 prefers text node as line-break inside of <pre> (http://dev.ckeditor.com/ticket/4711).\r
                                if ( startBlockTag == 'pre' && CKEDITOR.env.ie && CKEDITOR.env.version < 8 )\r
                                        lineBreak = doc.createText( '\r' );\r
                                else\r
        function shiftEnter( editor ) {\r
                // On SHIFT+ENTER:\r
                // 1. We want to enforce the mode to be respected, instead\r
-               // of cloning the current block. (#77)\r
+               // of cloning the current block. (http://dev.ckeditor.com/ticket/77)\r
                return enter( editor, editor.activeShiftEnterMode, 1 );\r
        }\r
 \r
                // Check path block specialities:\r
                // 1. Cannot be a un-splittable element, e.g. table caption;\r
                var path = editor.elementPath();\r
-               if ( !path.isContextFor( 'p' ) ) {\r
+\r
+               if ( path && !path.isContextFor( 'p' ) ) {\r
                        mode = CKEDITOR.ENTER_BR;\r
                        forceMode = 1;\r
                }\r
index 6b78e06c533fbc0f9c225fefe672c5bc982207c9..79afee3e27d96725fa8a1e5eb73a3b0193e9414b 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -98,7 +98,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index bb80b97207042cb9e96265c00845b4bbff60fba8..d457ad1e1863a0f7d1f22082915c255a9f7da93f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index eb71716d0c12cffc4a050471adbf78fd4a92057c..835d45b74a35bc9d67fb102992badbe13d8715f6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'af', {\r
index c3dec93741f11078ef5bb771c85a99144ad7a987..44363c9a4bc61464e6b61ef956fac73a635df5f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ar', {\r
diff --git a/sources/plugins/fakeobjects/lang/az.js b/sources/plugins/fakeobjects/lang/az.js
new file mode 100644 (file)
index 0000000..01fa87d
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'az', {\r
+       anchor: 'Lövbər',\r
+       flash: 'Flash animasiya',\r
+       hiddenfield: 'Gizli xana',\r
+       iframe: 'IFrame',\r
+       unknown: 'Tanımamış obyekt'\r
+} );\r
index 9d9a31713b4b556f420365d7b3772bc16ccc3260..538cdf19e0945b491d3139d684df436b1a0dd5ac 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'bg', {\r
index 83e5e2c7d105115e17d5c4fb38c1122b9e8a9b45..70c9ce9e4055daf13ae828631ce955cc2b9e3857 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'bn', {\r
index 6495f67b9ed7ff90ed741aaab9fd0133b6bffd43..4a172421ae31d89631c32f54b4b7f4957bca8f89 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'bs', {\r
index eff05e061cacccf0ec3679b0b0cc9e9a543b4e4d..cc09e6c51be7743b9e73b800f796a43811ff9c68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ca', {\r
index 66706f8510b7764fb099e97908f81fa7d9be6665..7355f4ac3dc5f9c35629782902d5e6fea572f96d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'cs', {\r
index f1f359c3568b04fc25acd300ea1af3a311b150f9..8b0ffc918c293db7433a2a2e2c7c7a49a5931cff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'cy', {\r
index b9d291cc27513021ffb32db8246b4b6ff0dab86f..06a869f8837d92f9d21206c1b70eec1d29f893b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'da', {\r
index 866e26bb6249dffa6b3731e26799348d64c8a32f..068a00385752c37495962405b7b093ff8a176ccd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'de-ch', {\r
index 508e5ba1a3dbefd1e90334ca3251062919f5ebdb..32326cf86275cc466d6bd47c9f6b9c640ae157c1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'de', {\r
index 46852d8c88a0ca0f145445130f49b4eea34ebfec..211c8d41fb5fa3cbd792c33d550c91ea5900892a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'el', {\r
index ec075ff36f0709e274bf5dfe1bd74ec96641c0fc..189e5c8b56118538d686b94251a0b16a12e1f3b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'en-au', {\r
index 11c5e00c4d861f742a71ff32d00025a34df53f6b..071bc10d459d06a6b79c97a7d405e01847b48ceb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'en-ca', {\r
index 4b91eba71ccaf8cceaba258b67973ad1184eca09..e38f16ca7f0ee231983177c1689c34e58d9553b2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'en-gb', {\r
index c86f562c3cbef326aaa136e2c015f812b84279bf..d8712310d93b2e9bc555a444dadc23f540b26b8d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'en', {\r
index 3a9eb968325de08ef1e7b34214cc8e13c49e4254..bbce7f8f87f8c2027bd26e6b3bf097be6955c689 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'eo', {\r
diff --git a/sources/plugins/fakeobjects/lang/es-mx.js b/sources/plugins/fakeobjects/lang/es-mx.js
new file mode 100644 (file)
index 0000000..f9e87e7
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'es-mx', {\r
+       anchor: 'Ancla',\r
+       flash: 'Animación flash',\r
+       hiddenfield: 'Campo oculto',\r
+       iframe: 'IFrame',\r
+       unknown: 'Objeto desconocido'\r
+} );\r
index 9eadf45bd6a5cba32d464cb2a60e4c624d71a1ac..46ac72f7a88088ce51a02e26da5002a4fab38f39 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'es', {\r
index dc7b3544f7fbbc3db7b74ab60f993b61ae2306bf..2c25f43701e591355bb836b4c93d70f56381e479 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'et', {\r
index 93c9dad6546ce3abad71c015ed18692ffb322e96..dfc44606bdd6f0d2bda8d41921282e2194921f74 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'eu', {\r
index bc9f8b5b7726e68b2e7bf3a48cf2c3776a48e12e..4104d1f78939a396847ec731d7db9eb19253589d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'fa', {\r
index 07e302dcc256d454f94f3ed3559c491be58ee479..c6630932938131bf6f2469c7899d9be1201c80f2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'fi', {\r
index 604d5dc8cfd53c5e047db7659cb1c230d6c236c1..8b7c2f9e6acfe89b5e3928283787a87d85a0aecd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'fo', {\r
index b4e6d2f4f1919d4736fe271860c5f49902130378..c281f4f5bcb981b9130ab4e0a6f9ee0d71c7743c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'fr-ca', {\r
index 6ab4497144e7ee7677945e26d8c0b4887cc200d4..be306ecdf8e4ee49d970adadb62051fa20d1255a 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'fr', {\r
        anchor: 'Ancre',\r
        flash: 'Animation Flash',\r
-       hiddenfield: 'Champ caché',\r
-       iframe: 'IFrame',\r
+       hiddenfield: 'Champ invisible',\r
+       iframe: 'Cadre de contenu incorporé',\r
        unknown: 'Objet inconnu'\r
 } );\r
index 32092345ab904ca5da5723d2b858c5437c3282be..2c353a4f21bc8ab89ee3dfc171c9ea6479cb09eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'gl', {\r
index 8d7f3649edd67d8c94957c7b9d625e4cd1f40b59..66fb428ed7ffcd110b11b28f6a1c3e7d43d81dbf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'gu', {\r
index 393ceb101cedf69c600aa7e2ccf7f74e9805704c..bc0d47213f26bb2ad6fff2f95ba0a7e123c42023 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'he', {\r
index c3e6903337327b540eb525d99e2c5cf57eabb177..e2cc724f5f62ab69e3df3f6d054c366c82f91c6c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'hi', {\r
index 8a321a0b9201eaa25fd6579174f836c58859f994..11f3574285031b5a044482881fe40fb22143a471 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'hr', {\r
index abe5ed79d8d48524b836f35e24ceade496f497da..24cec553de9771b9a13faf948f194984a911a9fc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'hu', {\r
index fad6ad1a899142f8431447ac26aa663ed7527b51..85d8c14351424f3ec3567109041a89676ff169ca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'id', {\r
index c71602b8aa4691360238d83c697f64ffed8868ad..40df479cf4b06b321fc44fc81d91f5b095ad78d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'is', {\r
index ba893e21cd83a7b68ab8e9a0475797487b1b66ce..89939512ba7cd1350785ee9852e54fd8d3a48f96 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'it', {\r
index af24002797ecc202cde83f190bbfaf18e31b2535..db21eeb5c1c54028c16fcfa9eaa5256f3390d10e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ja', {\r
index cc65e9a127c3c6aa25fa715737a9904db9e158ff..35441612d0e28d592952e86275541874b43cfde6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ka', {\r
index a8c1a1db3d3518c6761b62d3764136c35ae722c2..54be6d037bce9caa4214f697dc38689bb38dc5e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'km', {\r
index e9f97ac68f09a6c703db3b290b9efed7ebf54338..b5c05932b2f82091b65a00431ec8906fd71b8feb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ko', {\r
index 5ef378bc696c3f9a9281bca15a406d8dfb74ac3d..bbfb9f6b8a6f24c0f95b413549bd0dbdcc7e6230 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ku', {\r
index 54a6ce6f9a87ab38b56c09231c48a31227b0d21f..e14c211c892c0544e08e1e80d408440d7440b1c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'lt', {\r
index 81dbb2daeca9759f9c3fdb8d14ee73b61f9ec815..388e486237c8a99d7547dac1870ee1f0766e74ff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'lv', {\r
index a6871ccf1baad2cf099498c65f9a2ccf7e642cef..deacc877a37c8f8d59e9ee16fb262cc47754d0a4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'mk', {\r
index a8f6e00eb99cbbf3d1a474835222f0ffcff211df..a2857cca748e9426ef314543322fd54ce3484b7f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'mn', {\r
index 40087461e69acf36ce10e72a13a009db324a50e2..7325f149c06fbd548b98836485c78765a680ca63 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ms', {\r
index 8d1cb97915bba87a3b4a73a623e975175cf2ee6d..b6a652755da3b2eb73fca31766c885c0c878c006 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'nb', {\r
index e9977941ad2be2ba1d89579bd5caf2548fbe9b48..158985a8793315ea11c5675c58373fe1cfdc4a97 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'nl', {\r
index 1b35b2488ca5e0bf23c0c2bad088bce75667cf72..cbbb4cf7c89ddb222d7b88c9dd81a401e1cc5872 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'no', {\r
diff --git a/sources/plugins/fakeobjects/lang/oc.js b/sources/plugins/fakeobjects/lang/oc.js
new file mode 100644 (file)
index 0000000..0ecfcf8
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'fakeobjects', 'oc', {\r
+       anchor: 'Ancòra',\r
+       flash: 'Animacion Flash',\r
+       hiddenfield: 'Camp invisible',\r
+       iframe: 'Quadre de contengut incorporat',\r
+       unknown: 'Objècte desconegut'\r
+} );\r
index 6555db9c6b76c1f89c1fd3f182b40a007560ee47..06b3a20eac10bd7dde1c6717b6ace1edb8f8e3b6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'pl', {\r
index 70b4c28ddff54a9fa00b2fe919f35f5ceb0965f1..6198bf330a78e102b893f0e320b51cc49695457e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'pt-br', {\r
index 9ca5f62cce39f45a72a36b82c852dec54e55d51c..c3d762ff24b4b5520a50a1d43f6c23de2be6d026 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'pt', {\r
-       anchor: ' Inserir/Editar Ã\82ncora',\r
+       anchor: ' Inserir/Editar Ã¢ncora',\r
        flash: 'Animação Flash',\r
        hiddenfield: 'Campo oculto',\r
        iframe: 'IFrame',\r
-       unknown: 'Objeto Desconhecido'\r
+       unknown: 'Objeto desconhecido'\r
 } );\r
index 882bb3a69458832c5115cc23da7e967243c3ad4c..25535d3569e21ff3c7b895e891c9b3d27db1f401 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ro', {\r
index fe94054341fac607c9283f13a1ec56c3aa35c890..7f93bc77339aa5b6900b1cc6e3838cba651784e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ru', {\r
index 7af0c8e1db83c87c5f579f9742ea3dcfc6facacd..319240b8ac4bdc0cb04338835bb9a63bae114c76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'si', {\r
index 384b76c3899d205bc217653d844e055210bbdbaf..1372c548dc63be279246d63ace5ae1c8f71fc5fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sk', {\r
index 892725a6af3706e30f25d272b64a1ff29a99e713..f6d98276ef1d55280838c894fdab28d0435d84a1 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sl', {\r
        anchor: 'Sidro',\r
-       flash: 'Flash animacija',\r
+       flash: 'Animacija flash',\r
        hiddenfield: 'Skrito polje',\r
        iframe: 'IFrame',\r
        unknown: 'Neznan objekt'\r
index 6c0026aa9120c73fc38457ecb7fbcfc83c351d25..05f0987dab0ae07e67535de01a1291cb9c21244a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sq', {\r
index 36e66f70df81dd5467f578f6069df3fddb6ccb4c..fb497f06ce36021431b65ca580348e0c8a2368fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sr-latn', {\r
index 05c64049bb8f7a9fedaf3d46cb7813181a012093..82a59cb37cd6241b4e9716f698d56432667a6eb8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sr', {\r
index 2108b2897998febf42b547a308a513247f1d4b9d..3db31fb290de47f7ef5ec198ba9083778577d661 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'sv', {\r
index 813e479f9754b4d4c35e8a9d9c44457529faa08b..c0d1f4efe802afc9d87b4317e0c96eba05c090a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'th', {\r
index c68ab3e67bbcb771efbb7a0ff0f03d0b66eb0b88..768b7c143fb69baf7c135c245c7ec10480f11556 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'tr', {\r
index df6b1726ed78385925c73e9b6571362740640e89..df1a714ac48cf313a0e3cc65b05576c53d9d6fae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'tt', {\r
index 3e6404fc52b470bc58e575aeb458506b721ed21c..c44b8ded6c051c6a13faeca1efbd53f1f89db297 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'ug', {\r
index 9fcf85bf8ba46486c9e4e244023d3972ded565d1..81da8ca8ad419c4a51aaa033aa322529148d506e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'uk', {\r
index 0d9d68bb581185ed12880e6ae565b2767eb2d26d..f1346aa5f0ec942e80e53e333e6f5fca78ef029e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'vi', {\r
index 5328ae64670faf00b786cd307fad6a741c436dd4..8d304c2fce538d78061e409fb0c2c12c7bdf45f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'zh-cn', {\r
index d4aea58ff414f9a0559f4e61a707457bc91970a3..1255003ff97bd78fb76b9cdeadd9dd67e90c831a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'fakeobjects', 'zh', {\r
index a054a99f41c04d0c618e9a86df2291373eb8d961..b1a8e0ce6ba506ad04816660923071dd5b3f2516 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -53,7 +53,7 @@
 \r
        CKEDITOR.plugins.add( 'fakeobjects', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
 \r
                init: function( editor ) {\r
        } );\r
 \r
        /**\r
+        * Creates fake {@link CKEDITOR.dom.element} based on real element.\r
+        * Fake element is an img with special attributes, which keep real element properties.\r
+        *\r
         * @member CKEDITOR.editor\r
-        * @todo\r
+        * @param {CKEDITOR.dom.element} realElement Real element to transform.\r
+        * @param {String} className Class name which will be used as class of fake element.\r
+        * @param {String} realElementType Stores type of fake element.\r
+        * @param {Boolean} isResizable Keeps information if element is resizable.\r
+        * @returns {CKEDITOR.dom.element} Fake element.\r
         */\r
        CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable ) {\r
                var lang = this.lang.fakeobjects,\r
@@ -91,7 +98,7 @@
                        align: realElement.getAttribute( 'align' ) || ''\r
                };\r
 \r
-               // Do not set "src" on high-contrast so the alt text is displayed. (#8945)\r
+               // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)\r
                if ( !CKEDITOR.env.hc )\r
                        attributes.src = CKEDITOR.tools.transparentImageData;\r
 \r
        };\r
 \r
        /**\r
+        * Creates fake {@link CKEDITOR.htmlParser.element} based on real element.\r
+        *\r
         * @member CKEDITOR.editor\r
-        * @todo\r
+        * @param {CKEDITOR.dom.element} realElement Real element to transform.\r
+        * @param {String} className Class name which will be used as class of fake element.\r
+        * @param {String} realElementType Store type of fake element.\r
+        * @param {Boolean} isResizable Keep information if element is resizable.\r
+        * @returns {CKEDITOR.htmlParser.element} Fake htmlParser element.\r
         */\r
        CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable ) {\r
                var lang = this.lang.fakeobjects,\r
                        align: realElement.attributes.align || ''\r
                };\r
 \r
-               // Do not set "src" on high-contrast so the alt text is displayed. (#8945)\r
+               // Do not set "src" on high-contrast so the alt text is displayed. (http://dev.ckeditor.com/ticket/8945)\r
                if ( !CKEDITOR.env.hc )\r
                        attributes.src = CKEDITOR.tools.transparentImageData;\r
 \r
        };\r
 \r
        /**\r
+        * Creates {@link CKEDITOR.dom.element} from fake element.\r
+        *\r
         * @member CKEDITOR.editor\r
-        * @todo\r
+        * @param {CKEDITOR.dom.element} fakeElement Fake element to transform.\r
+        * @returns {CKEDITOR.dom.element/null} Returns real element or `null` if transformed element wasn't fake.\r
         */\r
        CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) {\r
                if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )\r
index 6d271469a6cf043ec493dcf72a625d85588a1653..51744f55d2bd218e433384b15f5a254b20fa6e81 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
                        params.langCode = editor.langCode;\r
 \r
                var url = addQueryString( this.filebrowser.url, params );\r
-               // TODO: V4: Remove backward compatibility (#8163).\r
+               // TODO: V4: Remove backward compatibility (http://dev.ckeditor.com/ticket/8163).\r
                editor.popup( url, width, height, editor.config.filebrowserWindowFeatures || editor.config.fileBrowserWindowFeatures );\r
        }\r
 \r
index 70e0ce9b75234ed28e54ce0c4f7271db70a9ff8a..bea3306343afb9f74f0cec3bf9a515fa986b19f4 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -68,7 +68,7 @@
                                }\r
 \r
                                return function( evt ) {\r
-                                       // #10112 Do not fail on editable-less editor.\r
+                                       // http://dev.ckeditor.com/ticket/10112 Do not fail on editable-less editor.\r
                                        if ( !( editable = editor.editable() ) )\r
                                                return;\r
 \r
                                                alignSide = mid - editorRect.left > editorRect.right - mid ? 'left' : 'right';\r
                                        }\r
 \r
-                                       // (#9769) If viewport width is less than space width,\r
+                                       // (http://dev.ckeditor.com/ticket/9769) If viewport width is less than space width,\r
                                        // make sure space never cross the left boundary of the viewport.\r
                                        // In other words: top-left corner of the space is always visible.\r
                                        if ( spaceRect.width > viewRect.width ) {\r
                                                                offset = 0;\r
                                                }\r
 \r
-                                               // (#9769) Finally, stick the space to the opposite side of\r
+                                               // (http://dev.ckeditor.com/ticket/9769) Finally, stick the space to the opposite side of\r
                                                // the viewport when it's cut off horizontally on the left/right\r
                                                // side like below.\r
                                                //\r
                                        }\r
 \r
                                        // Pin mode is fixed, so don't include scroll-x.\r
-                                       // (#9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space.\r
+                                       // (http://dev.ckeditor.com/ticket/9903) For mode is "top" or "bottom", add opposite scroll-x for right-aligned space.\r
                                        var scroll = mode == 'pin' ? 0 : alignSide == 'left' ? pageScrollX : -pageScrollX;\r
 \r
                                        floatSpace.setStyle( alignSide, pixelate( ( mode == 'pin' ? pinnedOffsetX : dockedOffsetX ) + offset + scroll ) );\r
index c1040370e35ea201ad7ef164cabb8237ec9ddd4c..c4806960c98944704d113b67731509ebe4af565b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -61,7 +61,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                iframe = element.getFirst(),\r
                                that = this;\r
 \r
-                       // Disable native browser menu. (#4825)\r
+                       // Disable native browser menu. (http://dev.ckeditor.com/ticket/4825)\r
                        element.disableContextMenu();\r
 \r
                        this.element = element;\r
@@ -83,7 +83,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                        editor.on( 'resize', hide );\r
 \r
                        // When resize of the window is triggered floatpanel should be repositioned according to new dimensions.\r
-                       // #11724. Fixes issue with undesired panel hiding on Android and iOS.\r
+                       // http://dev.ckeditor.com/ticket/11724. Fixes issue with undesired panel hiding on Android and iOS.\r
                        doc.getWindow().on( 'resize', function() {\r
                                this.reposition();\r
                        }, this );\r
@@ -155,7 +155,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                var element = this.element,\r
                                        iframe = this._.iframe,\r
-                                       // Edge prefers iframe's window to the iframe, just like the rest of the browsers (#13143).\r
+                                       // Edge prefers iframe's window to the iframe, just like the rest of the browsers (http://dev.ckeditor.com/ticket/13143).\r
                                        focused = CKEDITOR.env.ie && !CKEDITOR.env.edge ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow ),\r
                                        doc = element.getDocument(),\r
                                        positionedAncestor = this._.parentElement.getPositionedAncestor(),\r
@@ -165,7 +165,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                        left = position.x + ( offsetX || 0 ) - positionedAncestorPosition.x,\r
                                        top = position.y + ( offsetY || 0 ) - positionedAncestorPosition.y;\r
 \r
-                               // Floating panels are off by (-1px, 0px) in RTL mode. (#3438)\r
+                               // Floating panels are off by (-1px, 0px) in RTL mode. (http://dev.ckeditor.com/ticket/3438)\r
                                if ( rtl && ( corner == 1 || corner == 4 ) )\r
                                        left += offsetParent.$.offsetWidth;\r
                                else if ( !rtl && ( corner == 2 || corner == 3 ) )\r
@@ -198,7 +198,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                        // With addEventListener compatible browsers, we must\r
                                        // useCapture when registering the focus/blur events to\r
-                                       // guarantee they will be firing in all situations. (#3068, #3222 )\r
+                                       // guarantee they will be firing in all situations. (http://dev.ckeditor.com/ticket/3068, http://dev.ckeditor.com/ticket/3222 )\r
                                        CKEDITOR.event.useCapture = true;\r
 \r
                                        focused.on( 'blur', function( ev ) {\r
@@ -211,7 +211,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                if ( this.visible && !this._.activeChild ) {\r
                                                        // [iOS] Allow hide to be prevented if touch is bound\r
-                                                       // to any parent of the iframe blur happens before touch (#10714).\r
+                                                       // to any parent of the iframe blur happens before touch (http://dev.ckeditor.com/ticket/10714).\r
                                                        if ( CKEDITOR.env.iOS ) {\r
                                                                if ( !this._.hideTimeout )\r
                                                                        this._.hideTimeout = CKEDITOR.tools.setTimeout( doHide, 0, this );\r
@@ -235,7 +235,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                        }, this );\r
 \r
                                        // [iOS] if touch is bound to any parent of the iframe blur\r
-                                       // happens twice before touchstart and before touchend (#10714).\r
+                                       // happens twice before touchstart and before touchend (http://dev.ckeditor.com/ticket/10714).\r
                                        if ( CKEDITOR.env.iOS ) {\r
                                                // Prevent false hiding on blur.\r
                                                // We don't need to return focus here because touchend will fire anyway.\r
@@ -266,7 +266,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                var target = element;\r
 \r
                                                // Reset panel width as the new content can be narrower\r
-                                               // than the old one. (#9355)\r
+                                               // than the old one. (http://dev.ckeditor.com/ticket/9355)\r
                                                target.removeStyle( 'width' );\r
 \r
                                                if ( block.autoSize ) {\r
@@ -275,7 +275,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                        // Account for extra height needed due to IE quirks box model bug:\r
                                                        // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
-                                                       // (#3426)\r
+                                                       // (http://dev.ckeditor.com/ticket/3426)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 )\r
                                                                width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 ) + 3;\r
 \r
@@ -288,7 +288,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                        // Account for extra height needed due to IE quirks box model bug:\r
                                                        // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
-                                                       // (#3426)\r
+                                                       // (http://dev.ckeditor.com/ticket/3426)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 )\r
                                                                height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 ) + 3;\r
 \r
@@ -364,7 +364,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                // If IE is in RTL, we have troubles with absolute\r
                                                // position and horizontal scrolls. Here we have a\r
-                                               // series of hacks to workaround it. (#6146)\r
+                                               // series of hacks to workaround it. (http://dev.ckeditor.com/ticket/6146)\r
                                                if ( CKEDITOR.env.ie ) {\r
                                                        var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ),\r
                                                                scrollParent = offsetParent;\r
@@ -383,7 +383,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                }\r
 \r
                                                // Trigger the onHide event of the previously active panel to prevent\r
-                                               // incorrect styles from being applied (#6170)\r
+                                               // incorrect styles from being applied (http://dev.ckeditor.com/ticket/6170)\r
                                                var innerElement = element.getFirst(),\r
                                                        activePanel;\r
                                                if ( ( activePanel = innerElement.getCustomData( 'activePanel' ) ) )\r
@@ -410,12 +410,22 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                // Focus the block now.\r
                                                block.element.focus();\r
 \r
-                                               // #10623, #10951 - restore the viewport's scroll position after focusing list element.\r
+                                               // http://dev.ckeditor.com/ticket/10623, http://dev.ckeditor.com/ticket/10951 - restore the viewport's scroll position after focusing list element.\r
                                                if ( CKEDITOR.env.webkit )\r
                                                        CKEDITOR.document.getBody().$.scrollTop = scrollTop;\r
 \r
                                                // We need this get fired manually because of unfired focus() function.\r
                                                this.allowBlur( true );\r
+\r
+                                               // Ensure that the first item is focused (http://dev.ckeditor.com/ticket/16804).\r
+                                               if ( CKEDITOR.env.ie ) {\r
+                                                       CKEDITOR.tools.setTimeout( function() {\r
+                                                               block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+                                                       }, 0 );\r
+                                               } else {\r
+                                                       block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+                                               }\r
+\r
                                                this._.editor.fire( 'panelShow', this );\r
                                        }, 0, this );\r
                                }, CKEDITOR.env.air ? 200 : 0, this );\r
@@ -473,13 +483,13 @@ CKEDITOR.plugins.add( 'floatpanel', {
                        hide: function( returnFocus ) {\r
                                if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) ) {\r
                                        this.hideChild();\r
-                                       // Blur previously focused element. (#6671)\r
+                                       // Blur previously focused element. (http://dev.ckeditor.com/ticket/6671)\r
                                        CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur();\r
                                        this.element.setStyle( 'display', 'none' );\r
                                        this.visible = 0;\r
                                        this.element.getFirst().removeCustomData( 'activePanel' );\r
 \r
-                                       // Return focus properly. (#6247)\r
+                                       // Return focus properly. (http://dev.ckeditor.com/ticket/6247)\r
                                        var focusReturn = returnFocus && this._.returnFocus;\r
                                        if ( focusReturn ) {\r
                                                // Webkit requires focus moved out panel iframe first.\r
@@ -500,7 +510,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                         * @todo\r
                         */\r
                        allowBlur: function( allow ) {\r
-                               // Prevent editor from hiding the panel. (#3222)\r
+                               // Prevent editor from hiding the panel. (http://dev.ckeditor.com/ticket/3222)\r
                                var panel = this._.panel;\r
                                if ( allow !== undefined )\r
                                        panel.allowBlur = allow;\r
@@ -553,7 +563,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                panel.showBlock( blockName, offsetParent, corner, offsetX, offsetY );\r
                                this.blur();\r
 \r
-                               /* #3767 IE: Second level menu may not have borders */\r
+                               /* http://dev.ckeditor.com/ticket/3767 IE: Second level menu may not have borders */\r
                                if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {\r
                                        setTimeout( function() {\r
                                                panel.element.getChild( 0 ).$.style.cssText += '';\r
@@ -584,10 +594,10 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                for ( var i in panels ) {\r
                        var panel = panels[ i ];\r
-                       // Safe to destroy it since there're no more instances.(#4241)\r
+                       // Safe to destroy it since there're no more instances.(http://dev.ckeditor.com/ticket/4241)\r
                        if ( isLastInstance )\r
                                panel.destroy();\r
-                       // Panel might be used by other instances, just hide them.(#4552)\r
+                       // Panel might be used by other instances, just hide them.(http://dev.ckeditor.com/ticket/4552)\r
                        else\r
                                panel.element.hide();\r
                }\r
index 787e39f9bd6e2780f090a7ac350d473e41941978..b38cd33741eb00735e2a16a3002a0d1b3fb7f5f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'af', {\r
index e891d1aa27b7264d94bcd2f48ef1181dc5f9bdbe..8fc1c38eac27283505ca1336a41e75fb49462986 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ar', {\r
diff --git a/sources/plugins/format/lang/az.js b/sources/plugins/format/lang/az.js
new file mode 100644 (file)
index 0000000..05b2d54
--- /dev/null
@@ -0,0 +1,18 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'az', {\r
+       label: 'Format',\r
+       panelTitle: 'Abzasın formatı',\r
+       tag_address: 'Ünvan',\r
+       tag_div: 'Normal (DIV)',\r
+       tag_h1: 'Başlıq 1',\r
+       tag_h2: 'Başlıq 2',\r
+       tag_h3: 'Başlıq 3',\r
+       tag_h4: 'Başlıq 4',\r
+       tag_h5: 'Başlıq 5',\r
+       tag_h6: 'Başlıq 6',\r
+       tag_p: 'Normal',\r
+       tag_pre: 'Formatı saxla'\r
+} );\r
index c32fb941a718ae0b1891c8d232555d2e66a5e803..3de0ac45223f04e6afe77c2406ca7fff98e62696 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'bg', {\r
index 43a2cdc8ab2f93d423c24b9d4c77afbd3bad3e3a..45857a21fad6fe97f06d69d489314bb99c26b43b 100644 (file)
@@ -1,9 +1,9 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'bn', {\r
-       label: 'ফনà§\8dà¦\9f à¦«à¦°à¦®à§\87à¦\9f',\r
+       label: 'ধরন-পà§\8dরà¦\95à§\83তি',\r
        panelTitle: 'ফন্ট ফরমেট',\r
        tag_address: 'ঠিকানা',\r
        tag_div: 'শীর্ষক (DIV)',\r
index 192663b64df417cc62cdc4173494f8eb7a8028c2..4e9482acf93173845bdc09e4a9f82db8ddcd46f2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'bs', {\r
index a2c172ac1983c157bbdf8652a52e35d7b87eff9a..5345898f80b84f2e42223470b69b7811ddc49202 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ca', {\r
index cb0a0166e6b5e66f4a114623fc79634cebe74c38..b96a6c457eda02718a945e8ee3a8dbb9162cdfb7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'cs', {\r
index 8fe80f88bf30e16d585784d5c033078ac559cd5b..a8f618f86c4e48a52ac85beed6dac1724463f2e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'cy', {\r
index 9d99d639ab0c012e52ebb72289621174a11d818d..1f7c654a57500f5c051b7f9302fb8e4ac5af7a54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'da', {\r
index 906269a0774bdde91a9f74ada447c98e502175b5..68b8879817291de2d96a7aed4c2df2f6ae68d2b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'de-ch', {\r
index 7a667204a99ded7cc090db6030ab2ed4d0edf4b3..e6f667767f86eb835ac2ac5095c0c63f2de97bc6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'de', {\r
index 83e845e8614b230843b971c81441c9e6bd6562d2..9b3405167c0f4ed31c1c623e238343fdad145556 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'el', {\r
index 3fae0415cc8b569679b8ba1ed1bdf3bf1c6f8ec3..5ec7d8efd6d916e1ce484787c1e198f138e631e4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'en-au', {\r
index bc3660973a4b568245efb67a3130f5916a96ab8a..75d66c335f2967f64dca3e75da03b7e10bf4cbca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'en-ca', {\r
index 0cbf24ac6370f105fdfdd7edbce5fa0dde74e759..a91bcbf056f5819bc39d226bd279b476e9778407 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'en-gb', {\r
index 0ae1b657626c853256a7e064052e67a67403a682..3a6ebda43bc00a7ab10d13e015c35fbe760050b3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'en', {\r
index 7bac1bcfe8781f790fa139570e594678d3b14533..0d7773094845eb2c16c43402c6ef39b859386e87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'eo', {\r
diff --git a/sources/plugins/format/lang/es-mx.js b/sources/plugins/format/lang/es-mx.js
new file mode 100644 (file)
index 0000000..d311012
--- /dev/null
@@ -0,0 +1,18 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'es-mx', {\r
+       label: 'Formato',\r
+       panelTitle: 'Formato de párrafo',\r
+       tag_address: 'Dirección',\r
+       tag_div: 'Normal (DIV)',\r
+       tag_h1: 'Encabezado 1',\r
+       tag_h2: 'Encabezado 2',\r
+       tag_h3: 'Encabezado 3',\r
+       tag_h4: 'Encabezado 4',\r
+       tag_h5: 'Encabezado 5',\r
+       tag_h6: 'Encabezado 6',\r
+       tag_p: 'Normal',\r
+       tag_pre: 'Formateado'\r
+} );\r
index 8cba08786b556b20e4903be8a2999d02f573a32f..549f611c1b63fee27ff510dc14666b409d0c914f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'es', {\r
index 3f717b505ac4f666cb3ed36fa7e2e0da708a0a8d..43bc350094903c5ad85579e86ed7841de66e78c8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'et', {\r
index 4629fdfa2594a4ad998aebb972e6613581e24dc3..18832bc36276c1ece58ee5376b5c7869c9d4ee30 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'eu', {\r
index af6f8b2b7d162d31b74e2a3844984ab61f9f99b8..c92db53040e31c9d929cb682a639bc76313e9cc9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'fa', {\r
index 659555113d2f2cbc8fe84e86d3616df4de44bb69..249183d2692566061bcc8fcfd3e9fa6ec2c22595 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'fi', {\r
index 2e89522897fbb1b60cae24e1254638e665515558..2c880217b9dcb3436bab767557cd15a46df0bfe5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'fo', {\r
index 167850b54f573cce83b39ecc79fd9710b6afb163..8f190c21570cf473d0215aff96ee25b5795db337 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'fr-ca', {\r
index 4a76b58795d3837304642abcb9460836e6f686b2..6962da78200c396f6998f9da27b740d49574b9b1 100644 (file)
@@ -1,12 +1,12 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'fr', {\r
        label: 'Format',\r
        panelTitle: 'Format de paragraphe',\r
        tag_address: 'Adresse',\r
-       tag_div: 'Normal (DIV)',\r
+       tag_div: 'Division',\r
        tag_h1: 'Titre 1',\r
        tag_h2: 'Titre 2',\r
        tag_h3: 'Titre 3',\r
@@ -14,5 +14,5 @@ CKEDITOR.plugins.setLang( 'format', 'fr', {
        tag_h5: 'Titre 5',\r
        tag_h6: 'Titre 6',\r
        tag_p: 'Normal',\r
-       tag_pre: 'Formaté'\r
+       tag_pre: 'Préformaté'\r
 } );\r
index 78b96c5130ceef645634f2b686bc1eb2565e9120..d14946c90da1859620426d3f3c0259eada1daec2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'gl', {\r
index 27e583662538f33c24f9b990a680f329511ca377..8d8897a5cdd58d8704add6ff411dddd9ff01a1d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'gu', {\r
index c5a6a8144fe570b461db5d043eccdaa046605d56..5fb53a76a776b5701a57b7b58001b21cc4c0074f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'he', {\r
index 0e490c39fe4faf7e84793dd3eb6b52e42196c29a..ce4224d822801f66c11b2bde40892c461a43ccf3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'hi', {\r
index 004b853d127d0b5de469ea3b5bed4012fa49ce82..fbafb0e6172a829373e5c6f5bd926d9746cc7f04 100644 (file)
@@ -1,18 +1,18 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'hr', {\r
        label: 'Format',\r
-       panelTitle: 'Format',\r
-       tag_address: 'Address',\r
-       tag_div: 'Normal (DIV)',\r
-       tag_h1: 'Heading 1',\r
-       tag_h2: 'Heading 2',\r
-       tag_h3: 'Heading 3',\r
-       tag_h4: 'Heading 4',\r
-       tag_h5: 'Heading 5',\r
-       tag_h6: 'Heading 6',\r
-       tag_p: 'Normal',\r
+       panelTitle: 'Format paragrafa',\r
+       tag_address: 'Adresa',\r
+       tag_div: 'Normalno (DIV)',\r
+       tag_h1: 'Naslov 1',\r
+       tag_h2: 'Naslov 2',\r
+       tag_h3: 'Naslov 3',\r
+       tag_h4: 'Naslov 4',\r
+       tag_h5: 'Naslov 5',\r
+       tag_h6: 'Naslov 6',\r
+       tag_p: 'Normalno',\r
        tag_pre: 'Formatirano'\r
 } );\r
index dc1c6b3a69090be35dd1a767813b57fc54cb393b..a5467cf43cfb03e2f8519925e1cec3f9b5f59a15 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'hu', {\r
index 3abaaa56435a87d590b33e795a8095fb2b1e60c8..e8e83f7002ad174ef577fbf0d2784aee6c193f2f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'id', {\r
index eb13f4aabf4d2b45ae500980989c0a7780dab507..862e52ebf367c1d026dac4d3ba5492739e31f0ff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'is', {\r
index 973f76f80157edc72c58f56b7b6fa6ec1f4f7e15..6d4750021e2cc86a20774b5131e896b2ea4b5d7a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'it', {\r
index 7b826b1b4f1ff791acdfa031b7e76cdbaa9c6f5b..a611f3d7ecd613ce2555c40a2565e1680adb064d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ja', {\r
index 9c23b82416c4bf8d85526ef87cb0fa8f914ede68..f5c95b85b50fbb4fd6b9f87c2f37966662bf448c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ka', {\r
index 5e385bcf63626ddcea239196e2ab3bfaaea73f79..74ca18572a0b09382ec6f16eaa54aa25e7cc013f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'km', {\r
index db08c826aa5aba68710efa3b1b5ecf93b8b5bb0b..e5ed44c1693fb423f52f70f53baaa11222e4edb8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ko', {\r
index 4a943421d8394a1ade8d5500611038254dc9d049..277bf8e1e8b3e6c8286bb819e064f8019c776088 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ku', {\r
index 06e55f513690691c25825756455a1319b70a427a..973344398c7ace415aa88c340e997480fe90d831 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'lt', {\r
index 7cf1391d79a02bcf9fdc9eb6bc89243c74814bf1..ace83333d23aa44e90373c5025cf296640e7d146 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'lv', {\r
index 7ff725a7e239722b0b7441475c8d8ae1a2fdfc42..5c0bb3b9424de580510a7e6272eaac6bff81f290 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'mk', {\r
index 15f58e130a50798a4a4a9c41a25b22742027f054..f3c0dfd098bf55337a3d3b5b4aae684d6f8659d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'mn', {\r
index b41b8284bb11a96a7366e17d76a84695d6ea5073..56deba9ea5a9f82c1d3be7bc128dac7f1df87463 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ms', {\r
index a216014e71f8169e93179d8abbb346116b8c3c57..6bfffb5356d2bfe054dd0274c0b455254768d991 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'nb', {\r
index 532b7f1a05b7480cbd025992bb63d6a18eff34b0..ef2676abe768985fef844b0b497e47309c0d0576 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'nl', {\r
index 2995c96ef6b071d5860fcf31eb5d400638b29768..d9b05866a2f900ba14d1e54cb251822b6ff37d70 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'no', {\r
diff --git a/sources/plugins/format/lang/oc.js b/sources/plugins/format/lang/oc.js
new file mode 100644 (file)
index 0000000..5083f3f
--- /dev/null
@@ -0,0 +1,18 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'format', 'oc', {\r
+       label: 'Format',\r
+       panelTitle: 'Format de paragraf',\r
+       tag_address: 'Adreça',\r
+       tag_div: 'Division (DIV)',\r
+       tag_h1: 'Títol 1',\r
+       tag_h2: 'Títol 2',\r
+       tag_h3: 'Títol 3',\r
+       tag_h4: 'Títol 4',\r
+       tag_h5: 'Títol 5',\r
+       tag_h6: 'Títol 6',\r
+       tag_p: 'Normal',\r
+       tag_pre: 'Preformatat'\r
+} );\r
index e1ca1c77845f545f20e4f6fafb35f04dd26a08eb..d1274f9944d9ed4f1634da4f7b9292d50182dca1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'pl', {\r
index c8b28ea267717559e2df2ec53a0ba478d0ad18fa..151d1d1cccb13de2d6eeec04f329bb90f26facaf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'pt-br', {\r
index 93f1ad0b42ac00c316186937ac2fba4fe04345d7..013021dc461a97b499bce30a94e8b786ab122050 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'pt', {\r
index 5cb6a07e0aa8cd1094fbae721d3fd2051a5652bc..549a1b5a699eb7bf74010ead739fcb1eca83a104 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ro', {\r
index 00d0407b5531002402d4e6187ebb0b8b5048af8d..8e6345592dcb26f56a32779d6dd07cf177c3b3a5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ru', {\r
index ae531f0995dba5a3923e3bb399ac470a159be0f2..f27eb7f918b948522d9185d25bf4987a080bcdb9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'si', {\r
index 4edfa2e4e2dd25315a98c935bb9084e6927ddb55..30ca66c38a6fee9f888435b161a8337ccb2bf6f8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sk', {\r
index 0019aab650d0a2f9d5398c09f9bc59c5db479485..2dad54f1d9c2784a4807c204061e0f1dbb55314a 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sl', {\r
        label: 'Oblika',\r
-       panelTitle: 'Oblika',\r
+       panelTitle: 'Oblika odstavka',\r
        tag_address: 'Napis',\r
        tag_div: 'Navaden (DIV)',\r
        tag_h1: 'Naslov 1',\r
index 8945d053299825cce7450e76771939602b5df070..5ddb6ef8b9ae36addcd3f873539a1e47cf717e87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sq', {\r
index 3e7449d4056045ed78e9a7be23ec6f994c85c9e3..d9719503fcd3b8bee55b1dd21f9c427ecf7b9b37 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sr-latn', {\r
index 40f1d1caba2e52f5c14a1a11d514f469730ac44e..012a14d3812326a6b977bb4ba400ca8966b9726c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sr', {\r
index 47dab57e7c0031d5201f81dc383245d871a3ee33..31850e0c748b13e4fb3ced1c0506c200bf3a2efb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'sv', {\r
index 31c0dba6692cc20ba71386dd6e3ef74b4bae4523..4c8a1d28ba45fe348f27c085a3c20f288d3e6036 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'th', {\r
index eb311a9f99056d3fdb15d0d9f5acb2f88832ddb2..2de6ce2c5ee9117ac1c21905413870a2a407ff41 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'tr', {\r
index d44a9ac6bf00db76bd3d692a91bb41d53caf4a7b..160a192934ef59bd682d3052a2c34dd9e7e77a27 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'tt', {\r
index 504fee4e5fc2805e46562c8fc6c72384a8521215..0be2a159361cd2a6a00f4e3c750f796c52fe09fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'ug', {\r
index c3cffe174b4b69cb0b5f16cc91b7bde741b45470..2e2726d3416af4199ff2de54e5f595b0daa3dc9a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'uk', {\r
index a06606556aedcd1485e0abd2442b6f60fe254468..d051440e185fb1608fbfbaa66862fc596ad63a30 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'vi', {\r
index 895be829c40bb1bb4564b78dec8174f83541fc37..addaa23930993fa444f818d10629e295260a317f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'zh-cn', {\r
index ba826aa691a4c0c4324766965a44da6372de7945..bb044ad21d6103a7be88df02ebddfb56bd092437 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'format', 'zh', {\r
index d990b8e6fe513c968f977de49a36c96bbf91efb8..54d43caa716aecabe798074d986c933ce40dfc69 100644 (file)
@@ -1,12 +1,12 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.add( 'format', {\r
        requires: 'richcombo',\r
        // jscs:disable maximumLineLength\r
-       lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+       lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
        // jscs:enable maximumLineLength\r
        init: function( editor ) {\r
                if ( editor.blockless )\r
@@ -69,7 +69,7 @@ CKEDITOR.plugins.add( 'format', {
 \r
                                editor[ style.checkActive( elementPath, editor ) ? 'removeStyle' : 'applyStyle' ]( style );\r
 \r
-                               // Save the undo snapshot after all changes are affected. (#4899)\r
+                               // Save the undo snapshot after all changes are affected. (http://dev.ckeditor.com/ticket/4899)\r
                                setTimeout( function() {\r
                                        editor.fire( 'saveSnapshot' );\r
                                }, 0 );\r
index 433613da214b743bd6d46f7f83d4ab89f909a7d4..ad97e09d08b5ac6dd009dfe7869bcce1451de644 100644 (file)
Binary files a/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png and b/sources/plugins/horizontalrule/icons/hidpi/horizontalrule.png differ
index 4af9bc8e3471bd9dad63975862694a2e18a4d587..0592614d4d238fbe87a3e2649a6ced8ff23a3aec 100644 (file)
Binary files a/sources/plugins/horizontalrule/icons/horizontalrule.png and b/sources/plugins/horizontalrule/icons/horizontalrule.png differ
index 7a70679eb459ac7b6885be1e8bf0244e0074c8d0..9232187b041e93f1924aebc3944c4bba173bbd5b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'af', {\r
index af5f04b53d734d7f47448974c0fc24f4b3cfdda3..edf91015212dee25c692e7de67880ff360738b23 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ar', {\r
diff --git a/sources/plugins/horizontalrule/lang/az.js b/sources/plugins/horizontalrule/lang/az.js
new file mode 100644 (file)
index 0000000..2343630
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'az', {\r
+       toolbar: 'Sərhəd xətti yarat'\r
+} );\r
index 9b66b343ec9036ca7a4cbe6e0bdb518b41fb5fda..b20914cb059579e470ff4d51e118babb9dfbdf1a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'bg', {\r
index d2b54cf42fc95d3242bca9487a17bf8da8ce13d7..d84612558a9afe3bf19e6dcee7f70bbd64a1c523 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'bn', {\r
-       toolbar: 'রà§\87à¦\96া à¦¯à§\81à¦\95à§\8dত à¦\95র'\r
+       toolbar: 'à¦\85নà§\81ভà§\82মিà¦\95 à¦²à¦¾à¦\87ন à¦¯à§\8bà¦\97 à¦\95রি'\r
 } );\r
index 20643bea76ee0a376cb438287e313ab012053d99..39178735d6df24042babf0b672a9fadbb8d53c71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'bs', {\r
index cc37150ef31bdda184d1b3126ef853152a99e3ff..81d945760641f99f00084efb4a96cf33ca4dcac2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ca', {\r
index 385eb7d9db0530734976d831b261527043712a41..517813958f3f54f8d50493f62eb4ce61f1c91cb5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'cs', {\r
index 7f524958bc765cf1bdc8c7d5c82216e820b14b6e..df74af58977f14f6d7c7b3d3a206bf74360e5575 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'cy', {\r
index d1552ddb6863d4afddecb064802539854a2ca159..cd8cb2aaa3945d9e922bafec862a2cd95160d0b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'da', {\r
index 94d29d33ee885efe56cb29e43c921990d7594d0e..64230b5c5db2755e6c702a48c0a6b811c7330b86 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'de-ch', {\r
index 6a474f27d76cfd6530b0dfb1a8dd2a9d17394974..a1705a6ddd0b98fb9bc91260d0bbccb759553715 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'de', {\r
index 293a090fbe8a738536593a0a52212cd31a6d1175..d281f4755d3ce65376336c29fe5b86a1c87944cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'el', {\r
index 4491ce05149959276fa55256d30540ac1d833438..0548518988137a0f0fa9b6a5ab535129b2168ad7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'en-au', {\r
index 0a7320d09b033a993fa74d5a04fda25a1f35073b..feab44dff96ba72bd49d5c2ec41d5c63d8e0771e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'en-ca', {\r
index 4946b57c2133977f39d688a9d6e0504be2e50adb..5cf987f8d2a8fb8c3a8f17e9405d7583d7a34606 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'en-gb', {\r
index 470b2d67b909698e89b7dbe4b619ad5ad4f4bfc2..6c750d1d34f16c7a98ef2515bb7937e735b812d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'en', {\r
index d929aa2c2319ff63f57985ca16d7dc1924df9511..f2ddd72cbfee74e8709f4cbc655e7308f78f919c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'eo', {\r
diff --git a/sources/plugins/horizontalrule/lang/es-mx.js b/sources/plugins/horizontalrule/lang/es-mx.js
new file mode 100644 (file)
index 0000000..9c389cc
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'es-mx', {\r
+       toolbar: 'Insertar una línea horizontal'\r
+} );\r
index 4d913c24c96c0be7e41029a0b3d949fdce265210..ac42e143463ec1626bed0a14bd06346ab95d0f5b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'es', {\r
index e1ccddc259df95056a9ddd0e595e4dc40564e87b..156b1c135e2d22076647e74cdc646b4ae6196730 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'et', {\r
index dfdc82a481372a231c7a190ac3cb35282ca0c0bd..7eeabb8c4d14041ab0599a4be364be1c1e31b00d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'eu', {\r
index 722406767671dc5c200b6541e55db3fc5a6ed218..f18d1d0d4f1442d09b9c7be91e7b0ec4de6e28b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'fa', {\r
index 8baa64b9ae9eb112635e742db172b3211893e3a8..c18cd70ecf966926373c8cc1280669426cc5c998 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'fi', {\r
index 72bf857eef918bf32f3e608d90357582a4037c27..d0d3bea262a7155ad485a514ac3f742695fe127e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'fo', {\r
index a220917a29996f03b2693ff06ab7841cd498df93..a232a14bbd75789f9f4a0d2c951ef9d38167be4c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'fr-ca', {\r
index 18d5d0add116c7ab324e0ad11e617ae6890b4237..c0c63227ec84a8c810c636d0c15a57141113634e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'fr', {\r
index f25cda4250bee7fad034e961f2fb0517e950d099..6215e71463a3468d365331f82acc1f994ab50ef3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'gl', {\r
index e51de2c9f773af6ab44d249717f744c73ac5f3c1..f6abc173f49479d8a7fccc946509da4dffcbcf7c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'gu', {\r
index 620371b36960689a33b0a6875e4dd2aad70e7f1f..56c4ebd4d552c58b52a96155e03c5d724131bf35 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'he', {\r
index a7f627102dbefd217cce7653bb6a5af666f9761f..1d576c2a5aee18cc067706b3840257e243c81acf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'hi', {\r
index 8f516aab372d614d6bf47c3f4ec86a327c303d84..53d80f3c304a20ef204c12a5362de730a070f613 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'hr', {\r
index 80ffd9cd116e97640ddbab7a026dcda6a78c2d28..31fcbfc7cad7bc4ea3a0ed50de135e37cab52e13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'hu', {\r
index 0bc359667d76639b2df91aaefe01b36286c4bfdc..3d341ad7ecdacdd1168564111391b139f50988f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'id', {\r
index 4d02e8a0eae5ee94218077ba3996c9550811fa4f..1515abc7b7e2588c92426b658d25c417277be742 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'is', {\r
index e811c5e0e6e526646e06c31ce638b6b97e10a404..c2e23fbf0278e6e8fd4d85d7853f3e6b97f5f4a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'it', {\r
index 0f5921330f4b08bf9ee88b3dde8c0d541f456c52..e174c324f3ec39fa4c4ea8e1eed21362b97a4bf7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ja', {\r
index 95498bdc8f7c1aee54680e486aebb9963c2a9f75..2c798c21415d737e6f6a4221ecec1f401512a3b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ka', {\r
index dbc308294cad8f37173ce4d05e3c4c1457917142..8c8ab9f5cdc7cd475e6cb24f957628be639968c5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'km', {\r
index e91d21be9ed18bed4ae377d483b4788059762788..69df02c80202af4b0a24b01137e8178a7342ea6d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ko', {\r
index 530ee75b6c93c9c42e34915584f82ccd5b3d83ae..c8a0fa5980d199c93c0542dd9e2a1109d2e5930d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ku', {\r
index a44e8cd7bfd9afeee610c8ce3fb1f432c6238108..86cbdafff4b0f8bddb69872d6bbe7d5106d4f81c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'lt', {\r
index 9afbc936604e660c77cfc81b16e45f105efc60c2..a227a00d27c22c5b86dce5b10f25d02b3f38afe5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'lv', {\r
index 41607c7255c8feddae6f3c0a52552a7297090745..51efe3dcea754819f0e968281b16cc7f8f64a765 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'mk', {\r
index 92e4d5e34729f0e38c16d9dbf0b8c138812e2045..bd0ba0f55eff047bff11da4fb81568150a9062c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'mn', {\r
index 84da30fa319b65bebbb017b494c74e20300d41d3..fa223594905dad8ef1bb33fc23e35afe5757e624 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ms', {\r
index 49bc752bf18188ecf93e31312a30c03429636dd7..7edefa598ef6759e7f7d64ad7bb765436ee336e9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'nb', {\r
index 0030102cb2ac2c5f352d1bb5c20c48c672828fc2..47efd3f825e2599a94171e1513e1f325278f1552 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'nl', {\r
index 11c153e3fd762f061db6ffd0ce52f37d42be7b53..009fc4b16e2a2aea2649d324256f672a8de3eedc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'no', {\r
diff --git a/sources/plugins/horizontalrule/lang/oc.js b/sources/plugins/horizontalrule/lang/oc.js
new file mode 100644 (file)
index 0000000..42d1797
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'horizontalrule', 'oc', {\r
+       toolbar: 'Inserir una linha orizontala'\r
+} );\r
index 0676e7677277c4c5b7915f703a6c4d7ebdbbc233..0604f4d5c88c6c850dcf5070e66527c4e7586b64 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'pl', {\r
index 2ef26de92b9c293df34759163249ae8cf772cfb5..038616be99f89072d01826fd8b3b0daaae270d50 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'pt-br', {\r
index 097c34d6129b73d9c55724466bc3b83c61279e00..c8d710d16d2ef36bd541eeb415cd296603cee4ff 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'pt', {\r
-       toolbar: 'Inserir Linha Horizontal'\r
+       toolbar: 'Inserir linha horizontal'\r
 } );\r
index 7a82af9123174d1a7bc4d7330807dfb28c909e43..4b8f9b8a61b8e628827df17661685d2b23b1c538 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ro', {\r
index 02751af9ab64ecd497b19a15f4de174dba0865fe..542476568db161e2a9712c5189781f491427cde4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ru', {\r
index d4a6e83f7503c45ac80359def80a3a10d575e73f..b0bb9b1654ded4f7666f69c1ebeb9151277d5ee1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'si', {\r
index b49d505d7b31e5a2d828f52c3b3accabe716dac7..07bce6cc33c2eecda503fc2a616db57af0ef44e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sk', {\r
index 0d51bdd58f2b63576e8a6fc2dffe7987a2132c20..44e19ae45800944be4ea0fb7c33eb97bd5cdf4c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sl', {\r
index af33e7bc74d85aadd63bd290445f121b2f8bce3a..9fa6a402e10694fdb38e103e6ed025e0fb50d517 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sq', {\r
index f29a557fc43385e443389574bd5c3ea41376d631..eb16b98307c0ef6bf65bc5088834f292d7b60cb7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sr-latn', {\r
index a76fe429a3bbf6a70a124fcf51b8ef190de1c340..a260b4a846eeba9e0a4536694dd214379aa66d95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sr', {\r
index b1315e01a532f64690c464c23553ed7700b33e6f..bf6280f1de782cb7d46c3b3cc0b2cd1555618473 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'sv', {\r
index a166cb330e59d00511a1631c1d46230d6c4f8754..164f4965423272c73fbf3bf9f04bce121606a17d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'th', {\r
index 3fd721fa9d15202f24caf7731a4bb9a279e755be..aeb6fb8c1140e429edb7b0bd334d8d3ab17c62aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'tr', {\r
index 74891c3f049288a61d9ccf428a97bac700d2d667..411166d2bf22122d3985b8994307fd5c472b00cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'tt', {\r
index bf2bfa7dfc676cf09e27f61fc287fa64bc435717..92f24349d8359d262c826053e78df72d8634e1e5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'ug', {\r
index b6b56ef563ecaf67a0616acc2d1fa9e1a9d20ff2..d84f4284787278b9634ea3eed22b2438323c862a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'uk', {\r
index 040055fd499e41e6c82d69e0d20d103b2bc65288..339eb060b813892bc32d268f34bd8237f2520c2a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'vi', {\r
index 29dc458294370eeeab565f29882df2351eb053f1..2dfdb50a150c122d88e3a1e8998d400ea0d672bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'zh-cn', {\r
index 79e80b064cc4ac355aeafdcd31ee7df4fc5cd653..b2e427275b4f1bde344c444e764e95206ce957f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'horizontalrule', 'zh', {\r
index c7faa89c6a3add615aba3e800e598093b6fac01d..6f2186c48f90cb93ecabc78196bb0dd301c89d23 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -24,7 +24,7 @@
        // Register a plugin named "horizontalrule".\r
        CKEDITOR.plugins.add( pluginName, {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'horizontalrule', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
diff --git a/sources/plugins/html5video/dialogs/html5video.js b/sources/plugins/html5video/dialogs/html5video.js
new file mode 100644 (file)
index 0000000..76799e7
--- /dev/null
@@ -0,0 +1,161 @@
+CKEDITOR.dialog.add( 'html5video', function( editor ) {\r
+    return {\r
+        title: editor.lang.html5video.title,\r
+        minWidth: 500,\r
+        minHeight: 100,\r
+        contents: [ {\r
+            id: 'info',\r
+            label: editor.lang.html5video.infoLabel,\r
+            elements: [ {\r
+                type: 'vbox',\r
+                padding: 0,\r
+                children: [\r
+                    {\r
+                    type: 'hbox',\r
+                    widths: [ '365px', '110px' ],\r
+                    align: 'right',\r
+                    children: [ {\r
+                        type: 'text',\r
+                        id: 'url',\r
+                        label: editor.lang.html5video.allowed,\r
+                        required: true,\r
+                        validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.html5video.urlMissing ),\r
+                        setup: function( widget ) {\r
+                            this.setValue( widget.data.src );\r
+                        },\r
+                        commit: function( widget ) {\r
+                            widget.setData( 'src', this.getValue() );\r
+                        }\r
+                    },\r
+                    {\r
+                        type: 'button',\r
+                        id: 'browse',\r
+                        // v-align with the 'txtUrl' field.\r
+                        // TODO: We need something better than a fixed size here.\r
+                        style: 'display:inline-block;margin-top:14px;',\r
+                        align: 'center',\r
+                        label: editor.lang.common.browseServer,\r
+                        hidden: true,\r
+                        filebrowser: 'info:url'\r
+                    } ]\r
+                } ]\r
+            },\r
+            {\r
+                type: 'checkbox',\r
+                id: 'responsive',\r
+                label: editor.lang.html5video.responsive,\r
+                setup: function( widget ) {\r
+                    this.setValue( widget.data.responsive );\r
+                },\r
+                commit: function( widget ) {\r
+                    widget.setData( 'responsive', this.getValue()?'true':'' );\r
+                }\r
+            },\r
+            {\r
+                type: 'hbox',\r
+                id: 'size',\r
+                children: [ {\r
+                    type: 'text',\r
+                    id: 'width',\r
+                    label: editor.lang.common.width,\r
+                    setup: function( widget ) {\r
+                        if ( widget.data.width ) {\r
+                            this.setValue( widget.data.width );\r
+                        }\r
+                    },\r
+                    commit: function( widget ) {\r
+                        widget.setData( 'width', this.getValue() );\r
+                    }\r
+                },\r
+                {\r
+                    type: 'text',\r
+                    id: 'height',\r
+                    label: editor.lang.common.height,\r
+                    setup: function( widget ) {\r
+                        if ( widget.data.height ) {\r
+                            this.setValue( widget.data.height );\r
+                        }\r
+                    },\r
+                    commit: function( widget ) {\r
+                        widget.setData( 'height', this.getValue() );\r
+                    }\r
+                },\r
+                ]\r
+            },\r
+\r
+            {\r
+                type: 'hbox',\r
+                id: 'alignment',\r
+                children: [ {\r
+                    type: 'radio',\r
+                    id: 'align',\r
+                    label: editor.lang.common.align,\r
+                    items: [\r
+                        [editor.lang.common.alignCenter, 'center'],\r
+                        [editor.lang.common.alignLeft, 'left'],\r
+                        [editor.lang.common.alignRight, 'right'],\r
+                        [editor.lang.common.alignNone, 'none']\r
+                    ],\r
+                    'default': 'center',\r
+                    setup: function( widget ) {\r
+                        if ( widget.data.align ) {\r
+                            this.setValue( widget.data.align );\r
+                        }\r
+                    },\r
+                    commit: function( widget ) {\r
+                        widget.setData( 'align', this.getValue() );\r
+                    }\r
+                } ]\r
+            } ]\r
+        },\r
+        {\r
+            id: 'Upload',\r
+            hidden: true,\r
+            filebrowser: 'uploadButton',\r
+            label: editor.lang.html5video.upload,\r
+            elements: [ {\r
+                type: 'file',\r
+                id: 'upload',\r
+                label: editor.lang.html5video.btnUpload,\r
+                style: 'height:40px',\r
+                size: 38\r
+            },\r
+            {\r
+                type: 'fileButton',\r
+                id: 'uploadButton',\r
+                filebrowser: 'info:url',\r
+                label: editor.lang.html5video.btnUpload,\r
+                'for': [ 'Upload', 'upload' ]\r
+            } ]\r
+        },\r
+        {\r
+            id: 'advanced',\r
+            label: editor.lang.html5video.advanced,\r
+            elements: [ {\r
+                type: 'vbox',\r
+                padding: 0,\r
+                children: [ {\r
+                    type: 'hbox',\r
+                    children: [ {\r
+                        type: 'radio',\r
+                        id: 'autoplay',\r
+                        label: editor.lang.html5video.autoplay,\r
+                        items: [\r
+                            [editor.lang.html5video.yes, 'yes'],\r
+                            [editor.lang.html5video.no, 'no']\r
+                        ],\r
+                        'default': 'no',\r
+                        setup: function( widget ) {\r
+                            if ( widget.data.autoplay ) {\r
+                                this.setValue( widget.data.autoplay );\r
+                            }\r
+                        },\r
+                        commit: function( widget ) {\r
+                            widget.setData( 'autoplay', this.getValue() );\r
+                        }\r
+                    } ]\r
+                } ]\r
+            } ]\r
+        } ]\r
+    };\r
+} );\r
diff --git a/sources/plugins/html5video/icons/html5video.png b/sources/plugins/html5video/icons/html5video.png
new file mode 100644 (file)
index 0000000..a246517
Binary files /dev/null and b/sources/plugins/html5video/icons/html5video.png differ
diff --git a/sources/plugins/html5video/lang/de.js b/sources/plugins/html5video/lang/de.js
new file mode 100644 (file)
index 0000000..ddf4c8b
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'de', {\r
+    button: 'HTML5 Video einfügen',\r
+    title: 'HTML5 Video',\r
+    infoLabel: 'Video Infos',\r
+    allowed: 'Erlaubte Dateierweiterungen: MP4, WebM, Ogv',\r
+    urlMissing: 'Sie haben keine URL zur Video-Datei angegeben.',\r
+    videoProperties: 'Video-Einstellungen',\r
+    upload: 'Hochladen',\r
+    btnUpload: 'Zum Server senden',\r
+    advanced: 'Erweitert',\r
+    autoplay: 'Autoplay?',\r
+    yes: 'Ja',\r
+    no: 'Nein'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/en.js b/sources/plugins/html5video/lang/en.js
new file mode 100644 (file)
index 0000000..40eae12
--- /dev/null
@@ -0,0 +1,15 @@
+CKEDITOR.plugins.setLang( 'html5video', 'en', {\r
+    button: 'Insert HTML5 video',\r
+    title: 'HTML5 video',\r
+    infoLabel: 'Video info',\r
+    allowed: 'Allowed file extensions: MP4, WebM, Ogv',\r
+    urlMissing: 'Video source URL is missing.',\r
+    videoProperties: 'Video properties',\r
+    upload: 'Upload',\r
+    btnUpload: 'Send it to the server',\r
+    advanced: 'Advanced',\r
+    autoplay: 'Autoplay?',\r
+    yes: 'Yes',\r
+    no: 'No',\r
+       responsive: 'Responsive width'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/es.js b/sources/plugins/html5video/lang/es.js
new file mode 100644 (file)
index 0000000..4077935
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'es', {\r
+    button: 'Insertar video HTML5',\r
+    title: 'Video HTML5',\r
+    infoLabel: 'Información del video',\r
+    allowed: 'Extensiones de archivo permitidas: MP4, WebM, Ogv',\r
+    urlMissing: 'La URL del video no puede estar vacia.',\r
+    videoProperties: 'Propiedades del video',\r
+    upload: 'Cargar',\r
+    btnUpload: 'Enviar al servidor',\r
+    advanced: 'Avanzado',\r
+    autoplay: '¿Reproducir automáticamente?',\r
+    yes: 'Si',\r
+    no: 'No'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/eu.js b/sources/plugins/html5video/lang/eu.js
new file mode 100644 (file)
index 0000000..78635d7
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'eu', {\r
+    button: 'Txertatu HTML5 bideoa',\r
+    title: 'HTML5 bideoa',\r
+    infoLabel: 'Bideoaren informazioa',\r
+    allowed: 'Baimendutako fitxategi luzapenak: MP4, WebM, Ogv',\r
+    urlMissing: 'Bideoaren URLak ezin du hutsik egon.',\r
+    videoProperties: 'Bideoaren propietateak',\r
+    upload: 'Kargatu',\r
+    btnUpload: 'Bidali zerbitzarira',\r
+    advanced: 'Aurreratua',\r
+    autoplay: 'Automatikoki erreproduzitu?',\r
+    yes: 'Bai',\r
+    no: 'Ez'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/fr.js b/sources/plugins/html5video/lang/fr.js
new file mode 100644 (file)
index 0000000..326f622
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'fr', {\r
+    button: 'Insérer un lecteur video HTML5',\r
+    title: 'HTML5 video',\r
+    infoLabel: 'Informations video',\r
+    allowed: 'Extensions de fichiers autorisées: MP4, WebM, Ogv',\r
+    urlMissing: 'URL de la source video manquante. Veuillez la renseigner.',\r
+    videoProperties: 'Propriétés Video',\r
+    upload: 'Télécharger',\r
+    btnUpload: 'Envoyer vers le serveur',\r
+    advanced: 'Avancé',\r
+    autoplay: 'Jouer automatiquement ?',\r
+    yes: 'Oui',\r
+    no: 'Non'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/ru.js b/sources/plugins/html5video/lang/ru.js
new file mode 100644 (file)
index 0000000..cd5a195
--- /dev/null
@@ -0,0 +1,15 @@
+CKEDITOR.plugins.setLang( 'html5video', 'ru', {\r
+    button: 'Вставить HTML5 видео',\r
+    title: 'HTML5 видео',\r
+    infoLabel: 'Видео',\r
+    allowed: 'Допустимые расширения файлов: MP4, WebM, Ogv',\r
+    urlMissing: 'Не выбран источник видео',\r
+    videoProperties: 'Свойства видео',\r
+    upload: 'Загрузить',\r
+    btnUpload: 'Загрузить на сервер',\r
+    advanced: 'Дополнительно',\r
+    autoplay: 'Автовоспроизведение',\r
+    yes: 'Да',\r
+    no: 'Нет',\r
+    responsive: 'Адаптивная ширина'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/uk.js b/sources/plugins/html5video/lang/uk.js
new file mode 100644 (file)
index 0000000..32b920c
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'uk', {\r
+    button: 'Вставити HTML5 відео',\r
+    title: 'HTML5 відео',\r
+    infoLabel: 'Інформація',\r
+    allowed: 'Допустимі розширення файлів: MP4, WebM, Ogv',\r
+    urlMissing: 'Не обрано джерела відео',\r
+    videoProperties: 'Властивості відео',\r
+    upload: 'Відвантажити',\r
+    btnUpload: 'Відвантажити на сервер',\r
+    advanced: 'Додатково',\r
+    autoplay: 'Автовідтворення?',\r
+    yes: 'Так',\r
+    no: 'Ні'\r
+} );\r
diff --git a/sources/plugins/html5video/lang/uz.js b/sources/plugins/html5video/lang/uz.js
new file mode 100644 (file)
index 0000000..5fec9a2
--- /dev/null
@@ -0,0 +1,14 @@
+CKEDITOR.plugins.setLang( 'html5video', 'uz', {\r
+    button: 'HTML5 video qo‘shing',\r
+    title: 'HTML5 video',\r
+    infoLabel: 'Video ma\'lumot',\r
+    allowed: 'Ruxsat etilgan kengaytmalar: MP4, WebM, Ogv',\r
+    urlMissing: 'Video\'ning URL manbasi topilmadi.',\r
+    videoProperties: 'Video xususiyatlari',\r
+    upload: 'Yuklash',\r
+    btnUpload: 'Serverga jo‘natish',\r
+    advanced: 'Kengaytrilgan',\r
+    autoplay: 'Avtoijro?',\r
+    yes: 'Ha',\r
+    no: 'Yo‘q'\r
+} );\r
diff --git a/sources/plugins/html5video/plugin.js b/sources/plugins/html5video/plugin.js
new file mode 100644 (file)
index 0000000..bf51285
--- /dev/null
@@ -0,0 +1,139 @@
+CKEDITOR.plugins.add( 'html5video', {\r
+    requires: 'widget',\r
+    lang: 'de,en,eu,es,ru,uk,fr',\r
+    icons: 'html5video',\r
+    init: function( editor ) {\r
+        editor.widgets.add( 'html5video', {\r
+            button: editor.lang.html5video.button,\r
+            template: '<div class="ckeditor-html5-video"></div>',\r
+            /*\r
+             * Allowed content rules (http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules):\r
+             *  - div-s with text-align,float,margin-left,margin-right inline style rules and required ckeditor-html5-video class.\r
+             *  - video tags with src, controls, width and height attributes.\r
+             */\r
+            allowedContent: 'div[data-responsive](!ckeditor-html5-video){text-align,float,margin-left,margin-right}; video[src,controls,autoplay,width, height]{max-width,height};',\r
+            requiredContent: 'div(ckeditor-html5-video); video[src,controls];',\r
+            upcast: function( element ) {\r
+                return element.name === 'div' && element.hasClass( 'ckeditor-html5-video' );\r
+            },\r
+            dialog: 'html5video',\r
+            init: function() {\r
+                var src = '';\r
+                var autoplay = '';\r
+                var align = this.element.getStyle( 'text-align' );\r
+\r
+                var width = '';\r
+                var height = '';\r
+\r
+                // If there's a child (the video element)\r
+                if ( this.element.getChild( 0 ) ) {\r
+                    // get it's attributes.\r
+                    src = this.element.getChild( 0 ).getAttribute( 'src' );\r
+                    width = this.element.getChild( 0 ).getAttribute( 'width' );\r
+                    height = this.element.getChild( 0 ).getAttribute( 'height' );\r
+                    autoplay = this.element.getChild( 0 ).getAttribute( 'autoplay' );\r
+                                                                               responsive = this.element.getAttribute( 'data-responsive' );\r
+                }\r
+\r
+                if ( src ) {\r
+                    this.setData( 'src', src );\r
+\r
+                    if ( align ) {\r
+                        this.setData( 'align', align );\r
+                    } else {\r
+                        this.setData( 'align', 'none' );\r
+                    }\r
+\r
+                    if ( width ) {\r
+                        this.setData( 'width', width );\r
+                    }\r
+\r
+                    if ( height ) {\r
+                        this.setData( 'height', height );\r
+                    }\r
+\r
+                    if ( autoplay ) {\r
+                        this.setData( 'autoplay', 'yes' );\r
+                    }\r
+\r
+                    if ( responsive ) {\r
+                        this.setData( 'responsive', responsive );\r
+                    }\r
+                }\r
+            },\r
+            data: function() {\r
+                // If there is an video source\r
+                if ( this.data.src ) {\r
+                    // and there isn't a child (the video element)\r
+                    if ( !this.element.getChild( 0 ) ) {\r
+                        // Create a new <video> element.\r
+                        var videoElement = new CKEDITOR.dom.element( 'video' );\r
+                        // Set the controls attribute.\r
+                        videoElement.setAttribute( 'controls', 'controls' );\r
+                        // Append it to the container of the plugin.\r
+                        this.element.append( videoElement );\r
+                    }\r
+                    this.element.getChild( 0 ).setAttribute( 'src', this.data.src );\r
+                    if (this.data.width) this.element.getChild( 0 ).setAttribute( 'width', this.data.width );\r
+                    if (this.data.height) this.element.getChild( 0 ).setAttribute( 'height', this.data.height );\r
+\r
+                    if ( this.data.responsive ) {\r
+                            this.element.setAttribute("data-responsive", this.data.responsive);\r
+                            this.element.getChild( 0 ).setStyle( 'max-width', '100%' );\r
+                            this.element.getChild( 0 ).setStyle( 'height', 'auto' );\r
+                    } else {\r
+                            this.element.getChild( 0 ).removeStyle( 'max-width' );\r
+                            this.element.getChild( 0 ).removeStyle( 'height' );\r
+                    }\r
+                }\r
+\r
+                this.element.removeStyle( 'float' );\r
+                this.element.removeStyle( 'margin-left' );\r
+                this.element.removeStyle( 'margin-right' );\r
+\r
+                if ( this.data.align === 'none' ) {\r
+                    this.element.removeStyle( 'text-align' );\r
+                } else {\r
+                    this.element.setStyle( 'text-align', this.data.align );\r
+                }\r
+\r
+                if ( this.data.align === 'left' ) {\r
+                    this.element.setStyle( 'float', this.data.align );\r
+                    this.element.setStyle( 'margin-right', '10px' );\r
+                } else if ( this.data.align === 'right' ) {\r
+                    this.element.setStyle( 'float', this.data.align );\r
+                    this.element.setStyle( 'margin-left', '10px' );\r
+                }\r
+\r
+                if ( this.element.getChild( 0 ) ) {\r
+                    if ( this.data.autoplay === 'yes' ) {\r
+                        this.element.getChild( 0 ).setAttribute( 'autoplay', 'autoplay' );\r
+                    } else {\r
+                        this.element.getChild( 0 ).removeAttribute( 'autoplay' );\r
+                    }\r
+                }\r
+            }\r
+        } );\r
+\r
+        if ( editor.contextMenu ) {\r
+            editor.addMenuGroup( 'html5videoGroup' );\r
+            editor.addMenuItem( 'html5videoPropertiesItem', {\r
+                label: editor.lang.html5video.videoProperties,\r
+                icon: 'html5video',\r
+                command: 'html5video',\r
+                group: 'html5videoGroup'\r
+            });\r
+\r
+            editor.contextMenu.addListener( function( element ) {\r
+                if ( element &&\r
+                     element.getChild( 0 ) &&\r
+                     element.getChild( 0 ).hasClass &&\r
+                     element.getChild( 0 ).hasClass( 'ckeditor-html5-video' ) ) {\r
+                    return { html5videoPropertiesItem: CKEDITOR.TRISTATE_OFF };\r
+                }\r
+            });\r
+        }\r
+\r
+        CKEDITOR.dialog.add( 'html5video', this.path + 'dialogs/html5video.js' );\r
+    }\r
+} );\r
index 063c966313d01b901bb5292fac63debba9e3c3f2..61d6ac64300bd8afffa6eb72135e2976f87a0534 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -69,7 +69,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass( {
 \r
                this._.indent = 0;\r
                this._.indentation = '';\r
-               // Indicate preformatted block context status. (#5789)\r
+               // Indicate preformatted block context status. (http://dev.ckeditor.com/ticket/5789)\r
                this._.inPre = 0;\r
                this._.rules = {};\r
 \r
@@ -180,7 +180,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass( {
 \r
                        if ( typeof attValue == 'string' ) {\r
                                this.forceSimpleAmpersand && ( attValue = attValue.replace( /&amp;/g, '&' ) );\r
-                               // Browsers don't always escape special character in attribute values. (#4683, #4719).\r
+                               // Browsers don't always escape special character in attribute values. (http://dev.ckeditor.com/ticket/4683, http://dev.ckeditor.com/ticket/4719).\r
                                attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );\r
                        }\r
 \r
@@ -289,6 +289,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass( {
                        this._.indentation = '';\r
                        this._.afterCloser = 0;\r
                        this._.inPre = 0;\r
+                       this._.needsSpace = 0;\r
                },\r
 \r
                /**\r
index a4318f3e9b89b59e89012cb9b77b9aba7b2021d4..f72616d6256d1b5ff6b8be6061aaf0f7965f046f 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -275,7 +275,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index f7123a168e6217927c5af69cde1a1d672b8ffdb0..a4330252374fcb58d3dd35d672cacd48c83920f2 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -216,7 +216,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 4b874cac6206bf077ff9012052559a7c2b3df4c3..22c24f7a098999275067ef0e867fcfa29823d00e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -65,7 +65,7 @@
 \r
                                // A subset of the specified attributes/styles\r
                                // should also be applied on the fake element to\r
-                               // have better visual effect. (#5240)\r
+                               // have better visual effect. (http://dev.ckeditor.com/ticket/5240)\r
                                var extraStyles = {},\r
                                        extraAttributes = {};\r
                                this.commitContent( iframeNode, extraStyles, extraAttributes );\r
index ff17604da22bf1ecb420fa142dc5fd35d6c1356b..d99d0f352a9081940a906533073caa8c78cafa6c 100644 (file)
Binary files a/sources/plugins/iframe/icons/hidpi/iframe.png and b/sources/plugins/iframe/icons/hidpi/iframe.png differ
index f72d191553f382efc7cab78ad1ec4eb13c4b446d..a2f55459a0d65d4d593770294b8f42dd98cf53fe 100644 (file)
Binary files a/sources/plugins/iframe/icons/iframe.png and b/sources/plugins/iframe/icons/iframe.png differ
index 47708799c5998cb01c162eef7e42fd36e7886d21..9fa938742a5b303d8544b2138330ad61703c4b92 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'af', {\r
index 1b5c04674d59631b427c69aaa7d52d2ba7d34511..6388d75b7d87f4d985742110ced541401b911032 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ar', {\r
diff --git a/sources/plugins/iframe/lang/az.js b/sources/plugins/iframe/lang/az.js
new file mode 100644 (file)
index 0000000..e4b72e6
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'az', {\r
+       border: 'Çərçivə sərhədlərini göstər',\r
+       noUrl: 'Çərçivənin ünvanı daxil edin',\r
+       scrolling: 'Şürüşdürmələri əlavə et',\r
+       title: 'İFRAME elementinin alətləri',\r
+       toolbar: 'İFRAME'\r
+} );\r
index d3657423df5b72e2867305863b6ee2312fad6a5e..4adb22c2f4205ea09d937c6cc65ee9a7f198c3d4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'bg', {\r
index 0a91e7c5e884cdeaed7f4d0f34aaec18ae752006..3479c1f237a5337d9b7d044f8263e026c437f95e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'bn', {\r
index 63eb7b6b634e3b16ed40e005ad041574a1da1d54..51ca8a727f4f1d86cd4f08c905cf28e7a110190c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'bs', {\r
index 080271527a6c7b70b2c5c977a3cfbda12a08f958..a0d7d92e6104b0053766fef093c5f33eceaf938d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ca', {\r
index fa3e85c44d8f7d9141821009ab5dee8a6786b581..388fa618f9fb03db72d2c295bc62bd7d1d7d1da2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'cs', {\r
index e89adc74885172e3d32a50bed15fc91fbf5a40bb..a23b2ff5ca88f6745f3e2e173156a51f26d23855 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'cy', {\r
index d14b8cd195598788c581f3f8b71934547be244fa..88b4fab4c1b528dcbabe9550b652a20f5b5e9935 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'da', {\r
index 233b55b0e6554716920dd040d717b80d28293356..2a56ccf70d3c71297cc2a89254b439db2352b0c1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'de-ch', {\r
index 184387f7946d4711cf64e26213cee52e0a8093cd..7988dfa3e6120a414e5ca60681574367fa1ecf0b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'de', {\r
index b09fdf96927423913b8295df3c2074c12e7b7160..5abdfb0b01357201240baec256190820274da60a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'el', {\r
index 9f0885fd9820260e480e49e7309239e5992844b3..59048dbb82e3532e204360c8f32767cd96889a01 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'en-au', {\r
index 20d438c103aca975b5d62d5c129ccf6db5ea2e73..401ff493919d5ac69ccb237209906c03ca11d4a5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'en-ca', {\r
index 86a3fc08315f60b07873e34a3ce2f236b9b71f08..78d400008103dbded5a0ec6564caf16acc4ddf42 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'en-gb', {\r
index cf39cbea5cadafdc0ceba230eee0f625c98820d5..1e224b94a86e15468e4500472f689d2814b74875 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'en', {\r
index 1f5078395ffc4171e894af5bc1f77492de222166..eba244dfcfe90cad46016461c0a881ca60740de9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'eo', {\r
diff --git a/sources/plugins/iframe/lang/es-mx.js b/sources/plugins/iframe/lang/es-mx.js
new file mode 100644 (file)
index 0000000..767147e
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'es-mx', {\r
+       border: 'Mostrar el borde del marco',\r
+       noUrl: 'Ingresa la URL del iframe',\r
+       scrolling: 'Habilitar la barra de desplazamiento',\r
+       title: 'Propiedades del IFrame',\r
+       toolbar: 'Iframe'\r
+} );\r
index 67955e32dd7cb0f0ea86f2cd34f8eab6d0d70641..1cf5c29a6c063cddc788c287b96187d32f50704a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'es', {\r
index e01acb893199bc0521d76b5f89df6e0d1522b93d..aac467dd88fa2aedb4910f8a30f148713292b4bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'et', {\r
index 9f78376aba46dd21951edd282a33c4a300fc100d..1f7736774e97348b512d28ee95cee94be2f0ffe7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'eu', {\r
index 4f96602888b30fe74d5838b84067df2b8fabc4cf..0c7a09f497a351639afb573d2fe60ddeba17a369 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'fa', {\r
index 3413f0ea92bc1a70e4b23292015c5c31e894d105..0aa7f3728f1f89ea04a14d3f9a729417eb625a86 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'fi', {\r
index 877e5d8c965728a72c55e6a9873a5beba58c7482..05fdfe89d0e4aa3c04493723f1dfc95dc04a5e09 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'fo', {\r
index d472cf974a6823646d855d8b3efd4f45d005117c..cf7947e82a0f144aa43f5be6a311ae2cd187d347 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'fr-ca', {\r
index 3cfd49a60f3fec57a3e55de218ece56ff20f93bc..34fc64e92d5aba885756dea0e4fdbade5bf5840d 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'fr', {\r
-       border: 'Afficher une bordure de la IFrame',\r
-       noUrl: 'Veuillez entrer l\'adresse du lien de la IFrame',\r
-       scrolling: 'Permettre à la barre de défilement',\r
-       title: 'Propriétés de la IFrame',\r
-       toolbar: 'IFrame'\r
+       border: 'Afficher la bordure du cadre',\r
+       noUrl: 'Veuillez entrer l\'URL du contenu du cadre',\r
+       scrolling: 'Activer les barres de défilement',\r
+       title: 'Propriétés du cadre de contenu incorporé',\r
+       toolbar: 'Cadre de contenu incorporé'\r
 } );\r
index a19d1ee10fe7db19da5c8890809932331dbe3983..449e28d8b5ac3f442e7c4c4f97b649ec61c84418 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'gl', {\r
index 285484c6ef8dd7124f14634a0ec229f843c4f2cd..91bb8bbfb6d41bc70ee9d69f637e359a4dfae13f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'gu', {\r
index bd9ce8b6dd65490624b6e8285f7a19c169f75e0f..87467be850115e287b23a9793c1197289c65f42d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'he', {\r
index a51c275bf4ca9859b8954603ad1f39d515496037..96d30fb70c39f20126f7ef4bc77ca70c1a4d5568 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'hi', {\r
index d01d19a52fd44c921e88bdd8e441da6b00373157..9f289a7f313eeea0d9c3dbce81b9777f294258fb 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'hr', {\r
        border: 'Prikaži okvir IFrame-a',\r
-       noUrl: 'Unesite URL iframe-a',\r
+       noUrl: 'Unesite URL IFrame-a',\r
        scrolling: 'Omogući trake za skrolanje',\r
        title: 'IFrame svojstva',\r
        toolbar: 'IFrame'\r
index 7b691683be3c50a3c060c1ea98c4700f02e304dc..096d31183eec90e7b625d6ccee33cb75863e2988 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'hu', {\r
index 9f2fb247f930d0705c2cebd26e738974f3551938..c351edaaf8b784889caf59df19816dde4c9abb38 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'id', {\r
index 7a75de8f05486037b56d6abb2bba354fcd962042..bc7cf08f5866c69d5e7633fa11c0dad05a294a6b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'is', {\r
index a7851326072e097664d17e34905966a7ceb1202f..e020c27d8e770610ad31c2f78ffb6d770b47c5ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'it', {\r
index a24dd150bae747471d61aff6b2987b4efde7ef28..b104ccde31d1cb80390e714e9378f4753ad13cfa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ja', {\r
index a7d3320846dab4abdc60aa67183bb5933f87b2f4..7d98f68b090abf116f5c62e465122baf14560300 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ka', {\r
index 0fea30c7b9390bd35b3173ea8512e44d3091c287..9331b23a808003fad6fb20a15531cf20bc63e90a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'km', {\r
index 358b101f342d16e940b8af8a82178e9c9021aa5b..f5c16a0f6197cbadcb71b0817e690f71a978f245 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ko', {\r
index 6217ee18312d8e2bfec64475062e2182b5d4e96f..852c3b4bd43ddd2dc96eac819538ea6aca6e99b6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ku', {\r
index 6b4c29822660a2895e5bb5dde1d244262363a725..c69817f7f4862e1450093d9e43bd38c16ff7deea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'lt', {\r
index 6b10267cd1548fa9282b692d829e7a12aafefa53..50a674305fff774afe42d430e647958e1ccc6a7f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'lv', {\r
index 6f0c2a221b14b1a424df44134f363e3d33f45481..d576e21438e1cb1d3d72b4393a12b9c1d2e08625 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'mk', {\r
index bba8e024cd8a0782ea9b77eb6bcec2a5a0b771c6..dd9d927250d8e598381b5061c1509626489c5165 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'mn', {\r
index eea00cb63e6bdc1db9dd46c6004b6d2c5b456943..f0342bfbf2329eb3c20e64c222977a788a6adb5b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ms', {\r
index ffd69978311ac9dcc97d600f72b8803f5fbe0f92..c02990ebec71bc2175913a6c0afd2d4388aab284 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'nb', {\r
index fc80c47c6fd9dfdf6e5fe8c9a06a6ba5b7d96ec7..555025d99dd6284e0339b127d5d86f6380da612a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'nl', {\r
index 59c72559bf129d7bdd0820bfd230358202c3f917..bb44fe58068654b6e9d741f74b60170169cde00f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'no', {\r
diff --git a/sources/plugins/iframe/lang/oc.js b/sources/plugins/iframe/lang/oc.js
new file mode 100644 (file)
index 0000000..890a571
--- /dev/null
@@ -0,0 +1,11 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'iframe', 'oc', {\r
+       border: 'Afichar la bordadura del quadre',\r
+       noUrl: 'Entratz l\'URL del contengut del quadre',\r
+       scrolling: 'Activar las barras de desfilament',\r
+       title: 'Proprietats del quadre de contengut incorporat',\r
+       toolbar: 'Quadre de contengut incorporat'\r
+} );\r
index 3f631617c1ed962ae6e7398033d69f6f4511de19..6d05dd19f98570c599e7227a422829fc3c35fbc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'pl', {\r
index ae9157f2bff092a92d208c4b256779e089d8c653..58ec35685ccfe5026d92e4ac25e7b4eddff56a42 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'pt-br', {\r
index 0440cb08a1b3db225709cb23839bd13366f31dc3..1b1cd9f5e8357f69a2cd11944b12fd9452f2835b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'pt', {\r
index 96dbb4329203940f2f55b9e8dc04542ecd1943b0..deeb0c4f05344f684c02ba59a29ff38fbe5d747c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ro', {\r
index ca0bf8e9b3cf6aff2933a57ce387d8f7e4d98fae..e352aa361b2014a7c8dbfc07036dac72d983a963 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ru', {\r
index 17d800d4ae00beb933c0c1e3e7c057433eb7f5ce..d7660efe32a4da65a36c32951ffd88e7f7c58519 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'si', {\r
index 1b360d8d5f7c13ff99451cac7afb8e645d8079dc..ac0b91d2382f0bc23926cb38638f75723dfc7bad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sk', {\r
index 13eab17b19f213b862d0e007f248aecb94ab9da7..2b0e3759c3f9ff5c054371ce953cc559a9b7d5b9 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sl', {\r
-       border: 'Pokaži mejo okvira',\r
+       border: 'Pokaži obrobo okvirja',\r
        noUrl: 'Prosimo, vnesite iframe URL',\r
-       scrolling: 'Omogoči scrollbars',\r
-       title: 'IFrame Lastnosti',\r
+       scrolling: 'Omogoči drsnike',\r
+       title: 'Lastnosti IFrame',\r
        toolbar: 'IFrame'\r
 } );\r
index 671f7430871dc008d7c598e18ecaf15b68f40ef8..a274000c8a2d91ce437231670b993e60f701c8b9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sq', {\r
index 7b7e316b816d125928cb9185231e0c792b954249..29685a9f2461c0ef2fa6458cce30462196eda8eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sr-latn', {\r
index d59430a944790f33bfe91544777b3f93f8755ba3..acd98768e31fd83031baf53198990ac2164da305 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sr', {\r
index bd9f5f5b4f5e63ce0add2c0956da74b155930778..fab04a5c60b150f7fd775bcfcb2f346f330b97db 100644 (file)
@@ -1,11 +1,11 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'sv', {\r
        border: 'Visa ramkant',\r
        noUrl: 'Skriv in URL för iFrame',\r
        scrolling: 'Aktivera rullningslister',\r
-       title: 'iFrame Egenskaper',\r
+       title: 'iFrame-egenskaper',\r
        toolbar: 'iFrame'\r
 } );\r
index f22f33518a7405b1d4697546fabbd83f9cb6e53f..57926b9636470d1d8345dcada4f90a63b5fb91b5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'th', {\r
index 6738e2abc8366a60fc928a3bf079f7af9a2693ba..d828f654550d553522fab98c4d6f1aee667216cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'tr', {\r
index 8523323748b51d542a87ccef76545a5da1703645..869f67b0791aa80604cbe9225ab912816ece5493 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'tt', {\r
index 3cbd5b0c182b5dc390581680b798d0da540947c4..b46f6dacb46e925d17820b8cb0c14926fdd4b2b2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'ug', {\r
index c5173d2e836548f6a231e83a1f762a8e27c1e096..3f91ef680a4d766a3407f38f5e98382a13c0f826 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'uk', {\r
index d7c2bc027ce58f1ed0f13da01d19ec773d50de20..be8ebfbdd587588462db4ea669414179a17f2189 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'vi', {\r
index 99e657a0a92d313537638c2e2a2ec94406b92151..a35bd8c5cd5d2dac8bdacd4f1e6f324ba03bcc01 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'zh-cn', {\r
index 091b80713a9d68b1fc6655d58b472702d65e5db8..4f7472aefbafff2ae11d160f92f145f34288d237 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'iframe', 'zh', {\r
index 8f049a5648cbfce087dcdab213025d54a518ae61..7c479c0784fc92ecdc9d1a5937133c14e9908db3 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -7,7 +7,7 @@
        CKEDITOR.plugins.add( 'iframe', {\r
                requires: 'dialog,fakeobjects',\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'iframe', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
index 4f62f99c8c6237f3c4d60be08007294f4a5db884..5302a7c77a341a05978427b557e491faf2627f02 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 \r
                                        var oImageOriginal = dialog.originalElement;\r
 \r
-                                       // Dialog may already closed. (#5505)\r
+                                       // Dialog may already closed. (http://dev.ckeditor.com/ticket/5505)\r
                                        if ( !oImageOriginal )\r
                                                return null;\r
 \r
                                        this.firstLoad = false;\r
                                        this.dontResetSize = false;\r
 \r
-                                       // Possible fix for #12818.\r
+                                       // Possible fix for http://dev.ckeditor.com/ticket/12818.\r
                                        updatePreview( this );\r
                                };\r
 \r
 \r
                        return {\r
                                title: editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ],\r
-                               minWidth: 420,\r
+                               minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 500 : 420,\r
                                minHeight: 360,\r
                                onShow: function() {\r
                                        this.imageElement = false;\r
                                                this.linkEditMode = true;\r
 \r
                                                // If there is an existing link, by default keep it (true).\r
-                                               // It will be removed if certain conditions are met and Link tab is enabled. (#13351)\r
+                                               // It will be removed if certain conditions are met and Link tab is enabled. (http://dev.ckeditor.com/ticket/13351)\r
                                                this.addLink = true;\r
 \r
                                                // Look for Image element.\r
                                                        type: 'hbox',\r
                                                        widths: [ '280px', '110px' ],\r
                                                        align: 'right',\r
+                                                       className: 'cke_dialog_image_url',\r
                                                        children: [ {\r
                                                                id: 'txtUrl',\r
                                                                type: 'text',\r
                                                                                this.getDialog().dontResetSize = true;\r
 \r
                                                                                field.setValue( url ); // And call this.onChange()\r
-                                                                               // Manually set the initial value.(#4191)\r
+                                                                               // Manually set the initial value.(http://dev.ckeditor.com/ticket/4191)\r
                                                                                field.setInitValue();\r
                                                                        }\r
                                                                },\r
                                                                {\r
                                                                        id: 'ratioLock',\r
                                                                        type: 'html',\r
+                                                                       className: 'cke_dialog_image_ratiolock',\r
                                                                        style: 'margin-top:30px;width:40px;height:40px;',\r
                                                                        onLoad: function() {\r
                                                                                // Activate Reset button\r
                                        {\r
                                                type: 'button',\r
                                                id: 'browse',\r
+                                               className: 'cke_dialog_image_browse',\r
                                                filebrowser: {\r
                                                        action: 'Browse',\r
                                                        target: 'Link:txtUrl',\r
index b3c7ade53ce7653aa0351e7fb014abf2af6a326a..d0f21aeec2061dd27fc335d91509001bf040b394 100644 (file)
Binary files a/sources/plugins/image/icons/hidpi/image.png and b/sources/plugins/image/icons/hidpi/image.png differ
index fcf61b5f2b3a81f75b39d204faad07b05145b5e0..8ea97259df1e428333b1dad62e48f94faa666a0d 100644 (file)
Binary files a/sources/plugins/image/icons/image.png and b/sources/plugins/image/icons/image.png differ
index c3cf354756dd4bac56733f7841ec25d8d70ba40e..8cc5b5f142c4d1ffd8e0f75e60a28542e4192270 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'af', {\r
index 1a0fb7af4cf46b703e1eaed2b2f36d594021fcca..a755b3ebd26a556facee9212c92e7bb00c5be52a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ar', {\r
diff --git a/sources/plugins/image/lang/az.js b/sources/plugins/image/lang/az.js
new file mode 100644 (file)
index 0000000..79009fa
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'az', {\r
+       alt: 'Alternativ mətn',\r
+       border: 'Sərhəd',\r
+       btnUpload: 'Serverə yüklə',\r
+       button2Img: 'Şəkil tipli düyməni şəklə çevirmək istədiyinizə əminsinizmi?',\r
+       hSpace: 'Üfüqi boşluq',\r
+       img2Button: 'Şəkli şəkil tipli düyməyə çevirmək istədiyinizə əminsinizmi?',\r
+       infoTab: 'Şəkil haqqında məlumat',\r
+       linkTab: 'Link',\r
+       lockRatio: 'Ölçülərin uyğunluğu saxla',\r
+       menu: 'Şəklin seçimləri',\r
+       resetSize: 'Ölçüləri qaytar',\r
+       title: 'Şəklin seçimləri',\r
+       titleButton: 'Şəkil tipli düyməsinin seçimləri',\r
+       upload: 'Serverə yüklə',\r
+       urlMissing: 'Şəklin ünvanı yanlışdır.',\r
+       vSpace: 'Şaquli boşluq',\r
+       validateBorder: 'Sərhədin eni rəqəm olmalıdır.',\r
+       validateHSpace: 'Üfüqi boşluq rəqəm olmalıdır.',\r
+       validateVSpace: 'Şaquli boşluq rəqəm olmalıdır.'\r
+} );\r
index ecc7cd73428943a2355ad44e509ed2fdc39bc290..6c0b064eb837b9121c9242018ee811d55ace50d5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'bg', {\r
index 1f3934932b252da55346eee282cf069bcd0a74ec..bbecfc674625707129c256594885ca8ff32ff258 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'bn', {\r
@@ -15,7 +15,7 @@ CKEDITOR.plugins.setLang( 'image', 'bn', {
        menu: 'ছবির প্রোপার্টি',\r
        resetSize: 'সাইজ পূর্বাবস্থায় ফিরিয়ে দাও',\r
        title: 'ছবির প্রোপার্টি',\r
-       titleButton: 'ছবি বাটন প্রোপার্টি',\r
+       titleButton: 'ছবির বাটন সম্বন্ধীয়',\r
        upload: 'আপলোড',\r
        urlMissing: 'Image source URL is missing.', // MISSING\r
        vSpace: 'ভার্টিকেল স্পেস',\r
index 8470e8fa62a87f1507c68324490a262156d30b61..06dd8bf6a23350bf1cb1d55281c501f655b95fe6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'bs', {\r
index 8464dbf58109baf0a9bbfd5039dbefa760915102..858013e21d72af3b0212c5cf4315f110b8f20588 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ca', {\r
index 2f870f8480a5467512dd6bd68689162936e96361..a18a75324e8c99b2cde758f2140e2b7b65bcbad1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'cs', {\r
index 6310b5be0e021e66bbcd679480f74e04322acd22..7407310e854b5cc582fbec5bebfad2ba9e17b1cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'cy', {\r
index 82f591d0f6a440693d080a46c067d1bf5dd89744..bec69ba47df0e139f082bf308ff3778906225aaa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'da', {\r
index 9237c1abc29e49efb3e9cb98533f811f09fa234f..6ba1570620dc26c0becd0948adb2f4e24d7fa558 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'de-ch', {\r
index 4827329c651c56ed40a4672f83a291712d0f06c8..a3919343a823f63c8e2a9844d465c1ded704ae75 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'de', {\r
index 9e515e72f81755bde1cd08c6a25752380691900a..3453c3d4a05a9053161bb70b3414b722618fe819 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'el', {\r
index 6e7ce1283a29a944bf1bf876347f77e1773d7564..dba29c73a6a0df737a324061d1c46864b4184790 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'en-au', {\r
index 2f3992f3ccef5b89831e11421040f7ca7757f2ea..e78f83eb6746782fa2af0fc6af20475253829a49 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'en-ca', {\r
index e60b38a70e345c8c8a6529b25c7b9b94cbfb2877..dcf335e85fdffed836bfbc8518ac960c9b8bb1e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'en-gb', {\r
index d6cb43aa53e1279aa64701d6a8202f604e427bba..4d0f50b2ac6c648fdccfaf8c6bbbfa8079d4762b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'en', {\r
index 9ef3115cc0961e1c2eb0b6511cef9b8d721ed231..276ef3392d21054aff792ff7e529ed536b56f624 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'eo', {\r
diff --git a/sources/plugins/image/lang/es-mx.js b/sources/plugins/image/lang/es-mx.js
new file mode 100644 (file)
index 0000000..dc9b24c
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'es-mx', {\r
+       alt: 'Texto alternativo',\r
+       border: 'Borde',\r
+       btnUpload: 'Enviar al servidor',\r
+       button2Img: '¿Desea transformar el botón de imagen seleccionado en una imagen simple?',\r
+       hSpace: 'Espacio horizontal',\r
+       img2Button: '¿Desea transformar la imagen seleccionada en un botón de imagen?',\r
+       infoTab: 'Información de imagen',\r
+       linkTab: 'Enlace',\r
+       lockRatio: 'Bloquear aspecto',\r
+       menu: 'Propiedades de la imagen',\r
+       resetSize: 'Reiniciar tamaño',\r
+       title: 'Propiedades de la imagen',\r
+       titleButton: 'Propiedades del botón de imagen',\r
+       upload: 'Cargar',\r
+       urlMissing: 'Falta la URL de origen de la imagen.',\r
+       vSpace: 'Espacio vertical',\r
+       validateBorder: 'El borde debe ser un número entero.',\r
+       validateHSpace: 'El espacio horizontal debe ser un número entero.',\r
+       validateVSpace: 'El espacio vertical debe ser un número entero.'\r
+} );\r
index 12e17486d9eb0f768c71374384dc92b8db88a1f1..1302a19a9b3dd18e418c0c6fc40a0517da4f89e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'es', {\r
index e02591f27f50399a0ee1c3f3c7906b57e49a7a1b..4c7153a6074069622264e63d5cc7ea6f027a2901 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'et', {\r
index f288398f573ac1e3f9742541cbd41db40aa5a69c..52f8289f1aa7f60d5a846532a420999f62e94e18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'eu', {\r
index 00eb831de133e61cbc476760d9017c6f22e47bf3..6628e998166dc5f93ac8b17cceecf37fbb564a22 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'fa', {\r
index e264d72f2a6df2311979782957b74325f603948b..665b615e39ad7e83a1cb664ed17058460a7e01ce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'fi', {\r
index 6073e0c9ce87531b68614a9b7e6cb2b2eceb2405..8332a38a864c9db07569fc22d7e76b26d54c9b9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'fo', {\r
index ebeddb2a6776a1a396e971d6bd378431b00ddd06..644a9f3778e85b81e3016a73884f65219bcc2596 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'fr-ca', {\r
index e06d095ccc6c2b12aa2de89e933ac838a8dbd59d..299c379201eacf62169aed83160bed4ddbdbc3fa 100644 (file)
@@ -1,25 +1,25 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'fr', {\r
-       alt: 'Texte de remplacement',\r
+       alt: 'Texte alternatif',\r
        border: 'Bordure',\r
        btnUpload: 'Envoyer sur le serveur',\r
-       button2Img: 'Voulez-vous transformer le bouton image sélectionné en simple image?',\r
+       button2Img: 'Voulez-vous transformer le bouton avec image sélectionné en simple image ?',\r
        hSpace: 'Espacement horizontal',\r
-       img2Button: 'Voulez-vous transformer l\'image en bouton image?',\r
+       img2Button: 'Voulez-vous transformer l\'image sélectionnée en bouton avec image ?',\r
        infoTab: 'Informations sur l\'image',\r
        linkTab: 'Lien',\r
        lockRatio: 'Conserver les proportions',\r
        menu: 'Propriétés de l\'image',\r
-       resetSize: 'Taille d\'origine',\r
+       resetSize: 'Réinitialiser la taille',\r
        title: 'Propriétés de l\'image',\r
-       titleButton: 'Propriétés du bouton image',\r
-       upload: 'Envoyer',\r
-       urlMissing: 'L\'adresse source de l\'image est manquante.',\r
+       titleButton: 'Propriétés du bouton avec image',\r
+       upload: 'Téléverser',\r
+       urlMissing: 'L\'URL source de l\'image est manquante.',\r
        vSpace: 'Espacement vertical',\r
-       validateBorder: 'Bordure doit être un entier.',\r
-       validateHSpace: 'HSpace doit être un entier.',\r
-       validateVSpace: 'VSpace doit être un entier.'\r
+       validateBorder: 'La bordure doit être un nombre entier.',\r
+       validateHSpace: 'L\'espacement horizontal doit être un nombre entier.',\r
+       validateVSpace: 'L\'espacement vertical doit être un nombre entier.'\r
 } );\r
index 22f1f41b8299e51dea3d587985802bbe888356d3..ba632b8bda393961cf0fdc6e7435c7999989c933 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'gl', {\r
index 36e26fc6195010e657a4429bd84f7124a9538409..f70ae28bd5a4c4a290f98c96e6fa552c5ab3dc3b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'gu', {\r
index 5b8e18d382dc2033e9f55d7548442dd819e85c64..41f207a302ef27094f7e154463b8712e8946f8ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'he', {\r
index 158c1886223f6a353fa0e8bd4ced67ee6db23bb4..d4604b346cd19bce0136f4b8b7971f7f11de7cd6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'hi', {\r
index 6c3aadeaaa86e98d724609062f67e69d690c384f..962533a039d88fe505cc0d1ca4a8601bd58c7e1d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'hr', {\r
@@ -10,7 +10,7 @@ CKEDITOR.plugins.setLang( 'image', 'hr', {
        hSpace: 'HSpace',\r
        img2Button: 'Želite li promijeniti odabranu sliku u gumb?',\r
        infoTab: 'Info slike',\r
-       linkTab: 'Link',\r
+       linkTab: 'Veza',\r
        lockRatio: 'Zaključaj odnos',\r
        menu: 'Svojstva slika',\r
        resetSize: 'Obriši veličinu',\r
index ed4c35688bff0a203d43390eb14d63327f5dc3ff..5a9e9907b005be04261813bd072bbe897060bc46 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'hu', {\r
index 68ccd523037ea2e731c4d6d1a164aa52c02e9c0d..8d27ad6ac7dfec584c110e863ab4479456294e37 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'id', {\r
index f55c69cbe7022559974758ef754bd37c9303184f..fc02308119d8fa244da337a5b7bec8533bce516e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'is', {\r
index 3aeb017b80ff14e87421b1d0196814a4b996d471..7b066ca9d6051f7e281e5ad317d912bd99372949 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'it', {\r
index 86d54c8b04bd8cca00673d4bbc2c02f17c114ab5..a2d500c18fdce23066f18a9094b060d20e58c4aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ja', {\r
index fe0f8f48f50835df0fba0e8c32113ec153241fbe..0a634f05b8f1eb897e94b803259d791755504e4c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ka', {\r
index f3236ee28f1180823c2eab792d905bf908988d6d..d60562a625b38700745c71105c3c3f053b85a891 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'km', {\r
index 30e7e4500eded74bc4de63d2bfae635d45e970ff..75e5252facd70ad13eef85ee624f9579b7a091a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ko', {\r
index 9a8678a88230723e69958bd0daffa3de13817a4a..2b701454ca08f063af69d33481fc53730bc8f82d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ku', {\r
index 02614139041dfc39a8698d57770ca311a9195208..234393415611cd8a2d1e6f7ad6f53d3d4ccc9f40 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'lt', {\r
index f4e6aef5d5113b5d36c749a20482c6bd33441775..cf201664242ecc74cf96fe3c4e48f6f58b0bd98d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'lv', {\r
index 062f94fa1c96a0c3529421ec5b1ac2b5c9c1c5ed..9dd01cc12b33b339fff6ab8d110fd6bbbac3ad81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'mk', {\r
index 7923ec6e889ef9262dec8d3047e00886b6803652..4daf38aa90225ec92cc478355d95270c03fe18a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'mn', {\r
index 98adf098d004e64c3f4070f73e6df05457366dbb..28511d0cbf29ea6634b427a2405fc76cd967b4c1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ms', {\r
index ac94f3063702fbc8f3a2ab1b326469f5b1e61aa4..87208af3072b1e0f89b7682d4f7df755a44de42a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'nb', {\r
index 87555039580bb700dfaed8b8965877690bff14cb..bbe4943570e8e3c178b46ac917e27e9798dbffa3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'nl', {\r
index 5f220cb382568a6db06d63393b24661e19aa2c6c..9d4898ae0ec940a6e02fe98e6b737baf9932572a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'no', {\r
diff --git a/sources/plugins/image/lang/oc.js b/sources/plugins/image/lang/oc.js
new file mode 100644 (file)
index 0000000..fa595c6
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'image', 'oc', {\r
+       alt: 'Tèxte alternatiu',\r
+       border: 'Bordadura',\r
+       btnUpload: 'Mandar sul servidor',\r
+       button2Img: 'Volètz transformar lo boton amb imatge seleccionat en imatge simple ?',\r
+       hSpace: 'Espaçament orizontal',\r
+       img2Button: 'Volètz transformar l\'imatge seleccionat en boton amb imatge ?',\r
+       infoTab: 'Informacions sus l\'imatge',\r
+       linkTab: 'Ligam',\r
+       lockRatio: 'Conservar las proporcions',\r
+       menu: 'Proprietats de l\'imatge',\r
+       resetSize: 'Reïnicializar la talha',\r
+       title: 'Proprietats de l\'imatge',\r
+       titleButton: 'Proprietats del boton amb imatge',\r
+       upload: 'Mandar',\r
+       urlMissing: 'L\'URL font de l\'imatge es mancanta.',\r
+       vSpace: 'Espaçament vertical',\r
+       validateBorder: 'La bordadura deu èsser un nombre entièr.',\r
+       validateHSpace: 'L\'espaçament orizontal deu èsser un nombre entièr.',\r
+       validateVSpace: 'L\'espaçament vertical deu èsser un nombre entièr.'\r
+} );\r
index ba55b744873232651ca0c774d0f0d318005f6b10..93afb8580abf88b1d5dbb1560984170d09f1bdf7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'pl', {\r
index 8ac375365deec92f1452b8a4feb1acfa04c4bc66..0d13a9a3b0118f39a70d1a19f28ece8880680c45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'pt-br', {\r
index c152d81e72d2a3078a573cf8d351ff759fc291e5..729c48e861a6572ea37bc3417c397647a072446d 100644 (file)
@@ -1,25 +1,25 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'pt', {\r
-       alt: 'Texto Alternativo',\r
+       alt: 'Texto alternativo',\r
        border: 'Limite',\r
        btnUpload: 'Enviar para o servidor',\r
-       button2Img: 'Deseja transformar o botão com imagem selecionado em uma imagem?',\r
-       hSpace: 'Esp.Horiz',\r
-       img2Button: 'Deseja transformar a imagem selecionada em um botão com imagem?',\r
-       infoTab: 'Informação da Imagem',\r
+       button2Img: 'Deseja transformar o botão com imagem selecionado numa imagem simples?',\r
+       hSpace: 'Esp. Horiz',\r
+       img2Button: 'Deseja transformar a imagem selecionada num botão com imagem?',\r
+       infoTab: 'Informação da imagem',\r
        linkTab: 'Hiperligação',\r
        lockRatio: 'Proporcional',\r
        menu: 'Propriedades da Imagem',\r
-       resetSize: 'Tamanho Original',\r
-       title: 'Propriedades da Imagem',\r
-       titleButton: 'Propriedades do Botão de imagens',\r
+       resetSize: 'Tamanho original',\r
+       title: 'Propriedades da imagem',\r
+       titleButton: 'Propriedades do botão de imagem',\r
        upload: 'Carregar',\r
-       urlMissing: 'O URL da fonte da imagem está em falta.',\r
-       vSpace: 'Esp.Vert',\r
-       validateBorder: 'A borda tem de ser um numero.',\r
+       urlMissing: 'O URL de origem da imagem está em falta.',\r
+       vSpace: 'Esp. Vert',\r
+       validateBorder: 'A borda tem de ser um número inteiro.',\r
        validateHSpace: 'HSpace tem de ser um numero.',\r
        validateVSpace: 'VSpace tem de ser um numero.'\r
 } );\r
index c45929ae83ed74208f25601825ad8258bde1ade0..067dee2b4f91c5faee2d953b292aa9b7f58f13ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ro', {\r
index 1ea84d24f40591d30e6e49d4b9e39dbfc04e0a16..cb937c9be07ef8922b20f38cbdb5871ea634f45b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ru', {\r
index 7a1519676737750a898301f9f695c639093f75f7..84cbace9e5d458c6b1d7d835185b20b84d8f016a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'si', {\r
index 1384f6bcfb1c27fc3923fa7c8e20d1dd3e147ee4..38bc38adcb5587c9191e2389f65f7fdd51d4f217 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sk', {\r
index 4c7ba8f3b8094c94759fe9ee2150d38a6b7f938f..29c440fcdc45d94015ac98586a6ac580e1bea75e 100644 (file)
@@ -1,14 +1,14 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sl', {\r
        alt: 'Nadomestno besedilo',\r
        border: 'Obroba',\r
        btnUpload: 'Pošlji na strežnik',\r
-       button2Img: 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',\r
-       hSpace: 'Vodoravni razmik',\r
-       img2Button: 'Želiš pretvoriti izbrano sliko v gumb s sliko?',\r
+       button2Img: 'Želite pretvoriti izbrani gumb s sliko v preprosto sliko?',\r
+       hSpace: 'Vodoravni odmik',\r
+       img2Button: 'Želite pretvoriti izbrano sliko v gumb s sliko?',\r
        infoTab: 'Podatki o sliki',\r
        linkTab: 'Povezava',\r
        lockRatio: 'Zakleni razmerje',\r
@@ -16,10 +16,10 @@ CKEDITOR.plugins.setLang( 'image', 'sl', {
        resetSize: 'Ponastavi velikost',\r
        title: 'Lastnosti slike',\r
        titleButton: 'Lastnosti gumba s sliko',\r
-       upload: 'Pošlji',\r
-       urlMissing: 'Manjka vir (URL) slike.',\r
-       vSpace: 'Navpični razmik',\r
+       upload: 'Naloži',\r
+       urlMissing: 'Manjka URL vira slike.',\r
+       vSpace: 'Navpični odmik',\r
        validateBorder: 'Meja mora biti celo število.',\r
-       validateHSpace: 'HSpace mora biti celo število.',\r
+       validateHSpace: 'Vodoravni odmik mora biti celo število.',\r
        validateVSpace: 'VSpace mora biti celo število.'\r
 } );\r
index a851819355ca11b8e12d4cfd22fc5c5d57a846fa..072a96db2f4ec746b35e0cae4518a5137a6e4237 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sq', {\r
index 25c39c3d51855b06f4780669ce43a64026ef8e88..b3c2a9838c9486d510876439f7950d48557b195a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sr-latn', {\r
index 25b44c5e68c5777681fbc0a695892bed3b9c4830..4a269d9acf69ca83cee7109da6cd320ad5d0ec07 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sr', {\r
index bc11f09651ed137ad5b58a2ff74df98389cda010..db07c37684656a3bb8acb33f59203bef9ecb9298 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'sv', {\r
index f9f80236f8ff0d68dc741c1d413ad749de5f4d78..0d33bb349b8cb8626a620fd0aba0f712387e6b94 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'th', {\r
index 5a668f2fa722cf0d0fbfa47e701fac1eb773323b..2f707a1b7a4b47aa9e2c6a290ef182d0b478b20f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'tr', {\r
index 8daf0afa3fe9a4bb5239dd353030b8157381088c..e65906624e872dbde1a3eec09f341b86f1d61992 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'tt', {\r
index 70382ec192ed3b73e2e1b0f9912b0f16643b6ad7..d2a28ef94f37f176108f0eebfdfd9ca56cd32ca6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'ug', {\r
index c32c2306308b6f56a5fb84d9361e4423c7d4ece6..ace2eeae511b03e28a690d8f52895883ef7ec2b9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'uk', {\r
index 70d757894d9c57bd27d249f9c3a6d091dcdeb3cc..4c33fd5aed8b7bb181141c3d5c1b53fe9b350cd5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'vi', {\r
index 651468fa1e44dc99175860966a06ac02a005bd3e..287a362b3ab8a38ee3b1d772a38b766314d668fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'zh-cn', {\r
index 0859d268988256d93ff19586c13b4b96c3750e68..920b554efabe528c8eaf9753597ab514ee674cce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'image', 'zh', {\r
index 8bed8eca264d2cf2ec7450f205c7ce910f987048..507ce0a98ba16e3252906c78dadc747b7cde21a8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
        CKEDITOR.plugins.add( 'image', {\r
                requires: 'dialog',\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'image', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
                init: function( editor ) {\r
                        // Abort when Image2 is to be loaded since both plugins\r
-                       // share the same button, command, etc. names (#11222).\r
+                       // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222).\r
                        if ( editor.plugins.image2 )\r
                                return;\r
 \r
                },\r
                afterInit: function( editor ) {\r
                        // Abort when Image2 is to be loaded since both plugins\r
-                       // share the same button, command, etc. names (#11222).\r
+                       // share the same button, command, etc. names (http://dev.ckeditor.com/ticket/11222).\r
                        if ( editor.plugins.image2 )\r
                                return;\r
 \r
-                       // Customize the behavior of the alignment commands. (#7430)\r
+                       // Customize the behavior of the alignment commands. (http://dev.ckeditor.com/ticket/7430)\r
                        setupAlignCommand( 'left' );\r
                        setupAlignCommand( 'right' );\r
                        setupAlignCommand( 'center' );\r
index 4ddab5a2156b143f4b365518639a1eacd3a6044b..8b935ae77980641456578e5452426cd02f39eb48 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
index e14dc30835b127bec0fed8a8496979a00a87c65a..72bf567bf2fef9ac0816a1596e3e9ee77034d4a3 100644 (file)
Binary files a/sources/plugins/indent/icons/hidpi/indent-rtl.png and b/sources/plugins/indent/icons/hidpi/indent-rtl.png differ
index c629bb41a88ad8cd04490859f5eb86f1649015ca..6381b2379aafaa30ca16464c2b1581b214d775d1 100644 (file)
Binary files a/sources/plugins/indent/icons/hidpi/indent.png and b/sources/plugins/indent/icons/hidpi/indent.png differ
index 35f69abfd5b05810ef6fadd2bb36d460f1cf42db..441e20454a529ad361711de52fb38ea63692b95a 100644 (file)
Binary files a/sources/plugins/indent/icons/hidpi/outdent-rtl.png and b/sources/plugins/indent/icons/hidpi/outdent-rtl.png differ
index b00179e244306fc4ab1ccf0f2ea1c9e8ebcc811c..8fa4e5e91046d635cca248784014bdf959558b6b 100644 (file)
Binary files a/sources/plugins/indent/icons/hidpi/outdent.png and b/sources/plugins/indent/icons/hidpi/outdent.png differ
index ff3fd222ee320c8dc68076984261c2e711601db1..03275782ccbb29e7471f1e12e2d6cca69a99a06a 100644 (file)
Binary files a/sources/plugins/indent/icons/indent-rtl.png and b/sources/plugins/indent/icons/indent-rtl.png differ
index 3e151bc691f142ec90648d14960792558184cd94..0a5d293deab0c780bd9d0f81db143b83dd08f2aa 100644 (file)
Binary files a/sources/plugins/indent/icons/indent.png and b/sources/plugins/indent/icons/indent.png differ
index 7165424d36a749ad272be5e07e7a81d1c6545ba3..ce9ce085f031dfb2b478dd2c248b23ea2031f78c 100644 (file)
Binary files a/sources/plugins/indent/icons/outdent-rtl.png and b/sources/plugins/indent/icons/outdent-rtl.png differ
index 54f205d6de78215abec75ab977ce8d6f9c1f23fb..351f05d3eac40178bed87daa294c663e12fba590 100644 (file)
Binary files a/sources/plugins/indent/icons/outdent.png and b/sources/plugins/indent/icons/outdent.png differ
index 416b2419ed9dd9bfcaf6249921193e301ae300c1..14fff638a1721c7e7d0f91114b790d808a63c553 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'af', {\r
index 13458a669297896063205e124c8ba29f814be397..fe078cb7a89d2fafbf5a7a675cd2cf24824fbb95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ar', {\r
diff --git a/sources/plugins/indent/lang/az.js b/sources/plugins/indent/lang/az.js
new file mode 100644 (file)
index 0000000..389d1d9
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'az', {\r
+       indent: 'Sol boşluqu artır',\r
+       outdent: 'Sol boşluqu azalt'\r
+} );\r
index 5c6c9942b451ed3fd6e62fff2b8abbce5d5ad641..f4e0163a476bc856c1b9525e942b70be45b33f89 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'bg', {\r
index 11a428e37b3969d5e4928ab33beb5ab5506dfc7b..88a33932e3f01d76439bf74d27f0e243cbad1532 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'bn', {\r
-       indent: 'à¦\87নডà§\87নà§\8dà¦\9f à¦¬à¦¾à§\9cাà¦\93',\r
+       indent: 'à¦\87নডà§\87নà§\8dà¦\9f à¦¬à¦¾à§\9cাà¦\87',\r
        outdent: 'ইনডেন্ট কমাও'\r
 } );\r
index fcf1cc231ca3922d5b2c488000b7ee3f476ca834..62df508e51ba1a3052f6a98dae081597948e2cf4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'bs', {\r
index 2ee7ad41eb42f2a1f09ec3a2f48c77eca274dd24..38f299a052e34a1b38b094a40f2d8fe8f689541b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ca', {\r
index 3e5ed770300a2c45811566706c47f6f7f8d8702e..854aac821e97c04eceb4d4fa6382a6147fd52078 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'cs', {\r
index 3380d7029893e2cf60d02bc450390daf30c482b8..d1df873438431a73d28eb2817bf559d970ce799e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'cy', {\r
index 0f18d9a61d49edd62a991d91d8cbf322b7d80aef..27e573165af251beab536bf3b6208dcc3e9ed89a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'da', {\r
index ae8010bc8782befe613ad48b8b336ada854ba1c7..069627562b1693fcb2beaa91d704dbc1fe219c15 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'de-ch', {\r
index be211af3fc687a71b8255aa670afb06f93dae46b..3f7a53c8c4173c3fd6fd5f6489fc203125bfcb1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'de', {\r
index e6df50c5a454a73fc0b6578498a1b1ada0c182a0..57ac0f50373cccf0b64922ddce1c0a20e4145216 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'el', {\r
index 26049a1be0582f4cfe8a72b75259dcb36a63a474..6fd80eaff4218ba0e47f9cdb356ce8ea56698cdf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'en-au', {\r
index cf67c8729e062024ddc7f4f03fc3728d919c61ec..b103510c69ed362cadda4f17a787d42d792f393a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'en-ca', {\r
index dd746c1f826c7e7305b7197e03c15a7b1afe0168..0d2edf3b0f6d5e4f51d51a6b2ff498ec4ce1d2e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'en-gb', {\r
index c3b968b30d87ec8508e0af580ee06607a93c25da..c5dba75793bb689b2b3dbb9f04ef6eb4b320451a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'en', {\r
index 595568439effd871566b5c848c9a8650f148df6b..eb8b8eabe3fdc1d42ef9ebe0500bdf7d48b67546 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'eo', {\r
diff --git a/sources/plugins/indent/lang/es-mx.js b/sources/plugins/indent/lang/es-mx.js
new file mode 100644 (file)
index 0000000..8a6e549
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'es-mx', {\r
+       indent: 'Incrementar sangría',\r
+       outdent: 'Decrementar sangría'\r
+} );\r
index 277d048dbce1c8ac49b49357c33f7986323ca9f3..d7b01c6343ce6bb30b9c31d69d5070cccae9006c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'es', {\r
index aae37558cb1c5e7232b218e1cd6b2ad1ba6aa51e..ce10b1396fae0c2ead22edace6ab2e191d849ddc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'et', {\r
index 8e9a5515cc5a6029b9a3243f6af5c163edf57e35..7934a48bc05d6c3622cbbfe4fbf13ae51ea0ea3b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'eu', {\r
index b17ce976853a4f5ee9bf64b52c1aedbc755671ff..932734a350ab43e909036051185fe54ed0ff2837 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'fa', {\r
index 068452cff3a18a1389812c75a72a9290bb912f74..c6a5b21ffbd342a1f5f0c2b3e612dbcb90eeb7a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'fi', {\r
index 176392774ccf55619b7088b25f9a91f60aeb28d7..f6e66712f4fe74048b800c579fe8d4d3d078106d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'fo', {\r
index 029e878f9acae8f35226f3cd4def1c6f84d89a70..74bbed5cc5f40096de0f2a739d42081f972a7b50 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'fr-ca', {\r
index c0ad5fe2593a7e86f675f099bd7e135f81b180ae..0fb13470c05463196e01e1142567079e58f919d0 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'fr', {\r
-       indent: 'Augmenter le retrait (tabulation)',\r
-       outdent: 'Diminuer le retrait (tabulation)'\r
+       indent: 'Augmenter le retrait',\r
+       outdent: 'Diminuer le retrait'\r
 } );\r
index 3d4a3af4c1850f6ec35f84bfb11054a940ea7470..832b0ad789bc2e753732890e2ee13668f75665fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'gl', {\r
index 84f02c0160c8395483426ac4aca2319105cfc617..e69a3ce736835ad31db0bae9c08ab69093d6b20a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'gu', {\r
index 26a6626a16201d04a1ed3226d6ddbc83de3708c0..6fa5ed7f7674076f73d779c16ed0661bcf7529d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'he', {\r
index a532d648f2e05cdd2b23a3570e92e169d4af026a..a3c39d8078a6d26e62a1842aaafd6b5444c5a679 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'hi', {\r
index b4c076489c50e0c308e23bba52ebecc1e70118be..dfa90d4d2f4c4b4e7a636d84eac602925167a4df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'hr', {\r
index b8f780d25244519136cba87badb10cb22bcc07f5..22cd8e017ad58619372f4d105f6f200a1d936a87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'hu', {\r
index 7bb5efb6f9059c9368a9dbf056491169a8fda992..2c66b70c89e5e5c3b2d930bb188ee0a10867dc67 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'id', {\r
index 9ced9f4213a7a4214467906c37d3d9f207163d60..71f80b1c6a9844cfb1ae0982e3abc1c75b6a005a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'is', {\r
index aaffe672c48701489d02740e3e2a51fab2f109c4..36e092271624438b42eb9516aa99e9f11f0f6a80 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'it', {\r
index 0ac03e95287b0b6339b23544b62faa7fa514e12c..838f4cb661352cc3b60432df605e65cf62c02967 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ja', {\r
index 9e95b2a5d649e60c529f2afbc1f58dadf1637066..a0ce0e8638c779f5bcd1577b5acf1a23b496b3bc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ka', {\r
index 11feba1c15a8ce25ad31c45a936b8ba91effe292..514fba28fa9e9175f6e3b35ae06049ec37a31a52 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'km', {\r
index 847528ada0719a091b64ca218cc698814ff2df9f..c77afbd001a29144e4331ba6c3b885077e32aa65 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ko', {\r
index d373698cdb42e489cc1f58743d9b813601a51854..728bfe3d41c5a243131007c8a14b824221f1e519 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ku', {\r
index 7677587844b595a93935275ff2c6f637bd773112..4458598b7f872afcafe3e2263f67f340f0efeda4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'lt', {\r
index 348b5ec40b8cdf90d8de1da9b543bc39e2bb2a06..74d36a41c19ebf5a882eef8ec274e4ad000f1547 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'lv', {\r
index f4071a02fb3c44fa0af7c622835a0496030e2177..440995e7a3c7e7c505260939c819adaa3ca78136 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'mk', {\r
index f1f179099f2fddc442eeb8692af6aac596db908e..d9c74ba61d65374a1853e6a3c4bd9f7eb1b067b6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'mn', {\r
index 6b633fe97e353f1aa730bd13e947831c4336c053..5fd53e2abf41394fe4b6bcca86a71865abad098d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ms', {\r
index 83cec715f10b528b4005c6ac28a04c13c91e0541..e69a94755a361ca0a3787243a70afdd02274e6ea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'nb', {\r
index 9897f7370aee27b6a33503c551a080ccce33d231..8979f8f79aa5a11fb600215552889c3851c72b9e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'nl', {\r
index 1ef07dd35485822fa78129d5abd78ce2f558fa08..a01c1bb31f2a0c05707cf2ae424e047dcc40bbec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'no', {\r
diff --git a/sources/plugins/indent/lang/oc.js b/sources/plugins/indent/lang/oc.js
new file mode 100644 (file)
index 0000000..00e9cf9
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'indent', 'oc', {\r
+       indent: 'Aumentar l\'alinèa',\r
+       outdent: 'Dmesir l\'alinèa'\r
+} );\r
index 3fc7978c1ad6974fcf97affd68adfa82315c3f6f..ef78a2e56d0a6f98270867651561fa1c3dfd3a81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'pl', {\r
index 0a02f0b6e847859c19d7e6b83f59e2003673cf70..45ae5e61c9017d584ed82289aa320496ad6e4775 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'pt-br', {\r
index 1424b11ca952c4c6fef5675f30e7b1b5f7c94bc8..6d26cb2008dda5baa5b601cab55415b5566c00ad 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'pt', {\r
-       indent: 'Aumentar Avanço',\r
-       outdent: 'Diminuir Avanço'\r
+       indent: 'Aumentar avanço',\r
+       outdent: 'Diminuir avanço'\r
 } );\r
index 51155b69796bf0f64844794e02327745d754c558..708b09db73819952d65fea12f4547cb54bf48dce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ro', {\r
index 4baa29477776c4de8260b47962d9c9ca0d1de1dc..aa21b7ac2ce4433aa05c72f8e53e7c8c84cd5087 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ru', {\r
index 1d384587d383410620e1610e37fe917018dfb70c..98b8dd3ae44be9e4268e1c9bf8d42063e315d770 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'si', {\r
index f50d6d79b67e1de3880f6add220b4b3fc926d34c..3135f4f418318f489e3a12f4c91593123dcfbe0f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sk', {\r
index 0a81f978cfaf6716dfcabce850b275f0e60e3350..15be2f767a730db84d7e485ff8cbed139644f719 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sl', {\r
index 85c47952e8a43fcdbb09ea2d02f1fb522c0a4ca5..9a2dd630ac7641b149c36d7b914f1d4309b039c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sq', {\r
index d930020657e95cc1bd1e73bb3511935dc920e81c..ca5a140687699e8110b53bce8af31df337bf7b1a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sr-latn', {\r
index d0077fb63ba7758088f5c0819b1b3c77fa8667ff..f7498be3b8092ea83abfaab84dbeabcb7b851cf0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sr', {\r
index dd92d3a7b3b24fd2706a37b0bbae915adf8eda9b..46b069262f16fd8fed34c96013f5935a6a2dff60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'sv', {\r
index 2aebdad33432fbb94e27f75e1a997f7d81ef7c24..2f60e538630aabeab665c7ef3ea4b94a5713439c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'th', {\r
index 06a19107f297872f4a0cdcc7725e8975e469e197..21520b68fdcbf3372bccb1972e033c5b64c5a207 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'tr', {\r
index 79e6c2729b5ef5eb3628d1de2a750c4e3dec2e90..604bbba365d16512147b2a8a72c531decae9e37f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'tt', {\r
index 7f881d2782cc9209ad8314b26c09f0c7b22968cf..6fec57394fb834602482a78e077eb00a5785b974 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'ug', {\r
index 4251ebe194be30c97a24b87aa4482a3e763ee89d..c68ca96e26f2380e8a1fea5167efa82b631c3f9d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'uk', {\r
index 0b56e84844617cd6c8a23a9bee6a7211c7ea57a6..7f44c5d3e839020607fda7ece4f5b3477ecca5fd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'vi', {\r
index c06b21bcc8ed3d3bdcbb779e5bb96c781e9173bb..2c9c38363b81bc094479e88177036466af0d2732 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'zh-cn', {\r
index 1fe6e4e59104b2e0389ad5e487fb1f5a2f4633a9..ee681cb62c4fff847c53ca7215b4c124b7c2b563 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'indent', 'zh', {\r
index 32ac0c444bd7a2b200ed5cea5000dec3971c7ac3..900e3432406c342269f7f779e922db8906f59ba1 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -15,7 +15,7 @@
 \r
        CKEDITOR.plugins.add( 'indent', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'indent,indent-rtl,outdent,outdent-rtl', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
index 9d31b983e0292df07a69934f95c2fa8327ff285d..b39fd73defac986859651ad36d7aab6235127de6 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
                                        }\r
                                };\r
 \r
+                               this.contentTransformations = [\r
+                                       [ 'div: splitMarginShorthand' ],\r
+                                       [ 'h1: splitMarginShorthand' ],\r
+                                       [ 'h2: splitMarginShorthand' ],\r
+                                       [ 'h3: splitMarginShorthand' ],\r
+                                       [ 'h4: splitMarginShorthand' ],\r
+                                       [ 'h5: splitMarginShorthand' ],\r
+                                       [ 'h6: splitMarginShorthand' ],\r
+                                       [ 'ol: splitMarginShorthand' ],\r
+                                       [ 'p: splitMarginShorthand' ],\r
+                                       [ 'pre: splitMarginShorthand' ],\r
+                                       [ 'ul: splitMarginShorthand' ]\r
+                               ];\r
+\r
                                if ( this.enterBr )\r
                                        this.allowedContent.div = true;\r
 \r
index 126af11de47258122aa92976c352d9af456c4523..0ee30c05844fd3c49cc03834eb088b1c89e02f1a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
                                // Indent and outdent lists with TAB/SHIFT+TAB key. Indenting can\r
                                // be done for any list item that isn't the first child of the parent.\r
                                editor.on( 'key', function( evt ) {\r
+                                       var path = editor.elementPath();\r
+\r
                                        if ( editor.mode != 'wysiwyg' )\r
                                                return;\r
 \r
                                        if ( evt.data.keyCode == this.indentKey ) {\r
-                                               var list = this.getContext( editor.elementPath() );\r
+                                               // Prevent of getting context of empty path (#424)(https://dev.ckeditor.com/ticket/17028).\r
+                                               if ( !path ) {\r
+                                                       return;\r
+                                               }\r
+\r
+                                               var list = this.getContext( path );\r
 \r
                                                if ( list ) {\r
                                                        // Don't indent if in first list item of the parent.\r
                                                        // Outdent, however, can always be done to collapse\r
                                                        // the list into a paragraph (div).\r
-                                                       if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, editor.elementPath(), list ) )\r
+                                                       if ( this.isIndent && CKEDITOR.plugins.indentList.firstItemInPath( this.context, path, list ) )\r
                                                                return;\r
 \r
                                                        // Exec related global indentation command. Global\r
        function indentList( editor ) {\r
                var that = this,\r
                        database = this.database,\r
-                       context = this.context;\r
+                       context = this.context,\r
+                       range;\r
 \r
                function indent( listNode ) {\r
                        // Our starting and ending points of the range might be inside some blocks under a list item...\r
 \r
                        for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ ) {\r
                                listArray[ i ].indent += indentOffset;\r
-                               // Make sure the newly created sublist get a brand-new element of the same type. (#5372)\r
+                               // Make sure the newly created sublist get a brand-new element of the same type. (http://dev.ckeditor.com/ticket/5372)\r
                                if ( indentOffset > 0 ) {\r
                                        var listRoot = listArray[ i ].parent;\r
                                        listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );\r
                        var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, listNode.getDirection() );\r
 \r
                        // Avoid nested <li> after outdent even they're visually same,\r
-                       // recording them for later refactoring.(#3982)\r
+                       // recording them for later refactoring.(http://dev.ckeditor.com/ticket/3982)\r
                        if ( !that.isIndent ) {\r
                                var parentLiElement;\r
                                if ( ( parentLiElement = listNode.getParent() ) && parentLiElement.is( 'li' ) ) {\r
                                        // Nest preceding <ul>/<ol> inside current <li> if any.\r
                                        while ( ( followingList = followingList.getNext() ) && followingList.is && followingList.getName() in context ) {\r
                                                // IE requires a filler NBSP for nested list inside empty list item,\r
-                                               // otherwise the list item will be inaccessiable. (#4476)\r
+                                               // otherwise the list item will be inaccessiable. (http://dev.ckeditor.com/ticket/4476)\r
                                                if ( CKEDITOR.env.needsNbspFiller && !li.getFirst( neitherWhitespacesNorBookmark ) )\r
                                                        li.append( range.document.createText( '\u00a0' ) );\r
 \r
 \r
                var selection = editor.getSelection(),\r
                        ranges = selection && selection.getRanges(),\r
-                       iterator = ranges.createIterator(),\r
-                       range;\r
+                       iterator = ranges.createIterator();\r
 \r
                while ( ( range = iterator.getNextRange() ) ) {\r
                        var nearestListBlock = range.getCommonAncestor();\r
 \r
                        while ( nearestListBlock && !( nearestListBlock.type == CKEDITOR.NODE_ELEMENT && context[ nearestListBlock.getName() ] ) ) {\r
-                               // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (#12796)\r
+                               // Avoid having plugin propagate to parent of editor in inline mode by canceling the indentation. (http://dev.ckeditor.com/ticket/12796)\r
                                if ( editor.editable().equals( nearestListBlock ) ) {\r
                                        nearestListBlock = false;\r
                                        break;\r
                                        range.setEndAt( nearestListBlock, CKEDITOR.POSITION_BEFORE_END );\r
                        }\r
 \r
-                       // Avoid having selection enclose the entire list. (#6138)\r
+                       // Avoid having selection enclose the entire list. (http://dev.ckeditor.com/ticket/6138)\r
                        // [<ul><li>...</li></ul>] =><ul><li>[...]</li></ul>\r
                        if ( !nearestListBlock ) {\r
                                var selectedNode = range.getEnclosedNode();\r
index 7209fd41435c8876203672722c09dd7f7cac8b98..5c0cf4392e248c653846cb71b7eca1d202153f4f 100644 (file)
Binary files a/sources/plugins/justify/icons/hidpi/justifyblock.png and b/sources/plugins/justify/icons/hidpi/justifyblock.png differ
index 365e3205c42d772df280efa9a266a57fa8d58960..fd751be5003115acaf6b531dc254a921e1042074 100644 (file)
Binary files a/sources/plugins/justify/icons/hidpi/justifycenter.png and b/sources/plugins/justify/icons/hidpi/justifycenter.png differ
index 75308c126e285865d4d2fd68058c39ddeb5bb0fe..a109ad3c9ac5ed9c75eadf3b49a187b08ba4324b 100644 (file)
Binary files a/sources/plugins/justify/icons/hidpi/justifyleft.png and b/sources/plugins/justify/icons/hidpi/justifyleft.png differ
index de7c3d45402b537203c5314c0500d66f7ff9edfa..5125d56f9068318e75a188aa10306164ced6cb5b 100644 (file)
Binary files a/sources/plugins/justify/icons/hidpi/justifyright.png and b/sources/plugins/justify/icons/hidpi/justifyright.png differ
index a507be1bceeb57cd729a01afa948bf8edd1fd482..ffe0620cdaf1a7a47c26aac8c2dab2f77aff9d64 100644 (file)
Binary files a/sources/plugins/justify/icons/justifyblock.png and b/sources/plugins/justify/icons/justifyblock.png differ
index f758bc42209dfa65f0f3aa7d8cbfceb39e1c0418..8b5b40fd762f2aa2f99673af16bb106fa2e06087 100644 (file)
Binary files a/sources/plugins/justify/icons/justifycenter.png and b/sources/plugins/justify/icons/justifycenter.png differ
index 542ddee31336717de530041a87cc093cd6424754..a60d07938f24b89f980fa47a79cf9ae434f5b94c 100644 (file)
Binary files a/sources/plugins/justify/icons/justifyleft.png and b/sources/plugins/justify/icons/justifyleft.png differ
index 71a983c9194a7c429e8656f0bba4a8d0d37da804..21de8149af4281e6a5fe850a7286a61f8888453c 100644 (file)
Binary files a/sources/plugins/justify/icons/justifyright.png and b/sources/plugins/justify/icons/justifyright.png differ
index d9b468d20f7ddb6d489965a91ff4b9d45532109d..9f5c3039bb4f7151b5b0bcec6122c17cca3b44d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'af', {\r
index 4db5875aaed0e945de8c31027cfe893555143b9e..6c414be7e8865ca7338293c76811a0b46022dc4e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ar', {\r
diff --git a/sources/plugins/justify/lang/az.js b/sources/plugins/justify/lang/az.js
new file mode 100644 (file)
index 0000000..9360568
--- /dev/null
@@ -0,0 +1,10 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'az', {\r
+       block: 'Eninə görə',\r
+       center: 'Mərkəz',\r
+       left: 'Soldan düzləndir',\r
+       right: 'Sağdan düzləndir'\r
+} );\r
index 7a2841c85251e4f43c404bc0c1e69e5f99db8fcb..1724947944ec68481ffd5ca4c6257365cd3c09e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'bg', {\r
index 77d582738c93bf6bea8805176b2c9c4700ac243e..002a633a9589e82b24a62b79cd20b9c1cfc4af01 100644 (file)
@@ -1,9 +1,9 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'bn', {\r
-       block: 'বà§\8dলà¦\95 à¦\9cাসà§\8dà¦\9fিফাà¦\87',\r
+       block: 'যাà¦\9aাà¦\87 à¦\95রি',\r
        center: 'মাঝ বরাবর ঘেষা',\r
        left: 'বা দিকে ঘেঁষা',\r
        right: 'ডান দিকে ঘেঁষা'\r
index 1412437fffaa376ee221ae123cc3c738a644c42a..0fbedfcf20f763c839f610ed4df880d6ccfdbb80 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'bs', {\r
index 02c38582af40905bb22f0b864ae9661ef343f79d..afb7adb582a20a7dd3ba7cfbae2ad55ec2fb52be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ca', {\r
index d5f263f9adb3083e9b66d0a635bab31daf0d8271..467ae6fcf5120c409bcdac1243fa5e34c893c46e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'cs', {\r
index 80883d1b6133ad409a00bf4b3a7af09d9b1fa0f1..6b39bebba068cf3dcc18495e2953b3551bfbf492 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'cy', {\r
index e595639ec486ed172c165765b085e5b15ac6e1ef..ac8ee29b9ff160b37ef02d67aa9d253ec97a0fc2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'da', {\r
index 36fc08062aa241b38daa247e35cef2483eeb0389..a2c24ebf00a8a001e5bfd36e5ed65a9c7fc4f855 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'de-ch', {\r
index dc45266835f3e232059f7202f282eeccb5c46dad..4db872521c12526e776477355c6360f099291ded 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'de', {\r
index 1d50fd2b95aa1ca22c019ae2a161538da61e877b..1bdc64f41fe2cfacaa5f61dcddf3b279518c4c5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'el', {\r
index 53162fdd6b8d1517e1f32dfa00898252fb1fb52a..68eb09c58a0eb3547be136b77e838199a9dda776 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'en-au', {\r
index d64b9bf1c3fdb16fa142f74f7c27bb7a95a8b92f..27718a25c816bfd71083b8ebeb8de275efcf05af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'en-ca', {\r
index adb3b566fe8164024dd555e75275e41e381c285b..d6db4ffdb9ceeab9815c6f5ae9c70586e0143815 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'en-gb', {\r
index acaaccbcc13b0c380834464099c103ec403792e0..8a72e85b756a3b3b480495e5c5213214925b7b08 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'en', {\r
index f58b324132706119b192d8959bc08ce2070c1d8e..7531dde8b311fabf1822c2d1c7759857f68b52d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'eo', {\r
diff --git a/sources/plugins/justify/lang/es-mx.js b/sources/plugins/justify/lang/es-mx.js
new file mode 100644 (file)
index 0000000..96443e0
--- /dev/null
@@ -0,0 +1,10 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'es-mx', {\r
+       block: 'Justificar',\r
+       center: 'Centrar',\r
+       left: 'Alinear a la izquierda',\r
+       right: 'Alinear a la derecha'\r
+} );\r
index 23baf68b9f55bb74b4253a3ce27deb6a0a8394cb..2e89bc024734b8cb3b5f14c129dccb5766497462 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'es', {\r
index 3226e87509e76d025f213f448287e133fd037b72..0fc4915c013014eebc337a6724eb6df0e3b13be2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'et', {\r
index dfcc5078f0ef5aaf89527d259beb65f016268625..f7d291e112b19401307c7d68c8515faf8b1bb8a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'eu', {\r
index ed6e14e39b1684bff2b4b00a7fb91e4111b32a7f..03c3c6bf754c6c42fb2a81a06e7fce3e66704b8e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'fa', {\r
index 52ad58fe178b2334f34bd331ac20f7e8d11f0c0a..6993f10518adbdc0b8ec2648c3500bc12aacc6fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'fi', {\r
index 6705be43d48d451139c950e96d108eb8e2966a2a..f11a575eadd842450d0d1932849b033f42d07e00 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'fo', {\r
index bb11f6e370b7cb35cfbc1e1f67a8eeac5f80c62a..8d59e5e8209ef3e55bf39103bc66e1fdeb0837ae 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'fr-ca', {\r
index 348771cf88681d1b35aaafeb9ead28aadb5a2c57..e44df52112d0f0b2af8196350924ba25b073008c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'fr', {\r
index 0fdd2696af9273bd4479f1ce2dc0c5919cb305cf..1995e8ccb210da90587452a3b6c96c4e3d9cc828 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'gl', {\r
index a59efa7298dad55390e3d6ead936a04eb98f889a..d4916846095a1da61a3d7122b5e4504fff8c515f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'gu', {\r
index 92e7c9c60c7f32496910e835f427528654cdfc9f..ab5c7594a71e320b36b7ee2fe3e58d8fcf6b85c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'he', {\r
index 4606e3de839f29cc46dcd654260c52c2dc11afa3..6a4fae822b351c4b8dea3b5e9c1b3f5f45efcef0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'hi', {\r
index 79282d904a163f4833cdd338caf06db7325f1817..852c686f15c84bf3a77635b7d7602ca3eaace3c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'hr', {\r
index 0aaff0f0db5d1419caee71a42ef590214cd8394a..c7b8dadda08596586cfeffbbff71a8926fa73cdb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'hu', {\r
index 297ae8ebee8c5db655eff8082a72dd4990583d54..d67247cdc53d3d30e67a40d71b09e734e0cc1793 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'id', {\r
index c2f6ad4197819d2d3a8f04f802ee25a0ae4fb01c..d01a43ad9906a120bf6b4acbe17c33dcc9857af2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'is', {\r
index 10fc772805945f523f1d37342dda51b92c90cbb3..fd4ae51668ca6ba1f12ad911a58917980490a8a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'it', {\r
index 5665a8b908bfeaca740c35bd3bf8a2c4cb10afb2..6c71c866fe380f10657e6bde65a83447168d3b0a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ja', {\r
index b80d2ef9e387ef4902290fc43a5e0dfc24a19cd3..4ba0bcba33e305b9483765f36e8d182eb7514394 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ka', {\r
index 6161873944340ec229e92794c247e0e777901230..a7546c34f5dd67269644b5232e0f813119066bdf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'km', {\r
index 13c155c521f01bafe37adb74802c72d3ce04e0f2..346405d0f78b368922b9410fcd31970b4bae98f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ko', {\r
index 794b588aeb1973305daffd1149f740ab113aec62..24ed914885455530a0cef00fcfc94257307e3238 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ku', {\r
index 1b373fdd209b5a5478685a19f3d9dcd865d1f6c2..08202cb577b180d8dc94b3d1efefda41d7a3090c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'lt', {\r
index e20fe951ef1d7baeca1c0019373cf4050ef0f35f..8c729c965373eaee808d125883ca436448e6cf02 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'lv', {\r
index eb9d8476d7ca491fb3f9945b07a0a90d8ba1964f..f45fb1929f6f3f6f2fb78d3d295050116327b9eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'mk', {\r
index ff904ddfed03a7e20452d77e05af3d508dc05820..850e47471921c61bddf43f0790b939350f66ce71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'mn', {\r
index 41d736b57c17b2b4ec3c3e622d809bc3abfffd83..323f8e9de0f1474f38df198f4688d3d4e080ddfe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ms', {\r
index aac1f86c918640bb507e7d3ba95a5de59c889f00..98a3c44a5df5f5b84c2b291f68847ed8488a853a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'nb', {\r
index 3b33e46a63552df38fb5cc15db3e94096c882214..972bf82df5113125d5c1277401e3768dc2651791 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'nl', {\r
index c77daaa61b87c2c432fb0b116106f97874fd0a3a..cfcd72afdb9c4ce3683ae8b251cd6dd5558516b2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'no', {\r
diff --git a/sources/plugins/justify/lang/oc.js b/sources/plugins/justify/lang/oc.js
new file mode 100644 (file)
index 0000000..a13e528
--- /dev/null
@@ -0,0 +1,10 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'justify', 'oc', {\r
+       block: 'Justificar',\r
+       center: 'Centrar',\r
+       left: 'Alinhar a esquèrra',\r
+       right: 'Alinhar a dreita'\r
+} );\r
index 07f9807d6671105a3abba72f20b544dfadfbf17e..60922b9343bf46ca7daf99ad2eddefa0b62a6762 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'pl', {\r
index bb63097acde749989da9281591ab6434fdcb8cf1..cf40ad06233c05497dce4389fe77fcdafb0f93c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'pt-br', {\r
index f1f233a4980644f6b7fafe61fe86c9f22264bacc..46ac43b27fd50e85c0d825a0cebb52becf160f38 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'pt', {\r
        block: 'Justificado',\r
-       center: 'Alinhar ao Centro',\r
+       center: 'Alinhar ao centro',\r
        left: 'Alinhar à esquerda',\r
        right: 'Alinhar à direita'\r
 } );\r
index 3ef171b164fd777a3c495f659be19b9d827eb40f..21caeca6136f4831525b2a6de735e09291586d61 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ro', {\r
index 51984765ec29e0af862e85577b018f9c905d248e..47c98bb14edd0f503c84448f3b68fb04938bf408 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ru', {\r
index a29953eefc254960310502052be92a822dee598a..6d9f373c96e91647701eead70a172ef29fa6d359 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'si', {\r
index f749df51002d1ae95b77acdbccb0e8ba331683ad..08c399119af4abbbefd53f9d786593455e68caa4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sk', {\r
index bd4cd0bcf6a12bf5127e48c3e8fec0e64ea9ed3f..d776354c66606e925c830aa42f8b1910f38882be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sl', {\r
index b184d796cfd88563781857360ad1979934011e6d..1ed002c4df85ed3ff4b197b3ffc5a54391dd37f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sq', {\r
index 978c5406d17ca5fe1bf3c981763337ec7126b4c8..7fdba23c9baa448dc77509e32f298c5f52c934b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sr-latn', {\r
index 062b368644cc5da78da0cd42d8ed7b26c961a16f..2314a969b810806f2d8bf2394e0b09252cdc2872 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sr', {\r
index 9e798ac183ec397d5f493df16e9fb569de7ca592..cac94c0ac6afbe01c6e04d7caab33f9543db84cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'sv', {\r
index da8a403a92909ad889e7aed6bc242b4a64d00783..4a9d4f9ed8a71c154293ee1169d8042eae15ec75 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'th', {\r
index 661782c0360c1fd0d9c83b8387309f04012a6c50..fbc512fe3aca8c3e154f047da8e7c29f46ed339e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'tr', {\r
index a6b41a1f3eaf636c3c9448bf368f6baec1c2ac42..b36f69c3499f19d47b6bc17da7d5e0ebff117807 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'tt', {\r
index 6c71c498ce379d811f6b65e71de0bc1b806ffdaa..e5861f5e29b4938a93e47bd66825af294e44aa0b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'ug', {\r
index 55ee9c47b485cd2c356294f6f04f7ad0f1cdd256..5807f25f8857889e3d8e3f83178e99a446f5342b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'uk', {\r
index 0d9dce2cfcb55a6745f955f9c9a07d4b01f383ce..de0c17051fc796ac8d31929db6f79794f42dced7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'vi', {\r
index f1d3df4fba8436ff88171bb90128f8693bab1f3b..4c19627ea1ef4ddbb87155e6839e2bc72446af0d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'zh-cn', {\r
index 9cdd4fca3cb3c710f3be305e712dd027e9c0e981..0865d51751530bfb59275b75bc63a0c8e0caad83 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'justify', 'zh', {\r
index 15163b811b5e09f9456b8d6d09ef4e10130cd10c..21b9221090f5f8e55f74a2e4d7e5ee44df1aaad5 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -37,7 +37,6 @@
                this.name = name;\r
                this.value = value;\r
                this.context = 'p';\r
-\r
                var classes = editor.config.justifyClasses,\r
                        blockTag = editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div';\r
 \r
                                        if ( block.isReadOnly() )\r
                                                continue;\r
 \r
+                                       // Check if style or class might be applied to currently processed element (#455).\r
+                                       var tag = block.getName(),\r
+                                               isAllowedTextAlign, isAllowedCssClass;\r
+\r
+                                       isAllowedTextAlign = editor.activeFilter.check( tag + '{text-align}' );\r
+                                       isAllowedCssClass = editor.activeFilter.check( tag + '(' + cssClassName + ')' );\r
+\r
+                                       if ( !isAllowedCssClass && !isAllowedTextAlign ) {\r
+                                               continue;\r
+                                       }\r
+\r
                                        block.removeAttribute( 'align' );\r
                                        block.removeStyle( 'text-align' );\r
 \r
 \r
                                        var apply = ( this.state == CKEDITOR.TRISTATE_OFF ) && ( !useComputedState || ( getAlignment( block, true ) != this.value ) );\r
 \r
-                                       if ( cssClassName ) {\r
+                                       if ( cssClassName && isAllowedCssClass ) {\r
                                                // Append the desired class name.\r
                                                if ( apply )\r
                                                        block.addClass( cssClassName );\r
                                                else if ( !className )\r
                                                        block.removeAttribute( 'class' );\r
-                                       } else if ( apply ) {\r
+                                       } else if ( apply && isAllowedTextAlign ) {\r
                                                block.setStyle( 'text-align', this.value );\r
                                        }\r
                                }\r
                },\r
 \r
                refresh: function( editor, path ) {\r
-                       var firstBlock = path.block || path.blockLimit;\r
-\r
-                       this.setState( firstBlock.getName() != 'body' && getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+                       var firstBlock = path.block || path.blockLimit,\r
+                               name = firstBlock.getName(),\r
+                               isEditable = firstBlock.equals( editor.editable() ),\r
+                               isStylable = this.cssClassName ? editor.activeFilter.check( name + '(' + this.cssClassName + ')' ) :\r
+                                       editor.activeFilter.check( name + '{text-align}' );\r
+\r
+                       // #455\r
+                       // 1. Check if we are directly in editbale. Justification should be always allowed, and not highlighted.\r
+                       //    Checking path.elements.length is required to filter out situation `body > ul` where ul is selected and path.blockLimit returns editable.\r
+                       // 2. Check if current element can have applied specific class.\r
+                       // 3. Check if current element can have applied text-align style.\r
+                       if (  isEditable && path.elements.length === 1 ) {\r
+                               this.setState( CKEDITOR.TRISTATE_OFF );\r
+                       } else if ( !isEditable && isStylable ) {\r
+                               // 2 & 3 in one condition.\r
+                               this.setState( getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+                       } else {\r
+                               this.setState( CKEDITOR.TRISTATE_DISABLED );\r
+                       }\r
                }\r
        };\r
 \r
        CKEDITOR.plugins.add( 'justify', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'justifyblock,justifycenter,justifyleft,justifyright', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
                                        toolbar: 'align,40'\r
                                } );\r
                        }\r
-\r
                        editor.on( 'dirChanged', onDirChanged );\r
                }\r
        } );\r
diff --git a/sources/plugins/lineutils/dev/dnd.html b/sources/plugins/lineutils/dev/dnd.html
new file mode 100644 (file)
index 0000000..7293daa
--- /dev/null
@@ -0,0 +1,172 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Widget Drag &amp; Drop with Lineutils &mdash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <script>\r
+               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+                       CKEDITOR.tools.enableHtml5Elements( document );\r
+       </script>\r
+       <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+       <link href="../../image2/samples/contents.css" rel="stylesheet">\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Widget Drag &amp; Drop with Lineutils\r
+       </h1>\r
+\r
+       <h3>Classic (iframe-based) Editor</h3>\r
+\r
+       <textarea id="editor1" cols="10" rows="10">\r
+               <h1>Apollo 11</h1>\r
+\r
+               <figure class="caption" style="float:right"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="200" />\r
+               <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+               </figure>\r
+\r
+               <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p>\r
+\r
+               <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+               <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+               <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+               <blockquote>\r
+               <p>One small step for [a] man, one giant leap for mankind.</p>\r
+               </blockquote>\r
+\r
+               <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+               <div style="text-align:center">\r
+               <figure class="caption" style="display:inline-block"><img alt="The Eagle" height="123" src="../../image2/samples/assets/image2.jpg" width="136" />\r
+               <figcaption>The Eagle in lunar orbit</figcaption>\r
+               </figure>\r
+               </div>\r
+\r
+               <blockquote>\r
+               <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+               </blockquote>\r
+\r
+               <figure class="caption" style="float:right"><img alt="The Eagle" src="../../image2/samples/assets/image2.jpg" width="200" />\r
+               <figcaption>The Eagle in lunar orbit</figcaption>\r
+               </figure>\r
+\r
+               <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+               <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+               <ol>\r
+                       <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+                       <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+                       <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+               </ol>\r
+\r
+               <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+\r
+               <figure class="caption"><img alt="Saturn V" height="129" src="../../image2/samples/assets/image1.jpg" width="101" />\r
+               <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+               </figure>\r
+\r
+               <hr />\r
+               <p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>\r
+\r
+       </textarea>\r
+\r
+       <h3>Inline Editor</h3>\r
+\r
+       <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc">\r
+               <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                       <tbody>\r
+                               <tr>\r
+                                       <td>This table</td>\r
+                                       <td>is the</td>\r
+                                       <td>very first</td>\r
+                                       <td>element of the document.</td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td>We are still</td>\r
+                                       <td>able to acces</td>\r
+                                       <td>the space before it.</td>\r
+                                       <td style="padding: 25px">\r
+                                       <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                                               <tbody>\r
+                                                       <tr>\r
+                                                               <td>This table is inside of a cell of another table.</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>We can type&nbsp;either before or after it though.</td>\r
+                                                       </tr>\r
+                                               </tbody>\r
+                                       </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </tbody>\r
+               </table>\r
+\r
+               <hr />\r
+               <hr />\r
+               <ol style="width: 300px">\r
+                       <li>This numbered list...</li>\r
+                       <li>...is a neighbour of a horizontal line...</li>\r
+                       <li style="padding: 20px;">\r
+                               <ol>\r
+                                       <li>Nested list!</li>\r
+                               </ol>\r
+                       </li>\r
+               </ol>\r
+\r
+               <figure class="caption"><img alt="Saturn V" src="../../image2/samples/assets/image1.jpg" width="100" />\r
+                       <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+               </figure>\r
+\r
+               <ul style="width: 450px">\r
+                       <li>We can type between the lists...</li>\r
+                       <li>...thanks to <strong>Magicline</strong>.</li>\r
+               </ul>\r
+\r
+               <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+               <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+               <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+               <div id="last" style="padding: 10px; text-align: center;">\r
+                       <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p>\r
+               </div>\r
+       </div>\r
+\r
+       <script>\r
+\r
+               CKEDITOR.replace( 'editor1', {\r
+                       extraPlugins: 'image2',\r
+                       height: 450,\r
+                       removePlugins: 'image,forms',\r
+                       contentsCss: [ '../../../contents.css', '../../image2/samples/contents.css' ]\r
+               } );\r
+\r
+               CKEDITOR.inline( 'editor2', {\r
+                       extraPlugins: 'image2',\r
+                       height: 450,\r
+                       removePlugins: 'image,forms'\r
+               } );\r
+\r
+       </script>\r
+\r
+       <div id="footer">\r
+               <hr>\r
+               <p>\r
+                       CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+               </p>\r
+               <p id="copy">\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Knabben. All rights reserved.\r
+               </p>\r
+       </div>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/lineutils/dev/magicfinger.html b/sources/plugins/lineutils/dev/magicfinger.html
new file mode 100644 (file)
index 0000000..3172d22
--- /dev/null
@@ -0,0 +1,285 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Lineutils &mdash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <link href="../../../samples/old/sample.css" rel="stylesheet">\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Lineutils\r
+       </h1>\r
+\r
+       <h3>Classic (iframe-based) Editor</h3>\r
+\r
+       <textarea id="editor1" cols="10" rows="10">\r
+               <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                       <tbody>\r
+                               <tr>\r
+                                       <td>This table</td>\r
+                                       <td>is the</td>\r
+                                       <td>very first</td>\r
+                                       <td>element of the document.</td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td>We are still</td>\r
+                                       <td>able to acces</td>\r
+                                       <td>the space before it.</td>\r
+                                       <td style="padding: 25px">\r
+                                       <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                                               <tbody>\r
+                                                       <tr>\r
+                                                               <td>This table is inside of a cell of another table.</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>We can type&nbsp;either before or after it though.</td>\r
+                                                       </tr>\r
+                                               </tbody>\r
+                                       </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </tbody>\r
+               </table>\r
+\r
+               <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>\r
+\r
+               <hr />\r
+               <hr />\r
+               <ol style="width: 300px">\r
+                       <li>This numbered list...</li>\r
+                       <li>...is a neighbour of a horizontal line...</li>\r
+                       <li style="padding: 20px;">\r
+                               <ol>\r
+                                       <li>Nested list!</li>\r
+                               </ol>\r
+                       </li>\r
+               </ol>\r
+\r
+               <ul style="width: 450px">\r
+                       <li>We can type between the lists...</li>\r
+                       <li>...thanks to <strong>Magicline</strong>.</li>\r
+               </ul>\r
+\r
+               <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+               <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+               <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+               <div id="last" style="padding: 10px; text-align: center;">\r
+               <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p>\r
+               </div>\r
+       </textarea>\r
+\r
+       <h3>Inline Editor</h3>\r
+\r
+       <div id="editor2" contenteditable="true" style="outline: 2px solid #ccc">\r
+               <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                       <tbody>\r
+                               <tr>\r
+                                       <td>This table</td>\r
+                                       <td>is the</td>\r
+                                       <td>very first</td>\r
+                                       <td>element of the document.</td>\r
+                               </tr>\r
+                               <tr>\r
+                                       <td>We are still</td>\r
+                                       <td>able to acces</td>\r
+                                       <td>the space before it.</td>\r
+                                       <td style="padding: 25px">\r
+                                       <table border="0" cellpadding="1" cellspacing="1" style="width: 100%; ">\r
+                                               <tbody>\r
+                                                       <tr>\r
+                                                               <td>This table is inside of a cell of another table.</td>\r
+                                                       </tr>\r
+                                                       <tr>\r
+                                                               <td>We can type&nbsp;either before or after it though.</td>\r
+                                                       </tr>\r
+                                               </tbody>\r
+                                       </table>\r
+                                       </td>\r
+                               </tr>\r
+                       </tbody>\r
+               </table>\r
+\r
+               <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>\r
+\r
+               <hr />\r
+               <hr />\r
+               <ol style="width: 300px">\r
+                       <li>This numbered list...</li>\r
+                       <li>...is a neighbour of a horizontal line...</li>\r
+                       <li style="padding: 20px;">\r
+                               <ol>\r
+                                       <li>Nested list!</li>\r
+                               </ol>\r
+                       </li>\r
+               </ol>\r
+\r
+               <ul style="width: 450px">\r
+                       <li>We can type between the lists...</li>\r
+                       <li>...thanks to <strong>Magicline</strong>.</li>\r
+               </ul>\r
+\r
+               <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+               <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+               <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+               <div id="last" style="padding: 10px; text-align: center;">\r
+                       <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p>\r
+               </div>\r
+       </div>\r
+\r
+       <h3>Extreme inline</h3>\r
+\r
+       <div id="editor3" contenteditable="true" style="left: 123px; outline: 1px solid red; border: 15px solid green; position: relative; top: 30; left: 30px;">\r
+               <div style="padding: 20px; background: gray; width: 300px" class="1">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.</div>\r
+               <div style="background: violet; padding: 30px;" class="static">\r
+                       Position static\r
+                       <div style="background: green; padding: 30px;  border: 14px solid orange">foo</div>\r
+               </div>\r
+               <dl class="2">\r
+                       <dt>Key</dt><dd>Value</dd>\r
+               </dl>\r
+               <div>Whatever</div>\r
+               <hr id="hr">\r
+               <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>\r
+               <hr>\r
+               <hr>\r
+               <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>\r
+               <div style="background: green; padding: 30px; width: 200px">foo</div>\r
+       </div>\r
+\r
+       <h3>Classic (iframe-based) Editor, H-scroll</h3>\r
+\r
+       <textarea id="editor4" cols="10" rows="10">\r
+               <hr />\r
+               <hr />\r
+               <ol style="width: 1500px">\r
+                       <li>This numbered list...</li>\r
+                       <li>...is a neighbour of a horizontal line...</li>\r
+                       <li style="padding: 20px;">\r
+                               <ol>\r
+                                       <li>Nested list!</li>\r
+                               </ol>\r
+                       </li>\r
+               </ol>\r
+\r
+               <ul style="width: 450px">\r
+                       <li>We can type between the lists...</li>\r
+                       <li>...thanks to <strong>Magicline</strong>.</li>\r
+               </ul>\r
+\r
+               <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>\r
+\r
+               <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>\r
+\r
+               <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>\r
+\r
+               <div id="last" style="padding: 10px; text-align: center;">\r
+               <p>This text is wrapped in a&nbsp;<tt>DIV</tt>&nbsp;element. We can type after this element though.</p>\r
+               </div>\r
+       </textarea>\r
+\r
+       <script>\r
+\r
+               CKEDITOR.addCss(\r
+                       '.cke_editable * { outline: 1px solid #BCEBFF }'\r
+               );\r
+\r
+               function callback() {\r
+                       var helpers = CKEDITOR.plugins.lineutils;\r
+                       var liner = new helpers.liner( this );\r
+                       var locator = new helpers.locator( this );\r
+                       var finder = new helpers.finder( this, {\r
+                               lookups: {\r
+                                       'is block and first child': function( el ) {\r
+                                               if ( el.is( CKEDITOR.dtd.$listItem ) )\r
+                                                       return;\r
+\r
+                                               if ( el.is( CKEDITOR.dtd.$block ) )\r
+                                                       return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER;\r
+                                       }\r
+                               }\r
+                       } ).start( function( relations, x, y ) {\r
+                               locator.locate( relations );\r
+\r
+                               var locations = locator.locations,\r
+                                       uid, type;\r
+\r
+                               liner.prepare( relations, locations );\r
+\r
+                               for ( uid in locations ) {\r
+                                       for ( type in locations[ uid ] )\r
+                                               liner.placeLine( { uid: uid, type: type } );\r
+                               }\r
+\r
+                               liner.cleanup();\r
+                       } );\r
+               }\r
+\r
+               CKEDITOR.disableAutoInline = true;\r
+\r
+               CKEDITOR.replace( 'editor1', {\r
+                       extraPlugins: 'lineutils',\r
+                       height: 450,\r
+                       removePlugins: 'magicline',\r
+                       allowedContent: true,\r
+                       contentsCss: [ '../../../contents.css' ],\r
+                       on: {\r
+                               contentDom: callback\r
+                       }\r
+               } );\r
+\r
+               CKEDITOR.inline( 'editor2', {\r
+                       extraPlugins: 'lineutils',\r
+                       removePlugins: 'magicline',\r
+                       allowedContent: true,\r
+                       contentsCss: [ '../../../contents.css' ],\r
+                       on: {\r
+                               contentDom: callback\r
+                       }\r
+               } );\r
+\r
+               CKEDITOR.inline( 'editor3', {\r
+                       extraPlugins: 'lineutils',\r
+                       removePlugins: 'magicline',\r
+                       allowedContent: true,\r
+                       contentsCss: [ '../../../contents.css' ],\r
+                       on: {\r
+                               contentDom: callback\r
+                       }\r
+               } );\r
+\r
+               CKEDITOR.replace( 'editor4', {\r
+                       extraPlugins: 'lineutils',\r
+                       removePlugins: 'magicline',\r
+                       allowedContent: true,\r
+                       contentsCss: [ '../../../contents.css' ],\r
+                       on: {\r
+                               contentDom: callback\r
+                       }\r
+               } );\r
+\r
+\r
+       </script>\r
+\r
+       <div id="footer">\r
+               <hr>\r
+               <p>\r
+                       CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+               </p>\r
+               <p id="copy">\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Knabben. All rights reserved.\r
+               </p>\r
+       </div>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/lineutils/plugin.js b/sources/plugins/lineutils/plugin.js
new file mode 100644 (file)
index 0000000..d84c5f3
--- /dev/null
@@ -0,0 +1,1018 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+ /**\r
+ * @fileOverview A set of utilities to find and create horizontal spaces in edited content.\r
+ */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+\r
+       CKEDITOR.plugins.add( 'lineutils' );\r
+\r
+       /**\r
+        * Determines a position relative to an element in DOM (before).\r
+        *\r
+        * @readonly\r
+        * @property {Number} [=0]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.LINEUTILS_BEFORE = 1;\r
+\r
+       /**\r
+        * Determines a position relative to an element in DOM (after).\r
+        *\r
+        * @readonly\r
+        * @property {Number} [=2]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.LINEUTILS_AFTER = 2;\r
+\r
+       /**\r
+        * Determines a position relative to an element in DOM (inside).\r
+        *\r
+        * @readonly\r
+        * @property {Number} [=4]\r
+        * @member CKEDITOR\r
+        */\r
+       CKEDITOR.LINEUTILS_INSIDE = 4;\r
+\r
+       /**\r
+        * A utility that traverses the DOM tree and discovers elements\r
+        * (relations) matching user-defined lookups.\r
+        *\r
+        * @private\r
+        * @class CKEDITOR.plugins.lineutils.finder\r
+        * @constructor Creates a Finder class instance.\r
+        * @param {CKEDITOR.editor} editor Editor instance that the Finder belongs to.\r
+        * @param {Object} def Finder's definition.\r
+        * @since 4.3\r
+        */\r
+       function Finder( editor, def ) {\r
+               CKEDITOR.tools.extend( this, {\r
+                       editor: editor,\r
+                       editable: editor.editable(),\r
+                       doc: editor.document,\r
+                       win: editor.window\r
+               }, def, true );\r
+\r
+               this.inline = this.editable.isInline();\r
+\r
+               if ( !this.inline ) {\r
+                       this.frame = this.win.getFrame();\r
+               }\r
+\r
+               this.target = this[ this.inline ? 'editable' : 'doc' ];\r
+       }\r
+\r
+       Finder.prototype = {\r
+               /**\r
+                * Initializes searching for elements with every mousemove event fired.\r
+                * To stop searching use {@link #stop}.\r
+                *\r
+                * @param {Function} [callback] Function executed on every iteration.\r
+                */\r
+               start: function( callback ) {\r
+                       var that = this,\r
+                               editor = this.editor,\r
+                               doc = this.doc,\r
+                               el, elfp, x, y;\r
+\r
+                       var moveBuffer = CKEDITOR.tools.eventsBuffer( 50, function() {\r
+                                       if ( editor.readOnly || editor.mode != 'wysiwyg' )\r
+                                               return;\r
+\r
+                                       that.relations = {};\r
+\r
+                                       // Sometimes it happens that elementFromPoint returns null (especially on IE).\r
+                                       // Any further traversal makes no sense if there's no start point. Abort.\r
+                                       // Note: In IE8 elementFromPoint may return zombie nodes of undefined nodeType,\r
+                                       // so rejecting those as well.\r
+                                       if ( !( elfp = doc.$.elementFromPoint( x, y ) ) || !elfp.nodeType ) {\r
+                                               return;\r
+                                       }\r
+\r
+                                       el = new CKEDITOR.dom.element( elfp );\r
+\r
+                                       that.traverseSearch( el );\r
+\r
+                                       if ( !isNaN( x + y ) ) {\r
+                                               that.pixelSearch( el, x, y );\r
+                                       }\r
+\r
+                                       callback && callback( that.relations, x, y );\r
+                               } );\r
+\r
+                       // Searching starting from element from point on mousemove.\r
+                       this.listener = this.editable.attachListener( this.target, 'mousemove', function( evt ) {\r
+                               x = evt.data.$.clientX;\r
+                               y = evt.data.$.clientY;\r
+\r
+                               moveBuffer.input();\r
+                       } );\r
+\r
+                       this.editable.attachListener( this.inline ? this.editable : this.frame, 'mouseout', function() {\r
+                               moveBuffer.reset();\r
+                       } );\r
+               },\r
+\r
+               /**\r
+                * Stops observing mouse events attached by {@link #start}.\r
+                */\r
+               stop: function() {\r
+                       if ( this.listener ) {\r
+                               this.listener.removeListener();\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Returns a range representing the relation, according to its element\r
+                * and type.\r
+                *\r
+                * @param {Object} location Location containing a unique identifier and type.\r
+                * @returns {CKEDITOR.dom.range} Range representing the relation.\r
+                */\r
+               getRange: ( function() {\r
+                       var where = {};\r
+\r
+                       where[ CKEDITOR.LINEUTILS_BEFORE ] = CKEDITOR.POSITION_BEFORE_START;\r
+                       where[ CKEDITOR.LINEUTILS_AFTER ] = CKEDITOR.POSITION_AFTER_END;\r
+                       where[ CKEDITOR.LINEUTILS_INSIDE ] = CKEDITOR.POSITION_AFTER_START;\r
+\r
+                       return function( location ) {\r
+                               var range = this.editor.createRange();\r
+\r
+                               range.moveToPosition( this.relations[ location.uid ].element, where[ location.type ] );\r
+\r
+                               return range;\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Stores given relation in a {@link #relations} object. Processes the relation\r
+                * to normalize and avoid duplicates.\r
+                *\r
+                * @param {CKEDITOR.dom.element} el Element of the relation.\r
+                * @param {Number} type Relation, one of `CKEDITOR.LINEUTILS_AFTER`, `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_INSIDE`.\r
+                */\r
+               store: ( function() {\r
+                       function merge( el, type, relations ) {\r
+                               var uid = el.getUniqueId();\r
+\r
+                               if ( uid in relations ) {\r
+                                       relations[ uid ].type |= type;\r
+                               } else {\r
+                                       relations[ uid ] = { element: el, type: type };\r
+                               }\r
+                       }\r
+\r
+                       return function( el, type ) {\r
+                               var alt;\r
+\r
+                               // Normalization to avoid duplicates:\r
+                               // CKEDITOR.LINEUTILS_AFTER becomes CKEDITOR.LINEUTILS_BEFORE of el.getNext().\r
+                               if ( is( type, CKEDITOR.LINEUTILS_AFTER ) && isStatic( alt = el.getNext() ) && alt.isVisible() ) {\r
+                                       merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations );\r
+                                       type ^= CKEDITOR.LINEUTILS_AFTER;\r
+                               }\r
+\r
+                               // Normalization to avoid duplicates:\r
+                               // CKEDITOR.LINEUTILS_INSIDE becomes CKEDITOR.LINEUTILS_BEFORE of el.getFirst().\r
+                               if ( is( type, CKEDITOR.LINEUTILS_INSIDE ) && isStatic( alt = el.getFirst() ) && alt.isVisible() ) {\r
+                                       merge( alt, CKEDITOR.LINEUTILS_BEFORE, this.relations );\r
+                                       type ^= CKEDITOR.LINEUTILS_INSIDE;\r
+                               }\r
+\r
+                               merge( el, type, this.relations );\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Traverses the DOM tree towards root, checking all ancestors\r
+                * with lookup rules, avoiding duplicates. Stores positive relations\r
+                * in the {@link #relations} object.\r
+                *\r
+                * @param {CKEDITOR.dom.element} el Element which is the starting point.\r
+                */\r
+               traverseSearch: function( el ) {\r
+                       var l, type, uid;\r
+\r
+                       // Go down DOM towards root (or limit).\r
+                       do {\r
+                               uid = el.$[ 'data-cke-expando' ];\r
+\r
+                               // This element was already visited and checked.\r
+                               if ( uid && uid in this.relations ) {\r
+                                       continue;\r
+                               }\r
+\r
+                               if ( el.equals( this.editable ) ) {\r
+                                       return;\r
+                               }\r
+\r
+                               if ( isStatic( el ) ) {\r
+                                       // Collect all addresses yielded by lookups for that element.\r
+                                       for ( l in this.lookups ) {\r
+\r
+                                               if ( ( type = this.lookups[ l ]( el ) ) ) {\r
+                                                       this.store( el, type );\r
+                                               }\r
+                                       }\r
+                               }\r
+                       } while ( !isLimit( el ) && ( el = el.getParent() ) );\r
+               },\r
+\r
+               /**\r
+                * Iterates vertically pixel-by-pixel within a given element starting\r
+                * from given coordinates, searching for elements in the neighborhood.\r
+                * Once an element is found it is processed by {@link #traverseSearch}.\r
+                *\r
+                * @param {CKEDITOR.dom.element} el Element which is the starting point.\r
+                * @param {Number} [x] Horizontal mouse coordinate relative to the viewport.\r
+                * @param {Number} [y] Vertical mouse coordinate relative to the viewport.\r
+                */\r
+               pixelSearch: ( function() {\r
+                       var contains = CKEDITOR.env.ie || CKEDITOR.env.webkit ?\r
+                               function( el, found ) {\r
+                                       return el.contains( found );\r
+                               } : function( el, found ) {\r
+                                       return !!( el.compareDocumentPosition( found ) & 16 );\r
+                               };\r
+\r
+                       // Iterates pixel-by-pixel from starting coordinates, moving by defined\r
+                       // step and getting elementFromPoint in every iteration. Iteration stops when:\r
+                       //  * A valid element is found.\r
+                       //  * Condition function returns `false` (i.e. reached boundaries of viewport).\r
+                       //  * No element is found (i.e. coordinates out of viewport).\r
+                       //  * Element found is ascendant of starting element.\r
+                       //\r
+                       // @param {Object} doc Native DOM document.\r
+                       // @param {Object} el Native DOM element.\r
+                       // @param {Number} xStart Horizontal starting coordinate to use.\r
+                       // @param {Number} yStart Vertical starting coordinate to use.\r
+                       // @param {Number} step Step of the algorithm.\r
+                       // @param {Function} condition A condition relative to current vertical coordinate.\r
+                       function iterate( el, xStart, yStart, step, condition ) {\r
+                               var y = yStart,\r
+                                       tryouts = 0,\r
+                                       found;\r
+\r
+                               while ( condition( y ) ) {\r
+                                       y += step;\r
+\r
+                                       // If we try and we try, and still nothing's found, let's end\r
+                                       // that party.\r
+                                       if ( ++tryouts == 25 ) {\r
+                                               return;\r
+                                       }\r
+\r
+                                       found = this.doc.$.elementFromPoint( xStart, y );\r
+\r
+                                       // Nothing found. This is crazy... but...\r
+                                       // It might be that a line, which is in different document,\r
+                                       // covers that pixel (elementFromPoint is doc-sensitive).\r
+                                       // Better let's have another try.\r
+                                       if ( !found ) {\r
+                                               continue;\r
+                                       }\r
+\r
+                                       // Still in the same element.\r
+                                       else if ( found == el ) {\r
+                                               tryouts = 0;\r
+                                               continue;\r
+                                       }\r
+\r
+                                       // Reached the edge of an element and found an ancestor or...\r
+                                       // A line, that covers that pixel. Better let's have another try.\r
+                                       else if ( !contains( el, found ) ) {\r
+                                               continue;\r
+                                       }\r
+\r
+                                       tryouts = 0;\r
+\r
+                                       // Found a valid element. Stop iterating.\r
+                                       if ( isStatic( ( found = new CKEDITOR.dom.element( found ) ) ) ) {\r
+                                               return found;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       return function( el, x, y ) {\r
+                               var paneHeight = this.win.getViewPaneSize().height,\r
+\r
+                                       // Try to find an element iterating *up* from the starting point.\r
+                                       neg = iterate.call( this, el.$, x, y, -1, function( y ) {\r
+                                               return y > 0;\r
+                                       } ),\r
+\r
+                                       // Try to find an element iterating *down* from the starting point.\r
+                                       pos = iterate.call( this, el.$, x, y, 1, function( y ) {\r
+                                               return y < paneHeight;\r
+                                       } );\r
+\r
+                               if ( neg ) {\r
+                                       this.traverseSearch( neg );\r
+\r
+                                       // Iterate towards DOM root until neg is a direct child of el.\r
+                                       while ( !neg.getParent().equals( el ) ) {\r
+                                               neg = neg.getParent();\r
+                                       }\r
+                               }\r
+\r
+                               if ( pos ) {\r
+                                       this.traverseSearch( pos );\r
+\r
+                                       // Iterate towards DOM root until pos is a direct child of el.\r
+                                       while ( !pos.getParent().equals( el ) ) {\r
+                                               pos = pos.getParent();\r
+                                       }\r
+                               }\r
+\r
+                               // Iterate forwards starting from neg and backwards from\r
+                               // pos to harvest all children of el between those elements.\r
+                               // Stop when neg and pos meet each other or there's none of them.\r
+                               // TODO (?) reduce number of hops forwards/backwards.\r
+                               while ( neg || pos ) {\r
+                                       if ( neg ) {\r
+                                               neg = neg.getNext( isStatic );\r
+                                       }\r
+\r
+                                       if ( !neg || neg.equals( pos ) ) {\r
+                                               break;\r
+                                       }\r
+\r
+                                       this.traverseSearch( neg );\r
+\r
+                                       if ( pos ) {\r
+                                               pos = pos.getPrevious( isStatic );\r
+                                       }\r
+\r
+                                       if ( !pos || pos.equals( neg ) ) {\r
+                                               break;\r
+                                       }\r
+\r
+                                       this.traverseSearch( pos );\r
+                               }\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Unlike {@link #traverseSearch}, it collects **all** elements from editable's DOM tree\r
+                * and runs lookups for every one of them, collecting relations.\r
+                *\r
+                * @returns {Object} {@link #relations}.\r
+                */\r
+               greedySearch: function() {\r
+                       this.relations = {};\r
+\r
+                       var all = this.editable.getElementsByTag( '*' ),\r
+                               i = 0,\r
+                               el, type, l;\r
+\r
+                       while ( ( el = all.getItem( i++ ) ) ) {\r
+                               // Don't consider editable, as it might be inline,\r
+                               // and i.e. checking it's siblings is pointless.\r
+                               if ( el.equals( this.editable ) ) {\r
+                                       continue;\r
+                               }\r
+\r
+                               // On IE8 element.getElementsByTagName returns comments... sic! (http://dev.ckeditor.com/ticket/13176)\r
+                               if ( el.type != CKEDITOR.NODE_ELEMENT ) {\r
+                                       continue;\r
+                               }\r
+\r
+                               // Don't visit non-editable internals, for example widget's\r
+                               // guts (above wrapper, below nested). Still check editable limits,\r
+                               // as they are siblings with editable contents.\r
+                               if ( !el.hasAttribute( 'contenteditable' ) && el.isReadOnly() ) {\r
+                                       continue;\r
+                               }\r
+\r
+                               if ( isStatic( el ) && el.isVisible() ) {\r
+                                       // Collect all addresses yielded by lookups for that element.\r
+                                       for ( l in this.lookups ) {\r
+                                               if ( ( type = this.lookups[ l ]( el ) ) ) {\r
+                                                       this.store( el, type );\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       return this.relations;\r
+               }\r
+\r
+               /**\r
+                * Relations express elements in DOM that match user-defined {@link #lookups}.\r
+                * Every relation has its own `type` that determines whether\r
+                * it refers to the space before, after or inside the `element`.\r
+                * This object stores relations found by {@link #traverseSearch} or {@link #greedySearch}, structured\r
+                * in the following way:\r
+                *\r
+                *              relations: {\r
+                *                      // Unique identifier of the element.\r
+                *                      Number: {\r
+                *                              // Element of this relation.\r
+                *                              element: {@link CKEDITOR.dom.element}\r
+                *                              // Conjunction of CKEDITOR.LINEUTILS_BEFORE, CKEDITOR.LINEUTILS_AFTER and CKEDITOR.LINEUTILS_INSIDE.\r
+                *                              type: Number\r
+                *                      },\r
+                *                      ...\r
+                *              }\r
+                *\r
+                * @property {Object} relations\r
+                * @readonly\r
+                */\r
+\r
+               /**\r
+                * A set of user-defined functions used by Finder to check if an element\r
+                * is a valid relation, belonging to {@link #relations}.\r
+                * When the criterion is met, lookup returns a logical conjunction of `CKEDITOR.LINEUTILS_BEFORE`,\r
+                * `CKEDITOR.LINEUTILS_AFTER` or `CKEDITOR.LINEUTILS_INSIDE`.\r
+                *\r
+                * Lookups are passed along with Finder's definition.\r
+                *\r
+                *              lookups: {\r
+                *                      'some lookup': function( el ) {\r
+                *                              if ( someCondition )\r
+                *                                      return CKEDITOR.LINEUTILS_BEFORE;\r
+                *                      },\r
+                *                      ...\r
+                *              }\r
+                *\r
+                * @property {Object} lookups\r
+                */\r
+       };\r
+\r
+\r
+       /**\r
+        * A utility that analyses relations found by\r
+        * CKEDITOR.plugins.lineutils.finder and locates them\r
+        * in the viewport as horizontal lines of specific coordinates.\r
+        *\r
+        * @private\r
+        * @class CKEDITOR.plugins.lineutils.locator\r
+        * @constructor Creates a Locator class instance.\r
+        * @param {CKEDITOR.editor} editor Editor instance that Locator belongs to.\r
+        * @since 4.3\r
+        */\r
+       function Locator( editor, def ) {\r
+               CKEDITOR.tools.extend( this, def, {\r
+                       editor: editor\r
+               }, true );\r
+       }\r
+\r
+       Locator.prototype = {\r
+               /**\r
+                * Locates the Y coordinate for all types of every single relation and stores\r
+                * them in an object.\r
+                *\r
+                * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}.\r
+                * @returns {Object} {@link #locations}.\r
+                */\r
+               locate: ( function() {\r
+                       function locateSibling( rel, type ) {\r
+                               var sib = rel.element[ type === CKEDITOR.LINEUTILS_BEFORE ? 'getPrevious' : 'getNext' ]();\r
+\r
+                               // Return the middle point between siblings.\r
+                               if ( sib && isStatic( sib ) ) {\r
+                                       rel.siblingRect = sib.getClientRect();\r
+\r
+                                       if ( type == CKEDITOR.LINEUTILS_BEFORE ) {\r
+                                               return ( rel.siblingRect.bottom + rel.elementRect.top ) / 2;\r
+                                       } else {\r
+                                               return ( rel.elementRect.bottom + rel.siblingRect.top ) / 2;\r
+                                       }\r
+                               }\r
+\r
+                               // If there's no sibling, use the edge of an element.\r
+                               else {\r
+                                       if ( type == CKEDITOR.LINEUTILS_BEFORE ) {\r
+                                               return rel.elementRect.top;\r
+                                       } else {\r
+                                               return rel.elementRect.bottom;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       return function( relations ) {\r
+                               var rel;\r
+\r
+                               this.locations = {};\r
+\r
+                               for ( var uid in relations ) {\r
+                                       rel = relations[ uid ];\r
+                                       rel.elementRect = rel.element.getClientRect();\r
+\r
+                                       if ( is( rel.type, CKEDITOR.LINEUTILS_BEFORE ) ) {\r
+                                               this.store( uid, CKEDITOR.LINEUTILS_BEFORE, locateSibling( rel, CKEDITOR.LINEUTILS_BEFORE ) );\r
+                                       }\r
+\r
+                                       if ( is( rel.type, CKEDITOR.LINEUTILS_AFTER ) ) {\r
+                                               this.store( uid, CKEDITOR.LINEUTILS_AFTER, locateSibling( rel, CKEDITOR.LINEUTILS_AFTER ) );\r
+                                       }\r
+\r
+                                       // The middle point of the element.\r
+                                       if ( is( rel.type, CKEDITOR.LINEUTILS_INSIDE ) ) {\r
+                                               this.store( uid, CKEDITOR.LINEUTILS_INSIDE, ( rel.elementRect.top + rel.elementRect.bottom ) / 2 );\r
+                                       }\r
+                               }\r
+\r
+                               return this.locations;\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Calculates distances from every location to given vertical coordinate\r
+                * and sorts locations according to that distance.\r
+                *\r
+                * @param {Number} y The vertical coordinate used for sorting, used as a reference.\r
+                * @param {Number} [howMany] Determines the number of "closest locations" to be returned.\r
+                * @returns {Array} Sorted, array representation of {@link #locations}.\r
+                */\r
+               sort: ( function() {\r
+                       var locations, sorted,\r
+                               dist, i;\r
+\r
+                       function distance( y, uid, type ) {\r
+                               return Math.abs( y - locations[ uid ][ type ] );\r
+                       }\r
+\r
+                       return function( y, howMany ) {\r
+                               locations = this.locations;\r
+                               sorted = [];\r
+\r
+                               for ( var uid in locations ) {\r
+                                       for ( var type in locations[ uid ] ) {\r
+                                               dist = distance( y, uid, type );\r
+\r
+                                               // An array is empty.\r
+                                               if ( !sorted.length ) {\r
+                                                       sorted.push( { uid: +uid, type: type, dist: dist } );\r
+                                               } else {\r
+                                                       // Sort the array on fly when it's populated.\r
+                                                       for ( i = 0; i < sorted.length; i++ ) {\r
+                                                               if ( dist < sorted[ i ].dist ) {\r
+                                                                       sorted.splice( i, 0, { uid: +uid, type: type, dist: dist } );\r
+                                                                       break;\r
+                                                               }\r
+                                                       }\r
+\r
+                                                       // Nothing was inserted, so the distance is bigger than\r
+                                                       // any of already calculated: push to the end.\r
+                                                       if ( i == sorted.length ) {\r
+                                                               sorted.push( { uid: +uid, type: type, dist: dist } );\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+\r
+                               if ( typeof howMany != 'undefined' ) {\r
+                                       return sorted.slice( 0, howMany );\r
+                               } else {\r
+                                       return sorted;\r
+                               }\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Stores the location in a collection.\r
+                *\r
+                * @param {Number} uid Unique identifier of the relation.\r
+                * @param {Number} type One of `CKEDITOR.LINEUTILS_BEFORE`, `CKEDITOR.LINEUTILS_AFTER` and `CKEDITOR.LINEUTILS_INSIDE`.\r
+                * @param {Number} y Vertical position of the relation.\r
+                */\r
+               store: function( uid, type, y ) {\r
+                       if ( !this.locations[ uid ] ) {\r
+                               this.locations[ uid ] = {};\r
+                       }\r
+\r
+                       this.locations[ uid ][ type ] = y;\r
+               }\r
+\r
+               /**\r
+                * @readonly\r
+                * @property {Object} locations\r
+                */\r
+       };\r
+\r
+       var tipCss = {\r
+                       display: 'block',\r
+                       width: '0px',\r
+                       height: '0px',\r
+                       'border-color': 'transparent',\r
+                       'border-style': 'solid',\r
+                       position: 'absolute',\r
+                       top: '-6px'\r
+               },\r
+\r
+               lineStyle = {\r
+                       height: '0px',\r
+                       'border-top': '1px dashed red',\r
+                       position: 'absolute',\r
+                       'z-index': 9999\r
+               },\r
+\r
+               lineTpl =\r
+                       '<div data-cke-lineutils-line="1" class="cke_reset_all" style="{lineStyle}">' +\r
+                               '<span style="{tipLeftStyle}">&nbsp;</span>' +\r
+                               '<span style="{tipRightStyle}">&nbsp;</span>' +\r
+                       '</div>';\r
+\r
+       /**\r
+        * A utility that draws horizontal lines in DOM according to locations\r
+        * returned by CKEDITOR.plugins.lineutils.locator.\r
+        *\r
+        * @private\r
+        * @class CKEDITOR.plugins.lineutils.liner\r
+        * @constructor Creates a Liner class instance.\r
+        * @param {CKEDITOR.editor} editor Editor instance that Liner belongs to.\r
+        * @param {Object} def Liner's definition.\r
+        * @since 4.3\r
+        */\r
+       function Liner( editor, def ) {\r
+               var editable = editor.editable();\r
+\r
+               CKEDITOR.tools.extend( this, {\r
+                       editor: editor,\r
+                       editable: editable,\r
+                       inline: editable.isInline(),\r
+                       doc: editor.document,\r
+                       win: editor.window,\r
+                       container: CKEDITOR.document.getBody(),\r
+                       winTop: CKEDITOR.document.getWindow()\r
+               }, def, true );\r
+\r
+               this.hidden = {};\r
+               this.visible = {};\r
+\r
+               if ( !this.inline ) {\r
+                       this.frame = this.win.getFrame();\r
+               }\r
+\r
+               this.queryViewport();\r
+\r
+               // Callbacks must be wrapped. Otherwise they're not attached\r
+               // to global DOM objects (i.e. topmost window) for every editor\r
+               // because they're treated as duplicates. They belong to the\r
+               // same prototype shared among Liner instances.\r
+               var queryViewport = CKEDITOR.tools.bind( this.queryViewport, this ),\r
+                       hideVisible = CKEDITOR.tools.bind( this.hideVisible, this ),\r
+                       removeAll = CKEDITOR.tools.bind( this.removeAll, this );\r
+\r
+               editable.attachListener( this.winTop, 'resize', queryViewport );\r
+               editable.attachListener( this.winTop, 'scroll', queryViewport );\r
+\r
+               editable.attachListener( this.winTop, 'resize', hideVisible );\r
+               editable.attachListener( this.win, 'scroll', hideVisible );\r
+\r
+               editable.attachListener( this.inline ? editable : this.frame, 'mouseout', function( evt ) {\r
+                       var x = evt.data.$.clientX,\r
+                               y = evt.data.$.clientY;\r
+\r
+                       this.queryViewport();\r
+\r
+                       // Check if mouse is out of the element (iframe/editable).\r
+                       if ( x <= this.rect.left || x >= this.rect.right || y <= this.rect.top || y >= this.rect.bottom ) {\r
+                               this.hideVisible();\r
+                       }\r
+\r
+                       // Check if mouse is out of the top-window vieport.\r
+                       if ( x <= 0 || x >= this.winTopPane.width || y <= 0 || y >= this.winTopPane.height ) {\r
+                               this.hideVisible();\r
+                       }\r
+               }, this );\r
+\r
+               editable.attachListener( editor, 'resize', queryViewport );\r
+               editable.attachListener( editor, 'mode', removeAll );\r
+               editor.on( 'destroy', removeAll );\r
+\r
+               this.lineTpl = new CKEDITOR.template( lineTpl ).output( {\r
+                       lineStyle: CKEDITOR.tools.writeCssText(\r
+                               CKEDITOR.tools.extend( {}, lineStyle, this.lineStyle, true )\r
+                       ),\r
+                       tipLeftStyle: CKEDITOR.tools.writeCssText(\r
+                               CKEDITOR.tools.extend( {}, tipCss, {\r
+                                       left: '0px',\r
+                                       'border-left-color': 'red',\r
+                                       'border-width': '6px 0 6px 6px'\r
+                               }, this.tipCss, this.tipLeftStyle, true )\r
+                       ),\r
+                       tipRightStyle: CKEDITOR.tools.writeCssText(\r
+                               CKEDITOR.tools.extend( {}, tipCss, {\r
+                                       right: '0px',\r
+                                       'border-right-color': 'red',\r
+                                       'border-width': '6px 6px 6px 0'\r
+                               }, this.tipCss, this.tipRightStyle, true )\r
+                       )\r
+               } );\r
+       }\r
+\r
+       Liner.prototype = {\r
+               /**\r
+                * Permanently removes all lines (both hidden and visible) from DOM.\r
+                */\r
+               removeAll: function() {\r
+                       var l;\r
+\r
+                       for ( l in this.hidden ) {\r
+                               this.hidden[ l ].remove();\r
+                               delete this.hidden[ l ];\r
+                       }\r
+\r
+                       for ( l in this.visible ) {\r
+                               this.visible[ l ].remove();\r
+                               delete this.visible[ l ];\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Hides a given line.\r
+                *\r
+                * @param {CKEDITOR.dom.element} line The line to be hidden.\r
+                */\r
+               hideLine: function( line ) {\r
+                       var uid = line.getUniqueId();\r
+\r
+                       line.hide();\r
+\r
+                       this.hidden[ uid ] = line;\r
+                       delete this.visible[ uid ];\r
+               },\r
+\r
+               /**\r
+                * Shows a given line.\r
+                *\r
+                * @param {CKEDITOR.dom.element} line The line to be shown.\r
+                */\r
+               showLine: function( line ) {\r
+                       var uid = line.getUniqueId();\r
+\r
+                       line.show();\r
+\r
+                       this.visible[ uid ] = line;\r
+                       delete this.hidden[ uid ];\r
+               },\r
+\r
+               /**\r
+                * Hides all visible lines.\r
+                */\r
+               hideVisible: function() {\r
+                       for ( var l in this.visible ) {\r
+                               this.hideLine( this.visible[ l ] );\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Shows a line at given location.\r
+                *\r
+                * @param {Object} location Location object containing the unique identifier of the relation\r
+                * and its type. Usually returned by {@link CKEDITOR.plugins.lineutils.locator#sort}.\r
+                * @param {Function} [callback] A callback to be called once the line is shown.\r
+                */\r
+               placeLine: function( location, callback ) {\r
+                       var styles, line, l;\r
+\r
+                       // No style means that line would be out of viewport.\r
+                       if ( !( styles = this.getStyle( location.uid, location.type ) ) ) {\r
+                               return;\r
+                       }\r
+\r
+                       // Search for any visible line of a different hash first.\r
+                       // It's faster to re-position visible line than to show it.\r
+                       for ( l in this.visible ) {\r
+                               if ( this.visible[ l ].getCustomData( 'hash' ) !== this.hash ) {\r
+                                       line = this.visible[ l ];\r
+                                       break;\r
+                               }\r
+                       }\r
+\r
+                       // Search for any hidden line of a different hash.\r
+                       if ( !line ) {\r
+                               for ( l in this.hidden ) {\r
+                                       if ( this.hidden[ l ].getCustomData( 'hash' ) !== this.hash ) {\r
+                                               this.showLine( ( line = this.hidden[ l ] ) );\r
+                                               break;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       // If no line available, add the new one.\r
+                       if ( !line ) {\r
+                               this.showLine( ( line = this.addLine() ) );\r
+                       }\r
+\r
+                       // Mark the line with current hash.\r
+                       line.setCustomData( 'hash', this.hash );\r
+\r
+                       // Mark the line as visible.\r
+                       this.visible[ line.getUniqueId() ] = line;\r
+\r
+                       line.setStyles( styles );\r
+\r
+                       callback && callback( line );\r
+               },\r
+\r
+               /**\r
+                * Creates a style set to be used by the line, representing a particular\r
+                * relation (location).\r
+                *\r
+                * @param {Number} uid Unique identifier of the relation.\r
+                * @param {Number} type Type of the relation.\r
+                * @returns {Object} An object containing styles.\r
+                */\r
+               getStyle: function( uid, type ) {\r
+                       var rel = this.relations[ uid ],\r
+                               loc = this.locations[ uid ][ type ],\r
+                               styles = {},\r
+                               hdiff;\r
+\r
+                       // Line should be between two elements.\r
+                       if ( rel.siblingRect ) {\r
+                               styles.width = Math.max( rel.siblingRect.width, rel.elementRect.width );\r
+                       }\r
+                       // Line is relative to a single element.\r
+                       else {\r
+                               styles.width = rel.elementRect.width;\r
+                       }\r
+\r
+                       // Let's calculate the vertical position of the line.\r
+                       if ( this.inline ) {\r
+                               // (http://dev.ckeditor.com/ticket/13155)\r
+                               styles.top = loc + this.winTopScroll.y - this.rect.relativeY;\r
+                       } else {\r
+                               styles.top = this.rect.top + this.winTopScroll.y + loc;\r
+                       }\r
+\r
+                       // Check if line would be vertically out of the viewport.\r
+                       if ( styles.top - this.winTopScroll.y < this.rect.top || styles.top - this.winTopScroll.y > this.rect.bottom ) {\r
+                               return false;\r
+                       }\r
+\r
+                       // Now let's calculate the horizontal alignment (left and width).\r
+                       if ( this.inline ) {\r
+                               // (http://dev.ckeditor.com/ticket/13155)\r
+                               styles.left = rel.elementRect.left - this.rect.relativeX;\r
+                       } else {\r
+                               if ( rel.elementRect.left > 0 )\r
+                                       styles.left = this.rect.left + rel.elementRect.left;\r
+\r
+                               // H-scroll case. Left edge of element may be out of viewport.\r
+                               else {\r
+                                       styles.width += rel.elementRect.left;\r
+                                       styles.left = this.rect.left;\r
+                               }\r
+\r
+                               // H-scroll case. Right edge of element may be out of viewport.\r
+                               if ( ( hdiff = styles.left + styles.width - ( this.rect.left + this.winPane.width ) ) > 0 ) {\r
+                                       styles.width -= hdiff;\r
+                               }\r
+                       }\r
+\r
+                       // Finally include horizontal scroll of the global window.\r
+                       styles.left += this.winTopScroll.x;\r
+\r
+                       // Append 'px' to style values.\r
+                       for ( var style in styles ) {\r
+                               styles[ style ] = CKEDITOR.tools.cssLength( styles[ style ] );\r
+                       }\r
+\r
+                       return styles;\r
+               },\r
+\r
+               /**\r
+                * Adds a new line to DOM.\r
+                *\r
+                * @returns {CKEDITOR.dom.element} A brand-new line.\r
+                */\r
+               addLine: function() {\r
+                       var line = CKEDITOR.dom.element.createFromHtml( this.lineTpl );\r
+\r
+                       line.appendTo( this.container );\r
+\r
+                       return line;\r
+               },\r
+\r
+               /**\r
+                * Assigns a unique hash to the instance that is later used\r
+                * to tell unwanted lines from new ones. This method **must** be called\r
+                * before a new set of relations is to be visualized so {@link #cleanup}\r
+                * eventually hides obsolete lines. This is because lines\r
+                * are re-used between {@link #placeLine} calls and the number of\r
+                * necessary ones may vary depending on the number of relations.\r
+                *\r
+                * @param {Object} relations {@link CKEDITOR.plugins.lineutils.finder#relations}.\r
+                * @param {Object} locations {@link CKEDITOR.plugins.lineutils.locator#locations}.\r
+                */\r
+               prepare: function( relations, locations ) {\r
+                       this.relations = relations;\r
+                       this.locations = locations;\r
+                       this.hash = Math.random();\r
+               },\r
+\r
+               /**\r
+                * Hides all visible lines that do not belong to current hash\r
+                * and no longer represent relations (locations).\r
+                *\r
+                * See also: {@link #prepare}.\r
+                */\r
+               cleanup: function() {\r
+                       var line;\r
+\r
+                       for ( var l in this.visible ) {\r
+                               line = this.visible[ l ];\r
+\r
+                               if ( line.getCustomData( 'hash' ) !== this.hash ) {\r
+                                       this.hideLine( line );\r
+                               }\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Queries dimensions of the viewport, editable, frame etc.\r
+                * that are used for correct positioning of the line.\r
+                */\r
+               queryViewport: function() {\r
+                       this.winPane = this.win.getViewPaneSize();\r
+                       this.winTopScroll = this.winTop.getScrollPosition();\r
+                       this.winTopPane = this.winTop.getViewPaneSize();\r
+\r
+                       // (http://dev.ckeditor.com/ticket/13155)\r
+                       this.rect = this.getClientRect( this.inline ? this.editable : this.frame );\r
+               },\r
+\r
+               /**\r
+                * Returns `boundingClientRect` of an element, shifted by the position\r
+                * of `container` when the container is not `static` (http://dev.ckeditor.com/ticket/13155).\r
+                *\r
+                * See also: {@link CKEDITOR.dom.element#getClientRect}.\r
+                *\r
+                * @param {CKEDITOR.dom.element} el A DOM element.\r
+                * @returns {Object} A shifted rect, extended by `relativeY` and `relativeX` properties.\r
+                */\r
+               getClientRect: function( el ) {\r
+                       var rect = el.getClientRect(),\r
+                               relativeContainerDocPosition = this.container.getDocumentPosition(),\r
+                               relativeContainerComputedPosition = this.container.getComputedStyle( 'position' );\r
+\r
+                       // Static or not, those values are used to offset the position of the line so they cannot be undefined.\r
+                       rect.relativeX = rect.relativeY = 0;\r
+\r
+                       if ( relativeContainerComputedPosition != 'static' ) {\r
+                               // Remember the offset used to shift the clientRect.\r
+                               rect.relativeY = relativeContainerDocPosition.y;\r
+                               rect.relativeX = relativeContainerDocPosition.x;\r
+\r
+                               rect.top -= rect.relativeY;\r
+                               rect.bottom -= rect.relativeY;\r
+                               rect.left -= rect.relativeX;\r
+                               rect.right -= rect.relativeX;\r
+                       }\r
+\r
+                       return rect;\r
+               }\r
+       };\r
+\r
+       function is( type, flag ) {\r
+               return type & flag;\r
+       }\r
+\r
+       var floats = { left: 1, right: 1, center: 1 },\r
+               positions = { absolute: 1, fixed: 1 };\r
+\r
+       function isElement( node ) {\r
+               return node && node.type == CKEDITOR.NODE_ELEMENT;\r
+       }\r
+\r
+       function isFloated( el ) {\r
+               return !!( floats[ el.getComputedStyle( 'float' ) ] || floats[ el.getAttribute( 'align' ) ] );\r
+       }\r
+\r
+       function isPositioned( el ) {\r
+               return !!positions[ el.getComputedStyle( 'position' ) ];\r
+       }\r
+\r
+       function isLimit( node ) {\r
+               return isElement( node ) && node.getAttribute( 'contenteditable' ) == 'true';\r
+       }\r
+\r
+       function isStatic( node ) {\r
+               return isElement( node ) && !isFloated( node ) && !isPositioned( node );\r
+       }\r
+\r
+       /**\r
+        * Global namespace storing definitions and global helpers for the Line Utilities plugin.\r
+        *\r
+        * @private\r
+        * @class\r
+        * @singleton\r
+        * @since 4.3\r
+        */\r
+       CKEDITOR.plugins.lineutils = {\r
+               finder: Finder,\r
+               locator: Locator,\r
+               liner: Liner\r
+       };\r
+} )();\r
index e54427597d75f1094968e6e50cadb4906b722725..04a4abedea68dcc3423aed16bf8e57d32edd8378 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -18,6 +18,21 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) {
                } ), 'cke_anchor', 'anchor' );\r
        }\r
 \r
+\r
+       function getSelectedAnchor( selection ) {\r
+               var range = selection.getRanges()[ 0 ],\r
+                       element = selection.getSelectedElement();\r
+\r
+               // In case of table cell selection, we want to shrink selection from td to a element.\r
+               range.shrink( CKEDITOR.SHRINK_ELEMENT );\r
+               element = range.getEnclosedNode();\r
+\r
+               if ( element && element.type === CKEDITOR.NODE_ELEMENT &&\r
+                       ( element.data( 'cke-real-element-type' ) === 'anchor' || element.is( 'a' ) ) ) {\r
+                       return element;\r
+               }\r
+       }\r
+\r
        return {\r
                title: editor.lang.link.anchor.title,\r
                minWidth: 300,\r
@@ -35,9 +50,10 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) {
                                        var newFake = createFakeAnchor( editor, attributes );\r
                                        newFake.replace( this._.selectedElement );\r
 \r
-                                       // Selecting fake element for IE. (#11377)\r
-                                       if ( CKEDITOR.env.ie )\r
+                                       // Selecting fake element for IE. (http://dev.ckeditor.com/ticket/11377)\r
+                                       if ( CKEDITOR.env.ie ) {\r
                                                editor.getSelection().selectElement( newFake );\r
+                                       }\r
                                } else {\r
                                        this._.selectedElement.setAttributes( attributes );\r
                                }\r
@@ -56,7 +72,7 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) {
                                        // Apply style.\r
                                        var style = new CKEDITOR.style( { element: 'a', attributes: attributes } );\r
                                        style.type = CKEDITOR.STYLE_INLINE;\r
-                                       editor.applyStyle( style );\r
+                                       style.applyToRange( range );\r
                                }\r
                        }\r
                },\r
@@ -67,7 +83,7 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) {
 \r
                onShow: function() {\r
                        var sel = editor.getSelection(),\r
-                               fullySelected = sel.getSelectedElement(),\r
+                               fullySelected = getSelectedAnchor( sel ),\r
                                fakeSelected = fullySelected && fullySelected.data( 'cke-realelement' ),\r
                                linkElement = fakeSelected ?\r
                                        CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected ) :\r
@@ -77,8 +93,9 @@ CKEDITOR.dialog.add( 'anchor', function( editor ) {
                                loadElements.call( this, linkElement );\r
                                !fakeSelected && sel.selectElement( linkElement );\r
 \r
-                               if ( fullySelected )\r
+                               if ( fullySelected ) {\r
                                        this._.selectedElement = fullySelected;\r
+                               }\r
                        }\r
 \r
                        this.getContentElement( 'info', 'txtName' ).focus();\r
index 35975c754922c80776969776b17edfefd12cc0bb..4c609289a559c19fbfd207cedac9b8875cb674eb 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -7,7 +7,112 @@
 \r
 ( function() {\r
        CKEDITOR.dialog.add( 'link', function( editor ) {\r
-               var plugin = CKEDITOR.plugins.link;\r
+               var plugin = CKEDITOR.plugins.link,\r
+                       initialLinkText;\r
+\r
+               function createRangeForLink( editor, link ) {\r
+                       var range = editor.createRange();\r
+\r
+                       range.setStartBefore( link );\r
+                       range.setEndAfter( link );\r
+\r
+                       return range;\r
+               }\r
+\r
+               function insertLinksIntoSelection( editor, data ) {\r
+                       var attributes = plugin.getLinkAttributes( editor, data ),\r
+                               ranges = editor.getSelection().getRanges(),\r
+                               style = new CKEDITOR.style( {\r
+                                       element: 'a',\r
+                                       attributes: attributes.set\r
+                               } ),\r
+                               rangesToSelect = [],\r
+                               range,\r
+                               text,\r
+                               nestedLinks,\r
+                               i,\r
+                               j;\r
+\r
+                       style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.\r
+\r
+                       for ( i = 0; i < ranges.length; i++ ) {\r
+                               range = ranges[ i ];\r
+\r
+                               // Use link URL as text with a collapsed cursor.\r
+                               if ( range.collapsed ) {\r
+                                       // Short mailto link text view (http://dev.ckeditor.com/ticket/5736).\r
+                                       text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ?\r
+                                               data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document );\r
+                                       range.insertNode( text );\r
+                                       range.selectNodeContents( text );\r
+                               } else if ( initialLinkText !== data.linkText ) {\r
+                                       text = new CKEDITOR.dom.text( data.linkText, editor.document );\r
+\r
+                                       // Shrink range to preserve block element.\r
+                                       range.shrink( CKEDITOR.SHRINK_TEXT );\r
+\r
+                                       // Use extractHtmlFromRange to remove markup within the selection. Also this method is a little\r
+                                       // smarter than range#deleteContents as it plays better e.g. with table cells.\r
+                                       editor.editable().extractHtmlFromRange( range );\r
+\r
+                                       range.insertNode( text );\r
+                               }\r
+\r
+                               // Editable links nested within current range should be removed, so that the link is applied to whole selection.\r
+                               nestedLinks = range._find( 'a' );\r
+\r
+                               for     ( j = 0; j < nestedLinks.length; j++ ) {\r
+                                       nestedLinks[ j ].remove( true );\r
+                               }\r
+\r
+\r
+                               // Apply style.\r
+                               style.applyToRange( range, editor );\r
+\r
+                               rangesToSelect.push( range );\r
+                       }\r
+\r
+                       editor.getSelection().selectRanges( rangesToSelect );\r
+               }\r
+\r
+               function editLinksInSelection( editor, selectedElements, data ) {\r
+                       var attributes = plugin.getLinkAttributes( editor, data ),\r
+                               ranges = [],\r
+                               element,\r
+                               href,\r
+                               textView,\r
+                               newText,\r
+                               i;\r
+\r
+                       for ( i = 0; i < selectedElements.length; i++ ) {\r
+                               // We're only editing an existing link, so just overwrite the attributes.\r
+                               element = selectedElements[ i ];\r
+                               href = element.data( 'cke-saved-href' );\r
+                               textView = element.getHtml();\r
+\r
+                               element.setAttributes( attributes.set );\r
+                               element.removeAttributes( attributes.removed );\r
+\r
+\r
+                               if ( data.linkText && initialLinkText != data.linkText ) {\r
+                                       // Display text has been changed.\r
+                                       newText = data.linkText;\r
+                               } else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {\r
+                                       // Update text view when user changes protocol (http://dev.ckeditor.com/ticket/4612).\r
+                                       // Short mailto link text view (http://dev.ckeditor.com/ticket/5736).\r
+                                       newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ];\r
+                               }\r
+\r
+                               if ( newText ) {\r
+                                       element.setText( newText );\r
+                               }\r
+\r
+                               ranges.push( createRangeForLink( editor, element ) );\r
+                       }\r
+\r
+                       // We changed the content, so need to select it again.\r
+                       editor.getSelection().selectRanges( ranges );\r
+               }\r
 \r
                // Handles the event when the "Target" selection box is changed.\r
                var targetChanged = function() {\r
 \r
                return {\r
                        title: linkLang.title,\r
-                       minWidth: 350,\r
-                       minHeight: 230,\r
+                       minWidth: ( CKEDITOR.skinName || editor.config.skin ) == 'moono-lisa' ? 450 : 350,\r
+                       minHeight: 240,\r
                        contents: [ {\r
                                id: 'info',\r
                                label: linkLang.info,\r
                                title: linkLang.info,\r
                                elements: [ {\r
+                                       type: 'text',\r
+                                       id: 'linkDisplayText',\r
+                                       label: linkLang.displayText,\r
+                                       setup: function() {\r
+                                               this.enable();\r
+\r
+                                               this.setValue( editor.getSelection().getSelectedText() );\r
+\r
+                                               // Keep inner text so that it can be compared in commit function. By obtaining value from getData()\r
+                                               // we get value stripped from new line chars which is important when comparing the value later on.\r
+                                               initialLinkText = this.getValue();\r
+                                       },\r
+                                       commit: function( data ) {\r
+                                               data.linkText = this.isEnabled() ? this.getValue() : '';\r
+                                       }\r
+                               },\r
+                               {\r
                                        id: 'linkType',\r
                                        type: 'select',\r
                                        label: linkLang.type,\r
                                                        label: commonLang.protocol,\r
                                                        'default': 'http://',\r
                                                        items: [\r
-                                                               // Force 'ltr' for protocol names in BIDI. (#5433)\r
+                                                               // Force 'ltr' for protocol names in BIDI. (http://dev.ckeditor.com/ticket/5433)\r
                                                                [ 'http://\u200E', 'http://' ],\r
                                                                [ 'https://\u200E', 'https://' ],\r
                                                                [ 'ftp://\u200E', 'ftp://' ],\r
                                                        },\r
                                                        commit: function( data ) {\r
                                                                // IE will not trigger the onChange event if the mouse has been used\r
-                                                               // to carry all the operations #4724\r
+                                                               // to carry all the operations http://dev.ckeditor.com/ticket/4724\r
                                                                this.onChange();\r
 \r
                                                                if ( !data.url )\r
                                                        setup: setupAdvParams,\r
                                                        commit: commitAdvParams\r
                                                } ]\r
+                                       },\r
+                                       {\r
+                                               type: 'hbox',\r
+                                               widths: [ '45%', '55%' ],\r
+                                               children: [ {\r
+                                                       type: 'checkbox',\r
+                                                       id: 'download',\r
+                                                       requiredContent: 'a[download]',\r
+                                                       label: linkLang.download,\r
+                                                       setup: function( data ) {\r
+                                                               if ( data.download !== undefined )\r
+                                                                       this.setValue( 'checked', 'checked' );\r
+                                                       },\r
+                                                       commit: function( data ) {\r
+                                                               if ( this.getValue() ) {\r
+                                                                       data.download = this.getValue();\r
+                                                               }\r
+                                                       }\r
+                                               } ]\r
                                        } ]\r
                                } ]\r
                        } ],\r
                        onShow: function() {\r
                                var editor = this.getParentEditor(),\r
                                        selection = editor.getSelection(),\r
-                                       element = null;\r
+                                       displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(),\r
+                                       elements = plugin.getSelectedLink( editor, true ),\r
+                                       firstLink = elements[ 0 ] || null;\r
 \r
                                // Fill in all the relevant fields if there's already one link selected.\r
-                               if ( ( element = plugin.getSelectedLink( editor ) ) && element.hasAttribute( 'href' ) ) {\r
+                               if ( firstLink && firstLink.hasAttribute( 'href' ) ) {\r
                                        // Don't change selection if some element is already selected.\r
                                        // For example - don't destroy fake selection.\r
-                                       if ( !selection.getSelectedElement() )\r
-                                               selection.selectElement( element );\r
-                               } else {\r
-                                       element = null;\r
+                                       if ( !selection.getSelectedElement() && !selection.isInTable() ) {\r
+                                               selection.selectElement( firstLink );\r
+                                       }\r
                                }\r
 \r
-                               var data = plugin.parseLinkAttributes( editor, element );\r
+                               var data = plugin.parseLinkAttributes( editor, firstLink );\r
+\r
+                               // Here we'll decide whether or not we want to show Display Text field.\r
+                               if ( elements.length <= 1 && plugin.showDisplayTextForElement( firstLink, editor ) ) {\r
+                                       displayTextField.show();\r
+                               } else {\r
+                                       displayTextField.hide();\r
+                               }\r
 \r
                                // Record down the selected element in the dialog.\r
-                               this._.selectedElement = element;\r
+                               this._.selectedElements = elements;\r
 \r
                                this.setupContent( data );\r
                        },\r
                                // Collect data from fields.\r
                                this.commitContent( data );\r
 \r
-                               var selection = editor.getSelection(),\r
-                                       attributes = plugin.getLinkAttributes( editor, data );\r
-\r
-                               if ( !this._.selectedElement ) {\r
-                                       var range = selection.getRanges()[ 0 ];\r
-\r
-                                       // Use link URL as text with a collapsed cursor.\r
-                                       if ( range.collapsed ) {\r
-                                               // Short mailto link text view (#5736).\r
-                                               var text = new CKEDITOR.dom.text( data.type == 'email' ?\r
-                                                       data.email.address : attributes.set[ 'data-cke-saved-href' ], editor.document );\r
-                                               range.insertNode( text );\r
-                                               range.selectNodeContents( text );\r
-                                       }\r
-\r
-                                       // Apply style.\r
-                                       var style = new CKEDITOR.style( {\r
-                                               element: 'a',\r
-                                               attributes: attributes.set\r
-                                       } );\r
-\r
-                                       style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.\r
-                                       style.applyToRange( range, editor );\r
-                                       range.select();\r
+                               if ( !this._.selectedElements.length ) {\r
+                                       insertLinksIntoSelection( editor, data );\r
                                } else {\r
-                                       // We're only editing an existing link, so just overwrite the attributes.\r
-                                       var element = this._.selectedElement,\r
-                                               href = element.data( 'cke-saved-href' ),\r
-                                               textView = element.getHtml();\r
-\r
-                                       element.setAttributes( attributes.set );\r
-                                       element.removeAttributes( attributes.removed );\r
-\r
-                                       // Update text view when user changes protocol (#4612).\r
-                                       if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {\r
-                                               // Short mailto link text view (#5736).\r
-                                               element.setHtml( data.type == 'email' ?\r
-                                                       data.email.address : attributes.set[ 'data-cke-saved-href' ] );\r
-\r
-                                               // We changed the content, so need to select it again.\r
-                                               selection.selectElement( element );\r
-                                       }\r
+                                       editLinksInSelection( editor, this._.selectedElements, data );\r
 \r
-                                       delete this._.selectedElement;\r
+                                       delete this._.selectedElements;\r
                                }\r
                        },\r
                        onLoad: function() {\r
index 87d717d82877df50158ef6409d68a064214ddb52..b06885589c82a0c5d2cf628d19f6f8a9ecdbeead 100644 (file)
Binary files a/sources/plugins/link/icons/anchor-rtl.png and b/sources/plugins/link/icons/anchor-rtl.png differ
index 0ca085f7517d81ae4e10542673cf3c8f7105dc66..e50d6cd83e79f6b9ba1a49fe3bb0c9b23cfcb3c3 100644 (file)
Binary files a/sources/plugins/link/icons/anchor.png and b/sources/plugins/link/icons/anchor.png differ
index cd6d4ea64cddba2d4d012fc16d0786b1487c548c..3533c38876719c02b9e4c779d90043c67dab5e40 100644 (file)
Binary files a/sources/plugins/link/icons/hidpi/anchor-rtl.png and b/sources/plugins/link/icons/hidpi/anchor-rtl.png differ
index c5869db8356e467110d945333514b82c2d9d31b1..99eeaddcbc7031abc2adf2367a37c623b23c6140 100644 (file)
Binary files a/sources/plugins/link/icons/hidpi/anchor.png and b/sources/plugins/link/icons/hidpi/anchor.png differ
index bb8a0691fd9ec5574fafe482fd1403fe25c9e57c..43ce99ed22e2ef55dd6084e98edaf349c034aa43 100644 (file)
Binary files a/sources/plugins/link/icons/hidpi/link.png and b/sources/plugins/link/icons/hidpi/link.png differ
index 5af59c26a46136a79d5e2b7e897d6f70ea63d307..8ace29df161a8e0e3117aa52b0aa9d83adf65d12 100644 (file)
Binary files a/sources/plugins/link/icons/hidpi/unlink.png and b/sources/plugins/link/icons/hidpi/unlink.png differ
index 95092d03f94b4310b47017f8350e0301e6b0abe2..c2c450f7f42cf1e33e9304fc8c22a4e77d545a0b 100644 (file)
Binary files a/sources/plugins/link/icons/link.png and b/sources/plugins/link/icons/link.png differ
index 33a159990d9ebdcb167f318d2682c66154576444..c2f3f648e2b6199d371f96a7e7c00eadb2ccdf8f 100644 (file)
Binary files a/sources/plugins/link/icons/unlink.png and b/sources/plugins/link/icons/unlink.png differ
index 6d861a0e7a5cbd98d5cd3264c5fdb6009d43362b..d94adb41306ffd96741ae5e5ca1e8d749853f3fb 100644 (file)
Binary files a/sources/plugins/link/images/anchor.png and b/sources/plugins/link/images/anchor.png differ
index f5048430d57dcf0170a2df9e48ba25a58ba18ef9..186c3e916512175f0d6ab12d8eacfe9f320314db 100644 (file)
Binary files a/sources/plugins/link/images/hidpi/anchor.png and b/sources/plugins/link/images/hidpi/anchor.png differ
index 10991c2d2362539225753629e173cd414628dac2..3032beb0df1923e9105a9832527968616b1c32d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'af', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'af', {
        anchorName: 'Op ankernaam',\r
        charset: 'Karakterstel van geskakelde bron',\r
        cssClasses: 'CSS klasse',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-posadres',\r
        emailBody: 'Berig-inhoud',\r
        emailSubject: 'Berig-onderwerp',\r
index 533d52747314a6d2fb32b28172473b8c60c0bb58..e0dd0d9409f0e98a6f9978833e3c14b1ab62ef10 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ar', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ar', {
        anchorName: 'حسب إسم الإشارة المرجعية',\r
        charset: 'ترميز المادة المطلوبة',\r
        cssClasses: 'فئات التنسيق',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'البريد الإلكتروني',\r
        emailBody: 'محتوى الرسالة',\r
        emailSubject: 'موضوع الرسالة',\r
diff --git a/sources/plugins/link/lang/az.js b/sources/plugins/link/lang/az.js
new file mode 100644 (file)
index 0000000..33588fe
--- /dev/null
@@ -0,0 +1,67 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'az', {\r
+       acccessKey: 'Qısayol düyməsi',\r
+       advanced: 'Geniş seçimləri',\r
+       advisoryContentType: 'Məsləhətli məzmunun növü',\r
+       advisoryTitle: 'Məsləhətli başlıq',\r
+       anchor: {\r
+               toolbar: 'Xeş',\r
+               menu: 'Xeşi redaktə et',\r
+               title: 'Xeşin seçimləri',\r
+               name: 'Xeşin adı',\r
+               errorName: 'Xeşin adı yanlışdır',\r
+               remove: 'Xeşin adı sil'\r
+       },\r
+       anchorId: 'ID görə',\r
+       anchorName: 'Xeşin adına görə',\r
+       charset: 'Hədəfin kodlaşdırması',\r
+       cssClasses: 'Üslub klası',\r
+       download: 'Məcburi yükləmə',\r
+       displayText: 'Göstərilən mətn',\r
+       emailAddress: 'E-poçt ünvanı',\r
+       emailBody: 'Mesajın məzmunu',\r
+       emailSubject: 'Mesajın başlığı',\r
+       id: 'ID',\r
+       info: 'Linkin xüsusiyyətləri',\r
+       langCode: 'Dilin kodu',\r
+       langDir: 'Yaziların istiqaməti',\r
+       langDirLTR: 'Soldan sağa (LTR)',\r
+       langDirRTL: 'Sağdan sola (RTL)',\r
+       menu: 'Linki redaktə et',\r
+       name: 'Ad',\r
+       noAnchors: '(heç bir xeş tapılmayıb)',\r
+       noEmail: 'E-poçt ünvanı daxil edin',\r
+       noUrl: 'Linkin URL-ı daxil edin',\r
+       other: '<digər>',\r
+       popupDependent: 'Asılı (Netscape)',\r
+       popupFeatures: 'Pəncərənin xüsusiyyətləri',\r
+       popupFullScreen: 'Tam ekran rejimi (IE)',\r
+       popupLeft: 'Solda',\r
+       popupLocationBar: 'Ünvan paneli',\r
+       popupMenuBar: 'Menyu paneli',\r
+       popupResizable: 'Olçülər dəyişilir',\r
+       popupScrollBars: 'Sürüşdürmələr göstər',\r
+       popupStatusBar: 'Bildirişlərin paneli',\r
+       popupToolbar: 'Alətlərin paneli',\r
+       popupTop: 'Yuxarıda',\r
+       rel: 'Münasibət',\r
+       selectAnchor: 'Xeşi seçin',\r
+       styles: 'Üslub',\r
+       tabIndex: 'Tabın nömrəsi',\r
+       target: 'Hədəf çərçivə',\r
+       targetFrame: '<freym>',\r
+       targetFrameName: 'Freymin adı',\r
+       targetPopup: '<yeni pəncərə>',\r
+       targetPopupName: 'Pəncərənin adı',\r
+       title: 'Link',\r
+       toAnchor: 'Xeş',\r
+       toEmail: 'E-poçt',\r
+       toUrl: 'URL',\r
+       toolbar: 'Link',\r
+       type: 'Linkin növü',\r
+       unlink: 'Linki sil',\r
+       upload: 'Serverə yüklə'\r
+} );\r
index a8e99a71e76a781bc2794e3e3f4d67e7ea63395f..ad32915cd34098b1bf3240cb1f754f1279fae425 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'bg', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bg', {
        anchorName: 'По име на котва',\r
        charset: 'Тип на свързания ресурс',\r
        cssClasses: 'Класове за CSS',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-mail aдрес',\r
        emailBody: 'Съдържание',\r
        emailSubject: 'Тема',\r
index bd9d05e1ba12122c119540b8491711aa4fbd5946..c0718213e96675f236821fdfb8d1b461d6905326 100644 (file)
@@ -1,9 +1,9 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'bn', {\r
-       acccessKey: 'à¦\8fà¦\95à§\8dসà§\87স কী',\r
+       acccessKey: 'পà§\8dরবà§\87শ কী',\r
        advanced: 'এডভান্সড',\r
        advisoryContentType: 'পরামর্শ কন্টেন্টের প্রকার',\r
        advisoryTitle: 'পরামর্শ শীর্ষক',\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bn', {
        anchorName: 'নোঙরের নাম দিয়ে',\r
        charset: 'লিংক রিসোর্স ক্যারেক্টর সেট',\r
        cssClasses: 'স্টাইল-শীট ক্লাস',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'ইমেইল ঠিকানা',\r
        emailBody: 'মেসেজের দেহ',\r
        emailSubject: 'মেসেজের বিষয়',\r
index 39a1a84a32514bfab1f0ee034d2f3c0f73e52bbb..d23ae35e4399e30651d9688cedd22f6334495e4d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'bs', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'bs', {
        anchorName: 'Po nazivu sidra',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Klase CSS stilova',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Adresa',\r
        emailBody: 'Poruka',\r
        emailSubject: 'Subjekt poruke',\r
index 8b80e611b3700606101662d3fee050a92ed88851..44a9ebd649e6f393feee9ec17d860683185057fc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ca', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ca', {
        anchorName: 'Per nom d\'àncora',\r
        charset: 'Conjunt de caràcters font enllaçat',\r
        cssClasses: 'Classes del full d\'estil',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Text a mostrar',\r
        emailAddress: 'Adreça de correu electrònic',\r
        emailBody: 'Cos del missatge',\r
        emailSubject: 'Assumpte del missatge',\r
index 45106c0ac67d631a692fcec7a693852df818b172..508c13334279ecf68714e0809a39aacdbbfc3552 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'cs', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'cs', {
        anchorName: 'Podle jména kotvy',\r
        charset: 'Přiřazená znaková sada',\r
        cssClasses: 'Třída stylu',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Zobrazit text',\r
        emailAddress: 'E-mailová adresa',\r
        emailBody: 'Tělo zprávy',\r
        emailSubject: 'Předmět zprávy',\r
index 358ec60962825dba266441ecdf5e914f3ad7a80e..024b669219aa0eaf34f452e00885ed16adf962bb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'cy', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'cy', {
        anchorName: 'Gan Enw\'r Angor',\r
        charset: 'Set Nodau\'r Adnodd Cysylltiedig',\r
        cssClasses: 'Dosbarthiadau Dalen Arddull',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Cyfeiriad E-Bost',\r
        emailBody: 'Corff y Neges',\r
        emailSubject: 'Testun y Neges',\r
index 7a278c4cb76721f95ff263eac280bd89075301bb..47adf58e1808a9dd15fe6d67d53d4a600d4f667d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'da', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'da', {
        anchorName: 'Efter ankernavn',\r
        charset: 'Tegnsæt',\r
        cssClasses: 'Typografiark',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-mailadresse',\r
        emailBody: 'Besked',\r
        emailSubject: 'Emne',\r
index d386d2af1fa944dba78f92dfc5c3302a4b7ba8d0..eba8c7e14673de4e40d6d2e13d5720c8bc4d9a14 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'de-ch', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'de-ch', {
        anchorName: 'Nach Ankername',\r
        charset: 'Verknüpfter Ressourcenzeichensatz',\r
        cssClasses: 'Formatvorlagenklasse',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail-Adresse',\r
        emailBody: 'Nachrichtentext',\r
        emailSubject: 'Betreffzeile',\r
index c8da86fa5aeef0a8caaf60be900d31bf04b6933f..e73093f529e5a14978fdbcbe1323dcadde91b5ba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'de', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'de', {
        anchorName: 'Nach Ankername',\r
        charset: 'Verknüpfter Ressourcenzeichensatz',\r
        cssClasses: 'Formatvorlagenklasse',\r
+       download: 'Herunterladen erzwingen',\r
+       displayText: 'Anzeigetext',\r
        emailAddress: 'E-Mail-Adresse',\r
        emailBody: 'Nachrichtentext',\r
        emailSubject: 'Betreffzeile',\r
index 53019a5b19d512939e0da4424b479a8654505cd6..bf0fbb9d63f049c53a35b5a794f1214c5f0ec254 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'el', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'el', {
        anchorName: 'Βάσει του Ονόματος Άγκυρας',\r
        charset: 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής',\r
        cssClasses: 'Κλάσεις Φύλλων Στυλ',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Διεύθυνση E-mail',\r
        emailBody: 'Κείμενο Μηνύματος',\r
        emailSubject: 'Θέμα Μηνύματος',\r
index 5e18970f5ae0592b8f0d4d3973a463237195c061..f67a6f75e4ef23b7aaee2de45cdf63cecd15bbb0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'en-au', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-au', {
        anchorName: 'By Anchor Name',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet Classes',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Address',\r
        emailBody: 'Message Body',\r
        emailSubject: 'Message Subject',\r
index fb4b6c73fd221be75cb9bd335ce41d642756142b..636ee5c1d0fae45dfd8805d93c15f80a8cecd487 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'en-ca', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-ca', {
        anchorName: 'By Anchor Name',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet Classes',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Address',\r
        emailBody: 'Message Body',\r
        emailSubject: 'Message Subject',\r
index a3af24c344e9611a7ca4d1dd2322fcb5b00a0977..f0f35066e40b6d262beaff6c84fb6ee840edf668 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'en-gb', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en-gb', {
        anchorName: 'By Anchor Name',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet Classes',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Address',\r
        emailBody: 'Message Body',\r
        emailSubject: 'Message Subject',\r
index 10547414678f4ce9b911aaf425db73ae90c743bb..8f613de95203e81bae9210ea0e439dd31c33fbe3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'en', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'en', {
        anchorName: 'By Anchor Name',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet Classes',\r
+       download: 'Force Download',\r
+       displayText: 'Display Text',\r
        emailAddress: 'E-Mail Address',\r
        emailBody: 'Message Body',\r
        emailSubject: 'Message Subject',\r
index e0bc952f0b85300196c6457652a46fd146276cd8..d2b6faf586de4c271c94fff8806c0bcb92b4b4af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'eo', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'eo', {
        anchorName: 'Per Ankronomo',\r
        charset: 'Signaro de la Ligita Rimedo',\r
        cssClasses: 'Klasoj de Stilfolioj',\r
+       download: 'Altrudi Elŝuton',\r
+       displayText: 'Vidigi Tekston',\r
        emailAddress: 'Retpoŝto',\r
        emailBody: 'Mesaĝa korpo',\r
        emailSubject: 'Mesaĝa Temo',\r
diff --git a/sources/plugins/link/lang/es-mx.js b/sources/plugins/link/lang/es-mx.js
new file mode 100644 (file)
index 0000000..1c27060
--- /dev/null
@@ -0,0 +1,67 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'es-mx', {\r
+       acccessKey: 'Llave de acceso',\r
+       advanced: 'Avanzada',\r
+       advisoryContentType: 'Tipo de contenido consultivo',\r
+       advisoryTitle: 'Título asesor',\r
+       anchor: {\r
+               toolbar: 'Ancla',\r
+               menu: 'Editar ancla',\r
+               title: 'Propiedades del ancla',\r
+               name: 'Nombre del ancla',\r
+               errorName: 'Escriba el nombre del ancla',\r
+               remove: 'Remover ancla'\r
+       },\r
+       anchorId: 'Por Id del elemento',\r
+       anchorName: 'Por nombre del ancla',\r
+       charset: 'Recurso relacionado Charset',\r
+       cssClasses: 'Clases de estilo de hoja',\r
+       download: 'Forzar la descarga',\r
+       displayText: 'Mostrar texto',\r
+       emailAddress: 'Dirección de correo electrónico',\r
+       emailBody: 'Cuerpo del mensaje',\r
+       emailSubject: 'Asunto del mensaje',\r
+       id: 'Id',\r
+       info: 'Información del enlace',\r
+       langCode: 'Código del idioma',\r
+       langDir: 'Dirección del idioma',\r
+       langDirLTR: 'Izquierda a Derecha (LTR)',\r
+       langDirRTL: 'Derecha a Izquierda (RTL)',\r
+       menu: 'Editar enlace',\r
+       name: 'Nombre',\r
+       noAnchors: '(No hay anclas disponibles en el documento)',\r
+       noEmail: 'Escriba la dirección de correo electrónico',\r
+       noUrl: 'Escriba la URL del enlace',\r
+       other: '<other>',\r
+       popupDependent: 'Dependiente (Netscape)',\r
+       popupFeatures: 'Ventana emergente',\r
+       popupFullScreen: 'Pantalla completa (IE)',\r
+       popupLeft: 'Posición Izquierda',\r
+       popupLocationBar: 'Ubicación de la barra',\r
+       popupMenuBar: 'Barra de menú',\r
+       popupResizable: 'Redimensionable',\r
+       popupScrollBars: 'Barras de desplazamiento',\r
+       popupStatusBar: 'Barra de estado',\r
+       popupToolbar: 'Barra de herramienta',\r
+       popupTop: 'Posición superior',\r
+       rel: 'Relación',\r
+       selectAnchor: 'Selecciona un ancla',\r
+       styles: 'Estilo',\r
+       tabIndex: 'Indice de tabulación',\r
+       target: 'Objetivo',\r
+       targetFrame: '<frame>',\r
+       targetFrameName: 'Nombre del marco de destino',\r
+       targetPopup: '<popup window>',\r
+       targetPopupName: 'Nombre de ventana emergente',\r
+       title: 'Enlace',\r
+       toAnchor: 'Enlace al ancla en el texto',\r
+       toEmail: 'Correo electrónico',\r
+       toUrl: 'URL',\r
+       toolbar: 'Enlace',\r
+       type: 'Tipo de enlace',\r
+       unlink: 'Desconectar',\r
+       upload: 'Subir'\r
+} );\r
index d17edbcdb39fde8570a5a8c94da02c37177861c6..700ad862eaf0cad4c5e3ff5cd085768ce3485ec5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'es', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'es', {
        anchorName: 'Por Nombre de Referencia',\r
        charset: 'Fuente de caracteres vinculado',\r
        cssClasses: 'Clases de hojas de estilo',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Dirección de E-Mail',\r
        emailBody: 'Cuerpo del Mensaje',\r
        emailSubject: 'Título del Mensaje',\r
index 09db6caeb4e89bebe09f986834e978d8b016fd66..7e31aa6017052a16639d0a53e0f0124d596a563d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'et', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'et', {
        anchorName: 'Ankru nime järgi',\r
        charset: 'Lingitud ressursi märgistik',\r
        cssClasses: 'Stiilistiku klassid',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-posti aadress',\r
        emailBody: 'Sõnumi tekst',\r
        emailSubject: 'Sõnumi teema',\r
index f3415ab258215f36cf0d98098d262c7d1656b9cf..7a2727ea169436e56bd0ee5c798353cf3f6b836e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'eu', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'eu', {
        anchorName: 'Aingura-izenaren arabera',\r
        charset: 'Estekatutako baliabide karaktere-jokoa',\r
        cssClasses: 'Estilo-orriko klaseak',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Bistaratu testua',\r
        emailAddress: 'E-posta helbidea',\r
        emailBody: 'Mezuaren gorputza',\r
        emailSubject: 'Mezuaren gaia',\r
index fa6dd5a7bfd302970a847b5d1f094e2e0783fe4b..525d899b996a035f77d93382a752c1076d5010d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'fa', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fa', {
        anchorName: 'با نام لنگر',\r
        charset: 'نویسه​گان منبع پیوند شده',\r
        cssClasses: 'کلاس​های شیوه​نامه(Stylesheet)',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'نشانی پست الکترونیکی',\r
        emailBody: 'متن پیام',\r
        emailSubject: 'موضوع پیام',\r
index eedf64ff84eda613dea559a3f4ea60b47d0e2f69..9ab5224474b4946084f00758004725b355356879 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'fi', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fi', {
        anchorName: 'Ankkurin nimen mukaan',\r
        charset: 'Linkitetty kirjaimisto',\r
        cssClasses: 'Tyyliluokat',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Sähköpostiosoite',\r
        emailBody: 'Viesti',\r
        emailSubject: 'Aihe',\r
index d46eed447b4c22211134cdda6e3ea3094708e282..90ab1ed0c8df9b84a483ff454e2b569fa9d8b4fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'fo', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fo', {
        anchorName: 'Eftir navni á marknasteini',\r
        charset: 'Atknýtt teknsett',\r
        cssClasses: 'Typografi klassar',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Teldupost-adressa',\r
        emailBody: 'Breyðtekstur',\r
        emailSubject: 'Evni',\r
index 816ad2bfbde089c317f5b02b67f2bd5f8cee6929..ddf2dde25b5fff5803d52e9189878812fea130de 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'fr-ca', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'fr-ca', {
        anchorName: 'Par nom',\r
        charset: 'Encodage de la cible',\r
        cssClasses: 'Classes CSS',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Courriel',\r
        emailBody: 'Corps du message',\r
        emailSubject: 'Objet du message',\r
index fe8755db33b475e14ad8e2fda6a70bbbc735b900..d40d8d980e435efa03a046bbcc8c74dcb1903188 100644 (file)
@@ -1,15 +1,15 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'fr', {\r
        acccessKey: 'Touche d\'accessibilité',\r
        advanced: 'Avancé',\r
-       advisoryContentType: 'Type de contenu (ex: text/html)',\r
-       advisoryTitle: 'Description (title)',\r
+       advisoryContentType: 'Type de contenu (indicatif)',\r
+       advisoryTitle: 'Infobulle',\r
        anchor: {\r
                toolbar: 'Ancre',\r
-               menu: 'Editer l\'ancre',\r
+               menu: 'Modifier l\'ancre',\r
                title: 'Propriétés de l\'ancre',\r
                name: 'Nom de l\'ancre',\r
                errorName: 'Veuillez entrer le nom de l\'ancre.',\r
@@ -17,49 +17,51 @@ CKEDITOR.plugins.setLang( 'link', 'fr', {
        },\r
        anchorId: 'Par ID d\'élément',\r
        anchorName: 'Par nom d\'ancre',\r
-       charset: 'Charset de la cible',\r
-       cssClasses: 'Classe CSS',\r
-       emailAddress: 'Adresse E-Mail',\r
+       charset: 'Encodage de la ressource liée',\r
+       cssClasses: 'Classes de style',\r
+       download: 'Forcer le téléchargement',\r
+       displayText: 'Afficher le texte',\r
+       emailAddress: 'Adresse électronique',\r
        emailBody: 'Corps du message',\r
        emailSubject: 'Sujet du message',\r
-       id: 'Id',\r
-       info: 'Infos sur le lien',\r
+       id: 'ID',\r
+       info: 'Informations sur le lien',\r
        langCode: 'Code de langue',\r
        langDir: 'Sens d\'écriture',\r
        langDirLTR: 'Gauche à droite',\r
-       langDirRTL: 'Droite à gauche',\r
-       menu: 'Editer le lien',\r
+       langDirRTL: 'Droite à gauche (RTL)',\r
+       menu: 'Modifier le lien',\r
        name: 'Nom',\r
        noAnchors: '(Aucune ancre disponible dans ce document)',\r
-       noEmail: 'Veuillez entrer l\'adresse e-mail',\r
-       noUrl: 'Veuillez entrer l\'adresse du lien',\r
+       noEmail: 'Veuillez entrer l\'adresse électronique',\r
+       noUrl: 'Veuillez entrer l\'URL du lien',\r
        other: '<autre>',\r
        popupDependent: 'Dépendante (Netscape)',\r
-       popupFeatures: 'Options de la fenêtre popup',\r
+       popupFeatures: 'Caractéristiques de la fenêtre surgissante',\r
        popupFullScreen: 'Plein écran (IE)',\r
-       popupLeft: 'Position gauche',\r
+       popupLeft: 'À gauche',\r
        popupLocationBar: 'Barre d\'adresse',\r
        popupMenuBar: 'Barre de menu',\r
        popupResizable: 'Redimensionnable',\r
        popupScrollBars: 'Barres de défilement',\r
-       popupStatusBar: 'Barre de status',\r
+       popupStatusBar: 'Barre d\'état',\r
        popupToolbar: 'Barre d\'outils',\r
-       popupTop: 'Position haute',\r
+       popupTop: 'En haut',\r
        rel: 'Relation',\r
-       selectAnchor: 'Sélectionner l\'ancre',\r
+       selectAnchor: 'Sélectionner une ancre',\r
        styles: 'Style',\r
-       tabIndex: 'Index de tabulation',\r
+       tabIndex: 'Indice de tabulation',\r
        target: 'Cible',\r
        targetFrame: '<cadre>',\r
-       targetFrameName: 'Nom du Cadre destination',\r
-       targetPopup: '<fenêtre popup>',\r
-       targetPopupName: 'Nom de la fenêtre popup',\r
+       targetFrameName: 'Nom du cadre affecté',\r
+       targetPopup: '<fenêtre surgissante>',\r
+       targetPopupName: 'Nom de la fenêtre surgissante',\r
        title: 'Lien',\r
        toAnchor: 'Ancre',\r
-       toEmail: 'E-mail',\r
+       toEmail: 'Courriel',\r
        toUrl: 'URL',\r
        toolbar: 'Lien',\r
        type: 'Type de lien',\r
        unlink: 'Supprimer le lien',\r
-       upload: 'Envoyer'\r
+       upload: 'Téléverser'\r
 } );\r
index bf55977739abff42ccffae4f01ca59316349b7af..a7d7b0b57d61be0afecccddd514b0ec403841eb9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'gl', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'gl', {
        anchorName: 'Polo nome da ancoraxe',\r
        charset: 'Codificación do recurso ligado',\r
        cssClasses: 'Clases da folla de estilos',\r
+       download: 'Forzar a descarga',\r
+       displayText: 'Amosar o texto',\r
        emailAddress: 'Enderezo de correo',\r
        emailBody: 'Corpo da mensaxe',\r
        emailSubject: 'Asunto da mensaxe',\r
index c0544502e3517b7370d09c0d48ad451b510e6e80..2bbf577faa5633929402938f3f63d2a2da98c6af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'gu', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'gu', {
        anchorName: 'ઍંકર નામથી પસંદ કરો',\r
        charset: 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',\r
        cssClasses: 'સ્ટાઇલ-શીટ ક્લાસ',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'ઈ-મેલ સરનામું',\r
        emailBody: 'સંદેશ',\r
        emailSubject: 'ઈ-મેલ વિષય',\r
index d6b67e1e4f8990f90f914c9f25a8f2d2d32549e7..a00f60a79e42778473ea545f18174ba4c0fe982d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'he', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'he', {
        anchorName: 'עפ"י שם העוגן',\r
        charset: 'קידוד המשאב המקושר',\r
        cssClasses: 'גיליונות עיצוב קבוצות',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'כתובת הדוא"ל',\r
        emailBody: 'גוף ההודעה',\r
        emailSubject: 'נושא ההודעה',\r
index 7c8939b73bd4900142aefc10bb838a99791c7227..88b7df9db7732269afec0a65c16569fe7a98afb9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'hi', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hi', {
        anchorName: 'ऐंकर नाम से',\r
        charset: 'लिंक रिसोर्स करॅक्टर सॅट',\r
        cssClasses: 'स्टाइल-शीट क्लास',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'ई-मेल पता',\r
        emailBody: 'संदेश',\r
        emailSubject: 'संदेश विषय',\r
index 1d9f2240dbb68f3184e2fc020fa65615834c6de8..5bb1b8809bc6e37cada7eda2434c1959556f30b3 100644 (file)
@@ -1,12 +1,12 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'hr', {\r
        acccessKey: 'Pristupna tipka',\r
        advanced: 'Napredno',\r
-       advisoryContentType: 'Advisory vrsta sadržaja',\r
-       advisoryTitle: 'Advisory naslov',\r
+       advisoryContentType: 'Savjetodavna vrsta sadržaja',\r
+       advisoryTitle: 'Savjetodavni naslov',\r
        anchor: {\r
                toolbar: 'Ubaci/promijeni sidro',\r
                menu: 'Svojstva sidra',\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hr', {
        anchorName: 'Po nazivu sidra',\r
        charset: 'Kodna stranica povezanih resursa',\r
        cssClasses: 'Stylesheet klase',\r
+       download: 'Preuzmi na silu',\r
+       displayText: 'Prikaži tekst',\r
        emailAddress: 'E-Mail adresa',\r
        emailBody: 'Sadržaj poruke',\r
        emailSubject: 'Naslov',\r
@@ -54,12 +56,12 @@ CKEDITOR.plugins.setLang( 'link', 'hr', {
        targetFrameName: 'Ime ciljnog okvira',\r
        targetPopup: '<popup prozor>',\r
        targetPopupName: 'Naziv popup prozora',\r
-       title: 'Link',\r
+       title: 'Veza',\r
        toAnchor: 'Sidro na ovoj stranici',\r
        toEmail: 'E-Mail',\r
        toUrl: 'URL',\r
-       toolbar: 'Ubaci/promijeni link',\r
-       type: 'Link vrsta',\r
-       unlink: 'Ukloni link',\r
+       toolbar: 'Ubaci/promijeni vezu',\r
+       type: 'Vrsta veze',\r
+       unlink: 'Ukloni vezu',\r
        upload: 'Pošalji'\r
 } );\r
index dd7c7ac4fb0e5ed1b63144e4e2069512c235b888..102ca5625bac8eda7858c15be70c56d9f7513845 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'hu', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'hu', {
        anchorName: 'Horgony név szerint',\r
        charset: 'Hivatkozott tartalom kódlapja',\r
        cssClasses: 'Stíluskészlet',\r
+       download: 'Kötelező letöltés',\r
+       displayText: 'Megjelenített szöveg',\r
        emailAddress: 'E-Mail cím',\r
        emailBody: 'Üzenet',\r
        emailSubject: 'Üzenet tárgya',\r
index ff8e5597ce19880685ccdaeffe77aff7256ad0e2..e255eb5774f4c336ce5c2e560f75555d7deb96b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'id', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'id', {
        anchorName: 'By Anchor Name', // MISSING\r
        charset: 'Linked Resource Charset', // MISSING\r
        cssClasses: 'Kelas Stylesheet',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Alamat E-mail',\r
        emailBody: 'Message Body', // MISSING\r
        emailSubject: 'Judul Pesan',\r
index 3abcdedb7563f8966cd65d7c1be4a96a3f6d3d53..ccdea0a8cf21cb6c32728ab703ada41e3a06ff9c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'is', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'is', {
        anchorName: 'Eftir akkerisnafni',\r
        charset: 'Táknróf',\r
        cssClasses: 'Stílsniðsflokkur',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Netfang',\r
        emailBody: 'Meginmál',\r
        emailSubject: 'Efni',\r
index 8130e3bad40ee17a2483ef5a4d8440e9f66daeb5..b6b93bf695f6e92be53d2cee343832d255b24636 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'it', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'it', {
        anchorName: 'Per Nome',\r
        charset: 'Set di caretteri della risorsa collegata',\r
        cssClasses: 'Nome classe CSS',\r
+       download: 'Forza scaricamento',\r
+       displayText: 'Mostra testo',\r
        emailAddress: 'Indirizzo E-Mail',\r
        emailBody: 'Corpo del messaggio',\r
        emailSubject: 'Oggetto del messaggio',\r
index dc0ca23147bacdcacf02310831ecc269739763d9..342025feb2423beced49d88d4c04526d3a93fecd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ja', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ja', {
        anchorName: 'アンカー名',\r
        charset: 'リンク先のcharset',\r
        cssClasses: 'スタイルシートクラス',\r
+       download: '強制的にダウンロード',\r
+       displayText: '表示文字',\r
        emailAddress: 'E-Mail アドレス',\r
        emailBody: '本文',\r
        emailSubject: '件名',\r
index c461a7fbccba7868395ada81d1411ad30eaec5e1..439c43d376cca5db0230f0a663c290a9fbc5ab0e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ka', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ka', {
        anchorName: 'ღუზის სახელით',\r
        charset: 'კოდირება',\r
        cssClasses: 'CSS კლასი',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'ელფოსტის მისამართები',\r
        emailBody: 'წერილის ტექსტი',\r
        emailSubject: 'წერილის სათაური',\r
index d801953fe81f7fec0611559e156a6a0957ba2aed..5d0be030a5a7d1444de1e46eec46781a33786732 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'km', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'km', {
        anchorName: 'តាម​ឈ្មោះ​យុថ្កា',\r
        charset: 'លេខកូតអក្សររបស់ឈ្នាប់',\r
        cssClasses: 'Stylesheet Classes',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'អាសយដ្ឋាន​អ៊ីមែល',\r
        emailBody: 'តួ​អត្ថបទ',\r
        emailSubject: 'ប្រធានបទ​សារ',\r
index 2a83a4132874e2c2ecbab7bc5e3708e3f4ae66cd..894ac62b7d34e82730af26f500f20c95097e0a06 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ko', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ko', {
        anchorName: '책갈피 이름',\r
        charset: '링크된 자료 문자열 인코딩',\r
        cssClasses: '스타일시트 클래스',\r
+       download: '강제 다운로드',\r
+       displayText: '보이는 글자',\r
        emailAddress: '이메일 주소',\r
        emailBody: '메시지 내용',\r
        emailSubject: '메시지 제목',\r
index dbcad9f7d707cd9f0dbe7a29357e2fbabe7e3023..ad06cd9c0cd29a496985f66aa6a9f28460cc6a03 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ku', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ku', {
        anchorName: 'بەپێی ناوی لەنگەر',\r
        charset: 'بەستەری سەرچاوەی نووسە',\r
        cssClasses: 'شێوازی چینی پەڕه',\r
+       download: 'داگرتنی بەهێز',\r
+       displayText: 'پیشاندانی دەق',\r
        emailAddress: 'ناونیشانی ئیمەیل',\r
        emailBody: 'ناوەڕۆکی نامە',\r
        emailSubject: 'بابەتی نامە',\r
index db2ed72819247de7f06e9f9c05813103f39adc3f..27aa8b7e7d82aca46a980dc8e2b6fb292002fa00 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'lt', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'lt', {
        anchorName: 'Pagal žymės vardą',\r
        charset: 'Susietų išteklių simbolių lentelė',\r
        cssClasses: 'Stilių lentelės klasės',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'El.pašto adresas',\r
        emailBody: 'Žinutės turinys',\r
        emailSubject: 'Žinutės tema',\r
index 8e3c6491f033c8f871ac832896301c096052a65e..ef8a3f24c91977f3dbac0951ad622c9ef4fe5015 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'lv', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'lv', {
        anchorName: 'Pēc iezīmes nosaukuma',\r
        charset: 'Pievienotā resursa kodējums',\r
        cssClasses: 'Stilu saraksta klases',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-pasta adrese',\r
        emailBody: 'Ziņas saturs',\r
        emailSubject: 'Ziņas tēma',\r
index 502f29c2c8373a7ad18a01cf68403046d03ac7a0..5fb965567643f3e24be558303badf0311acaa15e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'mk', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'mk', {
        anchorName: 'By Anchor Name', // MISSING\r
        charset: 'Linked Resource Charset', // MISSING\r
        cssClasses: 'Stylesheet Classes', // MISSING\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Address', // MISSING\r
        emailBody: 'Message Body', // MISSING\r
        emailSubject: 'Message Subject', // MISSING\r
index 8935a8f1b3f84c265b2abedf80006e561de695cd..ed159c7c98104a98ba98f6a50f0eb14311dec854 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'mn', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'mn', {
        anchorName: 'Зангуугийн нэрээр',\r
        charset: 'Тэмдэгт оноох нөөцөд холбогдсон',\r
        cssClasses: 'Stylesheet классууд',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Э-шуудангийн хаяг',\r
        emailBody: 'Зурвасны их бие',\r
        emailSubject: 'Зурвасны гарчиг',\r
index b244ba63f931f5d844b9c4bb5c18701601189621..9a2e499445a38086a16843b61e86c5a95fc80ad6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ms', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ms', {
        anchorName: 'dengan menggunakan nama pautan',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Kelas-kelas Stylesheet',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Alamat E-Mail',\r
        emailBody: 'Isi Kandungan Mesej',\r
        emailSubject: 'Subjek Mesej',\r
index d9cedf7a3b65dad23ce1d6168b4f7b26cf6365c6..7253b4aad62b5aa1c9b14fc126e3a0f79b6f64b4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'nb', {\r
@@ -8,8 +8,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', {
        advisoryContentType: 'Type',\r
        advisoryTitle: 'Tittel',\r
        anchor: {\r
-               toolbar: 'Sett inn/Rediger anker',\r
-               menu: 'Egenskaper for anker',\r
+               toolbar: 'Anker',\r
+               menu: 'Rediger anker',\r
                title: 'Egenskaper for anker',\r
                name: 'Ankernavn',\r
                errorName: 'Vennligst skriv inn ankernavnet',\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', {
        anchorName: 'Anker etter navn',\r
        charset: 'Lenket tegnsett',\r
        cssClasses: 'Stilarkklasser',\r
+       download: 'Tving nedlasting',\r
+       displayText: 'Tekst som skal vises',\r
        emailAddress: 'E-postadresse',\r
        emailBody: 'Melding',\r
        emailSubject: 'Meldingsemne',\r
@@ -26,8 +28,8 @@ CKEDITOR.plugins.setLang( 'link', 'nb', {
        info: 'Lenkeinfo',\r
        langCode: 'Språkkode',\r
        langDir: 'Språkretning',\r
-       langDirLTR: 'Venstre til høyre (VTH)',\r
-       langDirRTL: 'Høyre til venstre (HTV)',\r
+       langDirLTR: 'Venstre til høyre (LTR)',\r
+       langDirRTL: 'Høyre til venstre (RTL)',\r
        menu: 'Rediger lenke',\r
        name: 'Navn',\r
        noAnchors: '(Ingen anker i dokumentet)',\r
@@ -58,7 +60,7 @@ CKEDITOR.plugins.setLang( 'link', 'nb', {
        toAnchor: 'Lenke til anker i teksten',\r
        toEmail: 'E-post',\r
        toUrl: 'URL',\r
-       toolbar: 'Sett inn/Rediger lenke',\r
+       toolbar: 'Lenke',\r
        type: 'Lenketype',\r
        unlink: 'Fjern lenke',\r
        upload: 'Last opp'\r
index 1c6036b4d77b531d0e3314c66d2daccab4ff3718..12cb50922674673566a1ea749bc7a7cf166ef9b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'nl', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'nl', {
        anchorName: 'Op naam interne link',\r
        charset: 'Karakterset van gelinkte bron',\r
        cssClasses: 'Stylesheet-klassen',\r
+       download: 'Download forceren',\r
+       displayText: 'Weergavetekst',\r
        emailAddress: 'E-mailadres',\r
        emailBody: 'Inhoud bericht',\r
        emailSubject: 'Onderwerp bericht',\r
index 0a4ef05f2b315b79762c84463b136b9e72fd3dda..bdd7fc66be39f487c582ad2a91ff154d57764a95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'no', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'no', {
        anchorName: 'Anker etter navn',\r
        charset: 'Lenket tegnsett',\r
        cssClasses: 'Stilarkklasser',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Tekst som skal vises',\r
        emailAddress: 'E-postadresse',\r
        emailBody: 'Melding',\r
        emailSubject: 'Meldingsemne',\r
diff --git a/sources/plugins/link/lang/oc.js b/sources/plugins/link/lang/oc.js
new file mode 100644 (file)
index 0000000..f9e51cd
--- /dev/null
@@ -0,0 +1,67 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'link', 'oc', {\r
+       acccessKey: 'Tòca d\'accessibilitat',\r
+       advanced: 'Avançat',\r
+       advisoryContentType: 'Tipe de contengut (indicatiu)',\r
+       advisoryTitle: 'Infobulla',\r
+       anchor: {\r
+               toolbar: 'Ancòra',\r
+               menu: 'Modificar l\'ancòra',\r
+               title: 'Proprietats de l\'ancòra',\r
+               name: 'Nom de l\'ancòra',\r
+               errorName: 'Entratz lo nom de l\'ancòra',\r
+               remove: 'Suprimir l\'ancòra'\r
+       },\r
+       anchorId: 'Per ID d\'element',\r
+       anchorName: 'Per nom d\'ancòra',\r
+       charset: 'Encodatge de la ressorsa ligada',\r
+       cssClasses: 'Classas d\'estil',\r
+       download: 'Forçar lo telecargament',\r
+       displayText: 'Afichar lo tèxte',\r
+       emailAddress: 'Adreça electronica',\r
+       emailBody: 'Còs del messatge',\r
+       emailSubject: 'Subjècte del messatge',\r
+       id: 'Id',\r
+       info: 'Informacions sul ligam',\r
+       langCode: 'Còdi de lenga',\r
+       langDir: 'Sens d\'escritura',\r
+       langDirLTR: 'Esquèrra a dreita (LTR)',\r
+       langDirRTL: 'Dreita a esquèrra (RTL)',\r
+       menu: 'Modificar lo ligam',\r
+       name: 'Nom',\r
+       noAnchors: '(Cap d\'ancòra pas disponibla dins aqueste document)',\r
+       noEmail: 'Entratz l\'adreça electronica',\r
+       noUrl: 'Entratz l\'URL del ligam',\r
+       other: '<autre>',\r
+       popupDependent: 'Dependenta (Netscape)',\r
+       popupFeatures: 'Caracteristicas de la fenèstra sorgissenta',\r
+       popupFullScreen: 'Ecran complet (IE)',\r
+       popupLeft: 'A esquèrra',\r
+       popupLocationBar: 'Barra d\'adreça',\r
+       popupMenuBar: 'Barra de menú',\r
+       popupResizable: 'Redimensionable',\r
+       popupScrollBars: 'Barras de desfilament',\r
+       popupStatusBar: 'Barra d\'estat',\r
+       popupToolbar: 'Barra d\'aisinas',\r
+       popupTop: 'Amont',\r
+       rel: 'Relacion',\r
+       selectAnchor: 'Seleccionar una ancòra',\r
+       styles: 'Estil',\r
+       tabIndex: 'Indici de tabulacion',\r
+       target: 'Cibla',\r
+       targetFrame: '<quadre>',\r
+       targetFrameName: 'Nom del quadre afectat',\r
+       targetPopup: '<fenèstra sorgissenta>',\r
+       targetPopupName: 'Nom de la fenèstra sorgissenta',\r
+       title: 'Ligam',\r
+       toAnchor: 'Ancòra',\r
+       toEmail: 'Corrièl',\r
+       toUrl: 'URL',\r
+       toolbar: 'Ligam',\r
+       type: 'Tipe de ligam',\r
+       unlink: 'Suprimir lo ligam',\r
+       upload: 'Mandar'\r
+} );\r
index f37f8566d939bdc8cc213a625841da0db27f3ee1..41858d385b869fc1b32c39a03f54f7b93245a489 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'pl', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'pl', {
        anchorName: 'Wg nazwy',\r
        charset: 'Kodowanie znaków obiektu docelowego',\r
        cssClasses: 'Nazwa klasy CSS',\r
+       download: 'Wymuś pobieranie',\r
+       displayText: 'Wyświetlany tekst',\r
        emailAddress: 'Adres e-mail',\r
        emailBody: 'Treść',\r
        emailSubject: 'Temat',\r
index 04136f7d4aa9079f9455ef23ccfb160da6c0caa7..0c43149bae7d4e6c7ff2a2aac0f960bb62c42ce2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'pt-br', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'pt-br', {
        anchorName: 'Nome da âncora',\r
        charset: 'Charset do Link',\r
        cssClasses: 'Classe de CSS',\r
+       download: 'Forçar Download',\r
+       displayText: 'Exibir Texto',\r
        emailAddress: 'Endereço E-Mail',\r
        emailBody: 'Corpo da Mensagem',\r
        emailSubject: 'Assunto da Mensagem',\r
index cd317343995cdb7f46a45a4e1bba68a1fe2ec80c..5f45548e9f6372df9789d1b7c53d1a092d857658 100644 (file)
@@ -1,65 +1,67 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'pt', {\r
-       acccessKey: 'Chave de Acesso',\r
+       acccessKey: 'Chave de acesso',\r
        advanced: 'Avançado',\r
-       advisoryContentType: 'Tipo de Conteúdo',\r
+       advisoryContentType: 'Tipo de conteúdo',\r
        advisoryTitle: 'Título',\r
        anchor: {\r
-               toolbar: ' Inserir/Editar Ã\82ncora',\r
-               menu: 'Propriedades da Ã\82ncora',\r
-               title: 'Propriedades da Ã\82ncora',\r
-               name: 'Nome da Ã\82ncora',\r
+               toolbar: ' Inserir/Editar Ã¢ncora',\r
+               menu: 'Propriedades da Ã¢ncora',\r
+               title: 'Propriedades da Ã¢ncora',\r
+               name: 'Nome da Ã¢ncora',\r
                errorName: 'Por favor, introduza o nome da âncora',\r
-               remove: 'Remove Anchor'\r
+               remove: 'Remover âncora'\r
        },\r
-       anchorId: 'Por ID de elemento',\r
+       anchorId: 'Por ID do elemento',\r
        anchorName: 'Por Nome de Referência',\r
        charset: 'Fonte de caracteres vinculado',\r
-       cssClasses: 'Classes de Estilo de Folhas Classes',\r
-       emailAddress: 'Endereço de E-Mail',\r
-       emailBody: 'Corpo da Mensagem',\r
-       emailSubject: 'Título de Mensagem',\r
+       cssClasses: 'Classes de Estilo',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Mostrar texto',\r
+       emailAddress: 'Endereço de email',\r
+       emailBody: 'Corpo da mensagem',\r
+       emailSubject: 'Título de mensagem',\r
        id: 'ID',\r
-       info: 'Informação de Hiperligação',\r
-       langCode: 'Orientação de idioma',\r
+       info: 'Informação da hiperligação',\r
+       langCode: 'Código de idioma',\r
        langDir: 'Orientação de idioma',\r
-       langDirLTR: 'Esquerda à Direita (LTR)',\r
-       langDirRTL: 'Direita a Esquerda (RTL)',\r
-       menu: 'Editar Hiperligação',\r
+       langDirLTR: 'Esquerda para a Direita (EPD)',\r
+       langDirRTL: 'Direita para a Esquerda (DPE)',\r
+       menu: 'Editar hiperligação',\r
        name: 'Nome',\r
-       noAnchors: '(Não há referências disponíveis no documento)',\r
-       noEmail: 'Por favor introduza o endereço de e-mail',\r
-       noUrl: 'Por favor introduza a hiperligação URL',\r
+       noAnchors: '(Não existem âncoras no documento)',\r
+       noEmail: 'Por favor, escreva o endereço de email',\r
+       noUrl: 'Por favor, introduza o endereço URL',\r
        other: '<outro>',\r
        popupDependent: 'Dependente (Netscape)',\r
-       popupFeatures: 'Características de Janela de Popup',\r
-       popupFullScreen: 'Janela Completa (IE)',\r
-       popupLeft: 'Posição Esquerda',\r
+       popupFeatures: 'Características de janela flutuante',\r
+       popupFullScreen: 'Janela completa (IE)',\r
+       popupLeft: 'Posição esquerda',\r
        popupLocationBar: 'Barra de localização',\r
-       popupMenuBar: 'Barra de Menu',\r
+       popupMenuBar: 'Barra de menu',\r
        popupResizable: 'Redimensionável',\r
        popupScrollBars: 'Barras de deslocamento',\r
-       popupStatusBar: 'Barra de Estado',\r
+       popupStatusBar: 'Barra de estado',\r
        popupToolbar: 'Barra de ferramentas',\r
-       popupTop: 'Posição Direita',\r
+       popupTop: 'Posição topo',\r
        rel: 'Relação',\r
-       selectAnchor: 'Seleccionar una referência',\r
+       selectAnchor: 'Selecionar âncora',\r
        styles: 'Estilo',\r
        tabIndex: 'Índice de tabulação',\r
        target: 'Alvo',\r
        targetFrame: '<frame>',\r
-       targetFrameName: 'Nome do Frame Destino',\r
+       targetFrameName: 'Nome da janela de destino',\r
        targetPopup: '<janela de popup>',\r
-       targetPopupName: 'Nome da Janela de Popup',\r
+       targetPopupName: 'Nome da janela flutuante',\r
        title: 'Hiperligação',\r
-       toAnchor: 'Referência a esta página',\r
+       toAnchor: 'Ligar a âncora no texto',\r
        toEmail: 'Email',\r
        toUrl: 'URL',\r
-       toolbar: 'Inserir/Editar Hiperligação',\r
-       type: 'Tipo de Hiperligação',\r
-       unlink: 'Eliminar Hiperligação',\r
+       toolbar: 'Hiperligação',\r
+       type: 'Tipo de hiperligação',\r
+       unlink: 'Eliminar hiperligação',\r
        upload: 'Carregar'\r
 } );\r
index b561e5725238ae5da70d381f8f5a2dc085942dc6..a5d79a312fdcc4f7ce04ea449f5bee1da4b0adc4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ro', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ro', {
        anchorName: 'după numele ancorei',\r
        charset: 'Setul de caractere al resursei legate',\r
        cssClasses: 'Clasele cu stilul paginii (CSS)',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Adresă de e-mail',\r
        emailBody: 'Opțiuni Meniu Contextual',\r
        emailSubject: 'Subiectul mesajului',\r
index 5cb65752f3f1589243055e1b06a267ac44620a36..7bc00d552a7d7baef1fd87d7418778e0a5299a30 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ru', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ru', {
        anchorName: 'По имени',\r
        charset: 'Кодировка ресурса',\r
        cssClasses: 'Классы CSS',\r
+       download: 'Скачать как файл',\r
+       displayText: 'Отображаемый текст',\r
        emailAddress: 'Email адрес',\r
        emailBody: 'Текст сообщения',\r
        emailSubject: 'Тема сообщения',\r
index b8b4696917cfb5ef00db1ba023fda65d36cf5ae7..7ad9935d60ebd1c6ab0f65f5ac48a889059bd016 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'si', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'si', {
        anchorName: 'By Anchor Name', // MISSING\r
        charset: 'Linked Resource Charset', // MISSING\r
        cssClasses: 'විලාසපත්‍ර පන්තිය',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail Address', // MISSING\r
        emailBody: 'Message Body', // MISSING\r
        emailSubject: 'Message Subject', // MISSING\r
index d0186f3e3c1edd6e5237b3fd963925f611ea7253..6383fc9083f2a6656bbd89de32d2abcad5421cb0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sk', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sk', {
        anchorName: 'Podľa mena kotvy',\r
        charset: 'Priradená znaková sada',\r
        cssClasses: 'Triedy štýlu',\r
+       download: 'Vynútené sťahovanie.',\r
+       displayText: 'Zobraziť text',\r
        emailAddress: 'E-Mailová adresa',\r
        emailBody: 'Telo správy',\r
        emailSubject: 'Predmet správy',\r
index 392d7fe18cecb72d2b1b92196f10626b84738bcd..911203f7e55cc3fe359009c42d79e8cc5d774b42 100644 (file)
@@ -1,42 +1,44 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sl', {\r
-       acccessKey: 'Dostopno Geslo',\r
+       acccessKey: 'Tipka za dostop',\r
        advanced: 'Napredno',\r
-       advisoryContentType: 'Predlagani tip vsebine (content-type)',\r
+       advisoryContentType: 'Predlagana vrsta vsebine',\r
        advisoryTitle: 'Predlagani naslov',\r
        anchor: {\r
-               toolbar: 'Vstavi/uredi zaznamek',\r
-               menu: 'Lastnosti zaznamka',\r
-               title: 'Lastnosti zaznamka',\r
-               name: 'Ime zaznamka',\r
-               errorName: 'Prosim vnesite ime zaznamka',\r
-               remove: 'Remove Anchor'\r
+               toolbar: 'Sidro',\r
+               menu: 'Uredi sidro',\r
+               title: 'Lastnosti sidra',\r
+               name: 'Ime sidra',\r
+               errorName: 'Prosimo, vnesite ime sidra',\r
+               remove: 'Odstrani sidro'\r
        },\r
        anchorId: 'Po ID-ju elementa',\r
-       anchorName: 'Po imenu zaznamka',\r
-       charset: 'Kodna tabela povezanega vira',\r
-       cssClasses: 'Razred stilne predloge',\r
-       emailAddress: 'Elektronski naslov',\r
-       emailBody: 'Vsebina sporočila',\r
-       emailSubject: 'Predmet sporočila',\r
+       anchorName: 'Po imenu sidra',\r
+       charset: 'Nabor znakov povezanega vira',\r
+       cssClasses: 'Razredi slogovne predloge',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
+       emailAddress: 'E-poštni naslov',\r
+       emailBody: 'Telo sporočila',\r
+       emailSubject: 'Zadeva sporočila',\r
        id: 'Id',\r
        info: 'Podatki o povezavi',\r
-       langCode: 'Smer jezika',\r
+       langCode: 'Koda jezika',\r
        langDir: 'Smer jezika',\r
        langDirLTR: 'Od leve proti desni (LTR)',\r
        langDirRTL: 'Od desne proti levi (RTL)',\r
        menu: 'Uredi povezavo',\r
        name: 'Ime',\r
-       noAnchors: '(V tem dokumentu ni zaznamkov)',\r
-       noEmail: 'Vnesite elektronski naslov',\r
+       noAnchors: '(V tem dokumentu ni sider)',\r
+       noEmail: 'Vnesite e-poštni naslov',\r
        noUrl: 'Vnesite URL povezave',\r
-       other: '<drug>',\r
+       other: '<drugo>',\r
        popupDependent: 'Podokno (Netscape)',\r
        popupFeatures: 'Značilnosti pojavnega okna',\r
-       popupFullScreen: 'Celozaslonska slika (IE)',\r
+       popupFullScreen: 'Celozaslonsko (IE)',\r
        popupLeft: 'Lega levo',\r
        popupLocationBar: 'Naslovna vrstica',\r
        popupMenuBar: 'Menijska vrstica',\r
@@ -46,7 +48,7 @@ CKEDITOR.plugins.setLang( 'link', 'sl', {
        popupToolbar: 'Orodna vrstica',\r
        popupTop: 'Lega na vrhu',\r
        rel: 'Odnos',\r
-       selectAnchor: 'Izberi zaznamek',\r
+       selectAnchor: 'Izberite sidro',\r
        styles: 'Slog',\r
        tabIndex: 'Številka tabulatorja',\r
        target: 'Cilj',\r
@@ -55,11 +57,11 @@ CKEDITOR.plugins.setLang( 'link', 'sl', {
        targetPopup: '<pojavno okno>',\r
        targetPopupName: 'Ime pojavnega okna',\r
        title: 'Povezava',\r
-       toAnchor: 'Zaznamek na tej strani',\r
-       toEmail: 'Elektronski naslov',\r
+       toAnchor: 'Sidro na tej strani',\r
+       toEmail: 'E-pošta',\r
        toUrl: 'URL',\r
        toolbar: 'Vstavi/uredi povezavo',\r
        type: 'Vrsta povezave',\r
        unlink: 'Odstrani povezavo',\r
-       upload: 'Prenesi'\r
+       upload: 'Naloži'\r
 } );\r
index 33692f17edd299fe83a24416f723845f11714e9e..83b2fb7412a3152d21e6f753ea233e65c9c77c38 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sq', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sq', {
        anchorName: 'Sipas Emrit të Spirancës',\r
        charset: 'Seti i Karaktereve të Burimeve të Nëdlidhura',\r
        cssClasses: 'Klasa stili CSS',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Posta Elektronike',\r
        emailBody: 'Trupi i Porosisë',\r
        emailSubject: 'Titulli i Porosisë',\r
index 592f05a10c76965c007a9c3e4f95302de75098de..8f6f6a7a9b8797e138a631134b32d69a8a1ef78f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sr-latn', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sr-latn', {
        anchorName: 'Po nazivu sidra',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet klase',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'E-Mail adresa',\r
        emailBody: 'Sadržaj poruke',\r
        emailSubject: 'Naslov',\r
index 6d5055b7bb13e1df9143c35c8e93279d13ad4b3c..18689da11c116f302fe373b0469e954ab39736e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sr', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sr', {
        anchorName: 'По називу сидра',\r
        charset: 'Linked Resource Charset',\r
        cssClasses: 'Stylesheet класе',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Адреса електронске поште',\r
        emailBody: 'Садржај поруке',\r
        emailSubject: 'Наслов',\r
index 30dc5b026fd285b3fde14fce91b831a71a0c7d01..bc9f4c2d9a723df75f1d4deac0e56a6bae0fedff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'sv', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'sv', {
        anchorName: 'Efter ankarnamn',\r
        charset: 'Teckenuppställning',\r
        cssClasses: 'Stilmall',\r
+       download: 'Tvinga nerladdning',\r
+       displayText: 'Visningstext',\r
        emailAddress: 'E-postadress',\r
        emailBody: 'Innehåll',\r
        emailSubject: 'Ämne',\r
@@ -40,7 +42,7 @@ CKEDITOR.plugins.setLang( 'link', 'sv', {
        popupLeft: 'Position från vänster',\r
        popupLocationBar: 'Adressfält',\r
        popupMenuBar: 'Menyfält',\r
-       popupResizable: 'Resizable', // MISSING\r
+       popupResizable: 'Skalbart',\r
        popupScrollBars: 'Scrolllista',\r
        popupStatusBar: 'Statusfält',\r
        popupToolbar: 'Verktygsfält',\r
index d49dbb3277993522b8eb490c7c4045d68c95356c..593838d3384f020a8515ef7486ad375bc1861888 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'th', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'th', {
        anchorName: 'ชื่อ',\r
        charset: 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',\r
        cssClasses: 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'อีเมล์ (E-Mail)',\r
        emailBody: 'ข้อความ',\r
        emailSubject: 'หัวเรื่อง',\r
index ce7b7264e32f0161033cd733b5c52ad47b2daca0..424ad7b31d1a4670e4fb9d9b260fbdd2b86eb470 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'tr', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'tr', {
        anchorName: 'Bağlantı Adı ile',\r
        charset: 'Bağlı Kaynak Karakter Gurubu',\r
        cssClasses: 'Biçem Sayfası Sınıfları',\r
+       download: 'İndirmeye Zorla',\r
+       displayText: 'Gösterim Metni',\r
        emailAddress: 'E-Posta Adresi',\r
        emailBody: 'İleti Gövdesi',\r
        emailSubject: 'İleti Konusu',\r
index 4f2d0775c70917074bf3eda6eee5a52ff2b2d81c..25bd35497d07e7eebbe72a0164c6b532b8d32aad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'tt', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'tt', {
        anchorName: 'Якорь исеме буенча',\r
        charset: 'Linked Resource Charset', // MISSING\r
        cssClasses: 'Стильләр класслары',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Электрон почта адресы',\r
        emailBody: 'Хат эчтәлеге',\r
        emailSubject: 'Хат темасы',\r
index 0d81c2793a654af8b43d0876c1cb1e92bc0be93f..3cf75b469347e23a90c2932712fe942cd153852d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'ug', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'ug', {
        anchorName: 'لەڭگەرلىك نۇقتا ئاتى بويىچە',\r
        charset: 'ھەرپ كودلىنىشى',\r
        cssClasses: 'ئۇسلۇب خىلى ئاتى',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'ئادرېس',\r
        emailBody: 'مەزمۇن',\r
        emailSubject: 'ماۋزۇ',\r
index 655bdae566ba0dfd1f2054c5da34bb5076c8b0e5..8322d86dbbf5d0b57c009a97bc01d850ed92c2d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'uk', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'uk', {
        anchorName: 'За ім\'ям елементу',\r
        charset: 'Кодування',\r
        cssClasses: 'Клас CSS',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Адреса ел. пошти',\r
        emailBody: 'Тіло повідомлення',\r
        emailSubject: 'Тема листа',\r
index 676910811c8e86f66a47a161f282b8bc8d733eb7..d78012d729abe11d03186f4f8809fed89c9ecbc8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'vi', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'vi', {
        anchorName: 'Theo tên điểm neo',\r
        charset: 'Bảng mã của tài nguyên được liên kết đến',\r
        cssClasses: 'Lớp Stylesheet',\r
+       download: 'Force Download', // MISSING\r
+       displayText: 'Display Text', // MISSING\r
        emailAddress: 'Thư điện tử',\r
        emailBody: 'Nội dung thông điệp',\r
        emailSubject: 'Tiêu đề thông điệp',\r
index af30dd889141cd3a860b5956a8dccd1a6e196fd6..6da9e961689abc3af42ad825cb93a9b0c28f42cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'zh-cn', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'zh-cn', {
        anchorName: '按锚点名称',\r
        charset: '字符编码',\r
        cssClasses: '样式类名称',\r
+       download: '强制下载',\r
+       displayText: '显示文本',\r
        emailAddress: '地址',\r
        emailBody: '内容',\r
        emailSubject: '主题',\r
index 4dfa7cffe549811240a5f47b01ee172d2109a083..a2cee620b90a00f2a13215e05805e920b8c2db0c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'link', 'zh', {\r
@@ -19,6 +19,8 @@ CKEDITOR.plugins.setLang( 'link', 'zh', {
        anchorName: '依錨點名稱',\r
        charset: '連結資源的字元集',\r
        cssClasses: '樣式表類別',\r
+       download: '強制下載',\r
+       displayText: '顯示文字',\r
        emailAddress: '電子郵件地址',\r
        emailBody: '郵件本文',\r
        emailSubject: '郵件主旨',\r
index db11376adbc163e9a62f712af30920afa2f6fcac..120097f7c14f2ea70d30ccdbd1599405299f13f8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -9,7 +9,7 @@
        CKEDITOR.plugins.add( 'link', {\r
                requires: 'dialog,fakeobjects',\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
@@ -52,7 +52,7 @@
                                required = 'a[href]';\r
 \r
                        if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) )\r
-                               allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)' );\r
+                               allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' );\r
                        if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) )\r
                                allowed = allowed.replace( ']', ',target,onclick]' );\r
 \r
                        CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' );\r
 \r
                        editor.on( 'doubleclick', function( evt ) {\r
-                               var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element;\r
+                               // If the link has descendants and the last part of it is also a part of a word partially\r
+                               // unlinked, clicked element may be a descendant of the link, not the link itself (http://dev.ckeditor.com/ticket/11956).\r
+                               // The evt.data.element.getAscendant( 'img', 1 ) condition allows opening anchor dialog if the anchor is empty (#501).\r
+                               var element = evt.data.element.getAscendant( { a: 1, img: 1 }, true );\r
 \r
-                               if ( !element.isReadOnly() ) {\r
+                               if ( element && !element.isReadOnly() ) {\r
                                        if ( element.is( 'a' ) ) {\r
                                                evt.data.dialog = ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ? 'anchor' : 'link';\r
 \r
 \r
                        // If event was cancelled, link passed in event data will not be selected.\r
                        editor.on( 'doubleclick', function( evt ) {\r
-                               // Make sure both links and anchors are selected (#11822).\r
+                               // Make sure both links and anchors are selected (http://dev.ckeditor.com/ticket/11822).\r
                                if ( evt.data.dialog in { link: 1, anchor: 1 } && evt.data.link )\r
                                        editor.getSelection().selectElement( evt.data.link );\r
                        }, null, null, 20 );\r
                 *\r
                 * @since 3.2.1\r
                 * @param {CKEDITOR.editor} editor\r
+                * @param {Boolean} [returnMultiple=false] Indicates whether the function should return only the first selected link or all of them.\r
+                * @returns {CKEDITOR.dom.element/CKEDITOR.dom.element[]/null} A single link element or an array of link\r
+                * elements relevant to the current selection.\r
                 */\r
-               getSelectedLink: function( editor ) {\r
-                       var selection = editor.getSelection();\r
-                       var selectedElement = selection.getSelectedElement();\r
-                       if ( selectedElement && selectedElement.is( 'a' ) )\r
+               getSelectedLink: function( editor, returnMultiple ) {\r
+                       var selection = editor.getSelection(),\r
+                               selectedElement = selection.getSelectedElement(),\r
+                               ranges = selection.getRanges(),\r
+                               links = [],\r
+                               link,\r
+                               range,\r
+                               i;\r
+\r
+                       if ( !returnMultiple && selectedElement && selectedElement.is( 'a' ) ) {\r
                                return selectedElement;\r
+                       }\r
+\r
+                       for ( i = 0; i < ranges.length; i++ ) {\r
+                               range = selection.getRanges()[ i ];\r
 \r
-                       var range = selection.getRanges()[ 0 ];\r
+                               // Skip bogus to cover cases of multiple selection inside tables (#tp2245).\r
+                               range.shrink( CKEDITOR.SHRINK_TEXT, false, { skipBogus: true } );\r
+                               link = editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );\r
 \r
-                       if ( range ) {\r
-                               range.shrink( CKEDITOR.SHRINK_TEXT );\r
-                               return editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );\r
+                               if ( link && returnMultiple ) {\r
+                                       links.push( link );\r
+                               } else if ( link ) {\r
+                                       return link;\r
+                               }\r
                        }\r
-                       return null;\r
+\r
+                       return returnMultiple ? links : null;\r
                },\r
 \r
                /**\r
                        var editable = editor.editable(),\r
 \r
                                // The scope of search for anchors is the entire document for inline editors\r
-                               // and editor's editable for classic editor/divarea (#11359).\r
+                               // and editor's editable for classic editor/divarea (http://dev.ckeditor.com/ticket/11359).\r
                                scope = ( editable.isInline() && !editor.plugins.divarea ) ? editor.document : editable,\r
 \r
                                links = scope.getElementsByTag( 'a' ),\r
                fakeAnchor: true,\r
 \r
                /**\r
-                * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of #7783.\r
+                * For browsers that do not support CSS3 `a[name]:empty()`. Note that IE9 is included because of http://dev.ckeditor.com/ticket/7783.\r
                 *\r
                 * @readonly\r
                 * @deprecated 4.3.3 It is set to `false` in every browser.\r
                        if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) ) {\r
                                if ( emailProtection == 'encode' ) {\r
                                        href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) {\r
-                                               // Without it 'undefined' is appended to e-mails without subject and body (#9192).\r
+                                               // Without it 'undefined' is appended to e-mails without subject and body (http://dev.ckeditor.com/ticket/9192).\r
                                                rest = rest || '';\r
 \r
                                                return 'mailto:' +\r
 \r
                                                var featureMatch;\r
                                                while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) {\r
-                                                       // Some values should remain numbers (#7300)\r
+                                                       // Some values should remain numbers (http://dev.ckeditor.com/ticket/7300)\r
                                                        if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height: 1, width: 1, top: 1, left: 1 } ) )\r
                                                                retval.target[ featureMatch[ 1 ] ] = true;\r
                                                        else if ( isFinite( featureMatch[ 2 ] ) )\r
                                        };\r
                                }\r
 \r
+                               var download = element.getAttribute( 'download' );\r
+                               if ( download !== null ) {\r
+                                       retval.download = true;\r
+                               }\r
+\r
                                var advanced = {};\r
 \r
                                for ( var a in advAttrNames ) {\r
                                }\r
                        }\r
 \r
+                       // Force download attribute.\r
+                       if ( data.download ) {\r
+                               set.download = '';\r
+                       }\r
+\r
                        // Advanced attributes.\r
                        if ( data.advanced ) {\r
                                for ( var a in advAttrNames ) {\r
                                        set[ 'data-cke-saved-name' ] = set.name;\r
                        }\r
 \r
-                       // Browser need the "href" fro copy/paste link to work. (#6641)\r
+                       // Browser need the "href" fro copy/paste link to work. (http://dev.ckeditor.com/ticket/6641)\r
                        if ( set[ 'data-cke-saved-href' ] )\r
                                set.href = set[ 'data-cke-saved-href' ];\r
 \r
                                target: 1,\r
                                onclick: 1,\r
                                'data-cke-pa-onclick': 1,\r
-                               'data-cke-saved-name': 1\r
+                               'data-cke-saved-name': 1,\r
+                               'download': 1\r
                        };\r
 \r
                        if ( data.advanced )\r
                                set: set,\r
                                removed: CKEDITOR.tools.objectKeys( removed )\r
                        };\r
+               },\r
+\r
+\r
+               /**\r
+                * Determines whether an element should have a "Display Text" field in the Link dialog.\r
+                *\r
+                * @since 4.5.11\r
+                * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection\r
+                * is made.\r
+                * @param {CKEDITOR.editor} editor The editor instance for which the check is performed.\r
+                * @returns {Boolean}\r
+                */\r
+               showDisplayTextForElement: function( element, editor ) {\r
+                       var undesiredElements = {\r
+                                       img: 1,\r
+                                       table: 1,\r
+                                       tbody: 1,\r
+                                       thead: 1,\r
+                                       tfoot: 1,\r
+                                       input: 1,\r
+                                       select: 1,\r
+                                       textarea: 1\r
+                               },\r
+                               selection = editor.getSelection();\r
+\r
+                       // Widget duck typing, we don't want to show display text for widgets.\r
+                       if ( editor.widgets && editor.widgets.focused ) {\r
+                               return false;\r
+                       }\r
+\r
+                       if ( selection && selection.getRanges().length > 1 ) {\r
+                               return false;\r
+                       }\r
+\r
+                       return !element || !element.getName || !element.is( undesiredElements );\r
                }\r
        };\r
 \r
        CKEDITOR.unlinkCommand = function() {};\r
        CKEDITOR.unlinkCommand.prototype = {\r
                exec: function( editor ) {\r
+                       // IE/Edge removes link from selection while executing "unlink" command when cursor\r
+                       // is right before/after link's text. Therefore whole link must be selected and the\r
+                       // position of cursor must be restored to its initial state after unlinking. (http://dev.ckeditor.com/ticket/13062)\r
+                       if ( CKEDITOR.env.ie ) {\r
+                               var range = editor.getSelection().getRanges()[ 0 ],\r
+                                       link = ( range.getPreviousEditableNode() && range.getPreviousEditableNode().getAscendant( 'a', true ) ) ||\r
+                                                       ( range.getNextEditableNode() && range.getNextEditableNode().getAscendant( 'a', true ) ),\r
+                                       bookmark;\r
+\r
+                               if ( range.collapsed && link ) {\r
+                                       bookmark = range.createBookmark();\r
+                                       range.selectNodeContents( link );\r
+                                       range.select();\r
+                               }\r
+                       }\r
+\r
                        var style = new CKEDITOR.style( { element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 } );\r
                        editor.removeStyle( style );\r
+\r
+                       if ( bookmark ) {\r
+                               range.moveToBookmark( bookmark );\r
+                               range.select();\r
+                       }\r
                },\r
 \r
                refresh: function( editor, path ) {\r
 \r
                contextSensitive: 1,\r
                startDisabled: 1,\r
-               requiredContent: 'a[href]'\r
+               requiredContent: 'a[href]',\r
+               editorFocus: 1\r
        };\r
 \r
        CKEDITOR.removeAnchorCommand = function() {};\r
index 766814a9edaf811f8a4d735c2f900dac417a1b91..2fed6b534d873c4a54b7d694a107631faeaac9ab 100644 (file)
Binary files a/sources/plugins/list/icons/bulletedlist-rtl.png and b/sources/plugins/list/icons/bulletedlist-rtl.png differ
index e57ec7a5a6c432d9491094fedcb0119db333429c..8d33138cbdd801e3acc23c30b8dc5932ce13e6a8 100644 (file)
Binary files a/sources/plugins/list/icons/bulletedlist.png and b/sources/plugins/list/icons/bulletedlist.png differ
index 50e31560fb8bb2a2629375e7d05c09bd2cfa8029..7e08fb322f5c2bb0b63f1a31e207edbb36dc1274 100644 (file)
Binary files a/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png and b/sources/plugins/list/icons/hidpi/bulletedlist-rtl.png differ
index 00f84d0d618bafc56f7e972a65b226fc92adf1a2..796923f015a6b3198d0cf81afae669afa45df49e 100644 (file)
Binary files a/sources/plugins/list/icons/hidpi/bulletedlist.png and b/sources/plugins/list/icons/hidpi/bulletedlist.png differ
index 1dff87d21ef52e21c4de3815ef76d2b928817463..2ece27245f566d21b076370a12fdcb041991cbdd 100644 (file)
Binary files a/sources/plugins/list/icons/hidpi/numberedlist-rtl.png and b/sources/plugins/list/icons/hidpi/numberedlist-rtl.png differ
index c20b88f4efbf51e1f2a2f36252db5038b4821b33..20fe00329b08678ba055c9c3dff98d4422ebff86 100644 (file)
Binary files a/sources/plugins/list/icons/hidpi/numberedlist.png and b/sources/plugins/list/icons/hidpi/numberedlist.png differ
index 2c3985865a419566a587d12b2523ffc595e5a105..3c62d8d6fc26a9309acfc4688c5c40eed0ed0148 100644 (file)
Binary files a/sources/plugins/list/icons/numberedlist-rtl.png and b/sources/plugins/list/icons/numberedlist-rtl.png differ
index f509a85b56a20f5925a8c2f3e0ab650f761a8b4d..d47e0d571e1c2cdbf24d4e6f018ccf2ce20dc089 100644 (file)
Binary files a/sources/plugins/list/icons/numberedlist.png and b/sources/plugins/list/icons/numberedlist.png differ
index 08284ee7d048ed359e81950123118a9ef167cfd6..6b92ff6544a3281372d84dc226269550b6a138d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'af', {\r
index 4166c770f55b8619a21b29da87d76e7e45648686..a7a7de77a3c2f78c8f0f6e69f74f6d5ee9e99274 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ar', {\r
diff --git a/sources/plugins/list/lang/az.js b/sources/plugins/list/lang/az.js
new file mode 100644 (file)
index 0000000..5d4e513
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'az', {\r
+       bulletedlist: 'Markerlənmiş siyahını başlat/sil',\r
+       numberedlist: 'Nömrələnmiş siyahını başlat/sil'\r
+} );\r
index 919cb64fceb09e8b70146b7564dd84a823ea4437..6ac7ab61fe7aa3359bf2134ad4e23d9a4a728085 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'bg', {\r
index 3b0d4d96e86d61956c7ec510d9cc7da20a5752ad..cf6a85a7d4bd7f5060bd7c82d7eb40f2ca3d4551 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'bn', {\r
-       bulletedlist: 'বুলেট লিস্ট লেবেল',\r
+       bulletedlist: 'বুলেটেড তালিকা প্রবেশ/অপসারন করি',\r
        numberedlist: 'সাংখ্যিক লিস্টের লেবেল'\r
 } );\r
index d32464e10b0416a1c4754747e833ebf4ecba3405..76877b5bc3d388c5bebaf965f87b299ff839f812 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'bs', {\r
index 10df0a8486567d1808c27d07ef5831c0fd38f347..408cf534b258f0a43bd7731545e857b1dbf3d91f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ca', {\r
index 8df6494d5db77b7d3fb23145889dd1fc2aa7c85d..e04b94d19624bd8adbbc78e3ff824fd02ae6c220 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'cs', {\r
index b8fbdd1cad4a03917c37e80d8d579057cce918fc..c786d4bafeb1a0772689433b06b47771709768f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'cy', {\r
index 9a54f9f3e6eb0765ff1ce64af4e43f631b44ccb2..5c90ec97f0c49fc668204c9133b329f8994cbaef 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'da', {\r
index a7566fc0851c57e46d03791931e5ca0927706a0b..7d72503a7c83aa23333d9c980f5b6e0898dde542 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'de-ch', {\r
index 0ad08ae8167fe2c598e9300dc37f4341405854b3..ef4b5f2a495fa9ec27998cb7a624f4d1915f35b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'de', {\r
index 248f10bfde73b9db23ebd63529af65a97fa3cc14..feeebac3232ec2d7938d00b74389075b4ff324fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'el', {\r
index 3aa94b98aea18c81d27ce9a5384485ca24a24dc3..d3bbc2bfebccacc64db54d03dc694cfb947e4904 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'en-au', {\r
index 8eee06d0413f5807769799272ba8108b8b55359e..80be02f7560290f6179f119944cea56045d1c9d5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'en-ca', {\r
index 7acd42aceda9fa0488d6d0eb6b28399418d326ea..07db96c57531f79f3e4bbd2ed155fc41878c6a4e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'en-gb', {\r
index e88b212dc434ada17db367227ea3f4dc91a7c06c..0bdc852a523c5221f7577eb2339ca875fc44f386 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'en', {\r
index 8b7ead06cf544074628c5b5c225a3833f6c45cff..9242615489caea0d4d7f7ab977f06d2e69ac1125 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'eo', {\r
diff --git a/sources/plugins/list/lang/es-mx.js b/sources/plugins/list/lang/es-mx.js
new file mode 100644 (file)
index 0000000..5e50fcb
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'es-mx', {\r
+       bulletedlist: 'Insertar/Remover Lista con viñetas',\r
+       numberedlist: 'Insertar/Remover Lista numerada'\r
+} );\r
index f3c94a1d4f2174211acbb4d634f49eef17ee87b3..37f19043a0d1142f91b419ff41460a88ad243c47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'es', {\r
index fcfe125f2a45e5c66db5871b109dc7420b18ef41..498c8a59e29725e24e1c03d847b889ed04f25a09 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'et', {\r
index 7b96e148297ad031a853abb5a794f527223ed7ea..254793d04861d6c48ad9e07daa1b368a6e29485c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'eu', {\r
index 43d91ede5eb88d8ce87b08af99877eb4c00b47a5..af3f9ddff52df0a5789d5bd7319592c7cc5c0175 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'fa', {\r
index b80340ff4ecd80f01c8fab962bb4a1414d6df752..3874597ffaac427e7193f4b555a5520a3858b71e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'fi', {\r
index 812fa3f86b86858c07a97a247ec5356df44bce2b..416c6677840f43090dd3868fcb1d0ed3d9c5a123 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'fo', {\r
index f7bb322c6d618e23c64ae8d3f4d71ef9e6bbfbdb..e9eb2b7d9ff2b8d7d8c904d9d71e9dd6a49971cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'fr-ca', {\r
index f559f974144907120ea03f386deb6e034a36d1b2..cb49ec7ca34eab59dbc5473354d969ecd69d9442 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'fr', {\r
-       bulletedlist: 'Insérer/Supprimer la liste à puces',\r
-       numberedlist: 'Insérer/Supprimer la liste numérotée'\r
+       bulletedlist: 'Insérer/Supprimer une liste à puces',\r
+       numberedlist: 'Insérer/Supprimer une liste numérotée'\r
 } );\r
index d89d402ad354ca64c5b2e28fa67e858d098424b0..d020a69bdf35c618de4e21b9423a5fdbb06985bb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'gl', {\r
index 83812175b11837148b190591dcc21e647f99eee7..24a728f4fd8b157d8d02f63def3f3bdf5f9db3d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'gu', {\r
index 2c0f892f4eb5a2b2eb2fb702a25454a55b719ba5..118ddaeef23f944a0e8ceb875c3d98f6a605750d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'he', {\r
index 6bf594d630e03a7c7bc7c238190557dd8f43163d..a6bbca5447ced92c7e2b17e6f25adc16c68e9428 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'hi', {\r
index 5df25cc1c7f8511e52eda9144d9658e7633c4381..ceb0a4c9b7e7800dcae60da5360e733e0f9ff0eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'hr', {\r
index 39b40db41a292a64cf498448c7b45656291759e4..cf2fe96d15ba26c0ae9846cb0de7ffc64a93330c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'hu', {\r
index def3199ae71824469197c66caa9aa7d9211ba112..0b360dc63727150442989aa2a0bf118537940d08 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'id', {\r
index ea4ac73f14457c9e4f6a24317543747016959646..a23e87e412a6656e0b223fdfbe74892395475a64 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'is', {\r
index 1a3c53b6c5094f7efe86475cae7227e094d66fb2..611f6fb267719a25cc3f181583165505354a40c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'it', {\r
index 3d5b448f8c596cc16f0eacfb973bad8ab885991c..c2df2821b46b41e3942419254905fdd5f2f79898 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ja', {\r
index e5c1a3ba6165a420e21ae94ee65377af4eca7763..20531306835260ecdb3095aa0a3b6f69523efb18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ka', {\r
index 4df964663edfd20e6e48287201aabaf28a0cbfef..71c0c7ba9205c8fa354261d53c04acb937f2f2ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'km', {\r
index 73deb19cbb00c9b7cf68b41b908350cbde6f8a3d..48b4fd06836a47ba9731c9f4c4d57f1b704b2d45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ko', {\r
index 585373ffcc26e331c7991bb00e50289cece99b29..c5d0d9c6c50a9c52f69fe2dab75b63c793268e2b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ku', {\r
index 820bde920d283a42ed2bfbbc2030654698cdfd71..0eac62e0ae73e8aa2bd1cbbf5153ee66517eeebc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'lt', {\r
index 062effc2f589af675e0eb198065daec87c821400..6738856af9911536d2234c9e89dd2e0ba9510fe6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'lv', {\r
index 4fa9e4dfdacc7866367e6646c40395e8def748eb..4054ea272ac0062b632a33aad17671cabceb59d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'mk', {\r
index b12f230e010635f9a80e29d85569f01dab8331fa..ef9d4e0aa404aa87da0facce68674f70ffb5056b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'mn', {\r
index 1ebba10834d23aafecd1120599eb2434d0adec4b..6d51a33b12e9b0f30af25e552d1eca0e9f096bc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ms', {\r
index 1e96a9f9ce1ecba2a267925eb68af8aed8bee525..0e817c8c61bb52d2de9e062fe911a4017e84e324 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'nb', {\r
-       bulletedlist: 'Legg til / fjern punktmerket liste',\r
+       bulletedlist: 'Legg til / fjern punktliste',\r
        numberedlist: 'Legg til / fjern nummerert liste'\r
 } );\r
index 49aeedfeb7da21294d569c037f8fa8fe302ff3fb..65f71e9d53fa7c0edd8c05dc1da0ae53f46f2a32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'nl', {\r
index c2794c001546c5aee0ae01999d5fe6f9e4631fcc..dc129c5b0a748a962b964e5abc037f4c5317c1cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'no', {\r
diff --git a/sources/plugins/list/lang/oc.js b/sources/plugins/list/lang/oc.js
new file mode 100644 (file)
index 0000000..4705e9a
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'list', 'oc', {\r
+       bulletedlist: 'Inserir/Suprimir una lista amb de piuses',\r
+       numberedlist: 'Inserir/Suprimir una lista numerotada'\r
+} );\r
index c95238e23c338fceb8afa57e163069bb5716eb69..0a0e5526d93d604fe429a1c4be3c6f667312232a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'pl', {\r
index 47faf0c779ea760491182818f9add7f9522705d3..b0edd8e0f06b8699fa954bf025c65ae5ce36b0fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'pt-br', {\r
index 36c8be87d3c61f37839e60153c55e3bd76303c8a..52d43489a00be255395bd26117a5425bcda7c54d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'pt', {\r
index ae66ff3b9cb6c1ad96a52c1aa1d782c327bd1166..c229901bffd0a1360116c8fe3dac936c31a92d63 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ro', {\r
index 293ecbd0a7f138762e00e4e2404fac13879bd0e1..862fa787379e2de569bb77746ed263c813d6b002 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ru', {\r
index 02566bc01594ac8b1488ab46d2a3631826e6834b..de2fc4ddc01d85b840629bdfd00a07e156998a4d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'si', {\r
index 4621b1533c61abb9f6463cb3db61b80e4fd95600..11ca0ee10a1bc3c4e29a1ab3c9bc1ecbde098948 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sk', {\r
index 40c1d8d94f9d6ae492936a3c8b45f4f4888263ac..368f9f61707cd6a6f362ad8eba0c2dfcae66333b 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sl', {\r
-       bulletedlist: 'Označen seznam',\r
-       numberedlist: 'Oštevilčen seznam'\r
+       bulletedlist: 'Vstavi/odstrani neoštevilčen seznam',\r
+       numberedlist: 'Vstavi/odstrani oštevilčen seznam'\r
 } );\r
index d63dab0ce6a6eb9fc776c3ec2f45353617e48fe8..121b41edcb6fc1f5217e8b08b22b134d7240b313 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sq', {\r
index 990fd21d2cadabec70be7c551972c7ac3967463c..134aa6945379f1a41ccdc92f86ad9e6aa76a53eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sr-latn', {\r
index 5853621e1a458430c466aa5f8b1d25c3e3feb7d2..c54ca8af0913faeb2848f302a5dec233973f3473 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sr', {\r
index fa93ade5389f70172972147e532508e6d94e12bd..3a1279374384aa45d7979fc80490813ce13747c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'sv', {\r
index fa84203de709644858ad5052e78162e14cc55d92..8a477314352b7001909f6b7ddcc1fc829861cffe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'th', {\r
index 8e8d925bb73c37645e0141843610e65ef4421f62..976e479b725ada57c6eb031c8ada0225d7a8571c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'tr', {\r
index 2c5da846b693e336316fd30ee3d30c7d9f35d127..eb103ab074cf194e251e95b9463ed65893d02d55 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'tt', {\r
index 5323bee9c78cbadba19f6b3044f22b56540b98e1..442b92eb889db9d0c1ccad052ba86a0aa082a34e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'ug', {\r
index 5ee50a755b1f59f998077b879df7f44396aa829c..65a3e1d1f27c1e6e370b2fb89e9f49a5f8ce9c2d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'uk', {\r
index 506567ecd4cd7b6d3e364537dd041a7a1f60d698..e9e3acc91f039b3e58db40d8052d2b5745819901 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'vi', {\r
index 9eb185f7197bb83b95a0d34d42cf69cab50900ed..5e0408b468fe1989a6ab2ba722b925913e7f03f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'zh-cn', {\r
index ae02b93d51caeb87f6bd536757abdb351beb4d59..3d207d60cfd6edbf26142aabe1f8ffcbdb57cd9f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'list', 'zh', {\r
index 68b4f02e26415e303a076fe9e72ceb44233ccaef..73f5d0b5af5292134df3ce74ebaa84d8bf27ec69 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -60,7 +60,7 @@
                        for ( var i = 0, count = listNode.getChildCount(); i < count; i++ ) {\r
                                var listItem = listNode.getChild( i );\r
 \r
-                               // Fixing malformed nested lists by moving it into a previous list item. (#6236)\r
+                               // Fixing malformed nested lists by moving it into a previous list item. (http://dev.ckeditor.com/ticket/6236)\r
                                if ( listItem.type == CKEDITOR.NODE_ELEMENT && listItem.getName() in CKEDITOR.dtd.$list )\r
                                        CKEDITOR.plugins.list.listToArray( listItem, database, baseArray, baseIndentLevel + 1 );\r
 \r
                                                currentListItem.append( item.contents[ i ].clone( 1, 1 ) );\r
                                        currentIndex++;\r
                                } else if ( item.indent == Math.max( indentLevel, 0 ) + 1 ) {\r
-                                       // Maintain original direction (#6861).\r
+                                       // Maintain original direction (http://dev.ckeditor.com/ticket/6861).\r
                                        var currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),\r
                                                listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode, currDir != orgDir ? orgDir : null );\r
 \r
                                        // If the next block is an <li> with another list tree as the first\r
                                        // child, we'll need to append a filler (<br>/NBSP) or the list item\r
-                                       // wouldn't be editable. (#6724)\r
+                                       // wouldn't be editable. (http://dev.ckeditor.com/ticket/6724)\r
                                        if ( !currentListItem.getChildCount() && CKEDITOR.env.needsNbspFiller && doc.$.documentMode <= 7 )\r
                                                currentListItem.append( doc.createText( '\xa0' ) );\r
                                        currentListItem.append( listData.listNode );\r
                                contentBlock.appendTo( listItem );\r
                        else {\r
                                contentBlock.copyAttributes( listItem );\r
-                               // Remove direction attribute after it was merged into list root. (#7657)\r
+                               // Remove direction attribute after it was merged into list root. (http://dev.ckeditor.com/ticket/7657)\r
                                if ( listDir && contentBlock.getDirection() ) {\r
                                        listItem.removeStyle( 'direction' );\r
                                        listItem.removeAttribute( 'dir' );\r
 \r
                var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, groupObj.root.getAttribute( 'dir' ) );\r
 \r
-               // Compensate <br> before/after the list node if the surrounds are non-blocks.(#3836)\r
+               // Compensate <br> before/after the list node if the surrounds are non-blocks.(http://dev.ckeditor.com/ticket/3836)\r
                var docFragment = newList.listNode,\r
                        boundaryNode, siblingNode;\r
 \r
        // Checks wheather this block should be element preserved (not transformed to <li>) when creating list.\r
        function shouldPreserveBlock( block ) {\r
                return (\r
-                       // #5335\r
+                       // http://dev.ckeditor.com/ticket/5335\r
                        block.is( 'pre' ) ||\r
-                       // #5271 - this is a header.\r
+                       // http://dev.ckeditor.com/ticket/5271 - this is a header.\r
                        headerTagRegex.test( block.getName() ) ||\r
                        // 11083 - this is a non-editable element.\r
                        block.getAttribute( 'contenteditable' ) == 'false'\r
 \r
        var elementType = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT );\r
 \r
-       // Merge child nodes with direction preserved. (#7448)\r
+       // Merge child nodes with direction preserved. (http://dev.ckeditor.com/ticket/7448)\r
        function mergeChildren( from, into, refNode, forward ) {\r
                var child, itemDir;\r
                while ( ( child = from[ forward ? 'getLast' : 'getFirst' ]( elementType ) ) ) {\r
                                        selection.selectRanges( ranges );\r
                                }\r
                                // Maybe a single range there enclosing the whole list,\r
-                               // turn on the list state manually(#4129).\r
+                               // turn on the list state manually(http://dev.ckeditor.com/ticket/4129).\r
                                else {\r
                                        var range = ranges.length == 1 && ranges[ 0 ],\r
                                                enclosedNode = range && range.getEnclosedNode();\r
 \r
                                        // First, try to group by a list ancestor.\r
                                        for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- ) {\r
-                                               // Don't leak outside block limit (#3940).\r
+                                               // Don't leak outside block limit (http://dev.ckeditor.com/ticket/3940).\r
                                                if ( listNodeNames[ element.getName() ] && blockLimit.contains( element ) ) {\r
                                                        // If we've encountered a list inside a block limit\r
                                                        // The last group object of the block limit element should\r
                                                        // no longer be valid. Since paragraphs after the list\r
                                                        // should belong to a different group of paragraphs before\r
-                                                       // the list. (Bug #1309)\r
+                                                       // the list. (Bug http://dev.ckeditor.com/ticket/1309)\r
                                                        blockLimit.removeCustomData( 'list_group_object_' + index );\r
 \r
                                                        var groupObj = element.getCustomData( 'list_group_object' );\r
                function mergeSibling( rtl ) {\r
                        var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ]( nonEmpty );\r
                        if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT && sibling.is( listNode.getName() ) ) {\r
-                               // Move children order by merge direction.(#3820)\r
+                               // Move children order by merge direction.(http://dev.ckeditor.com/ticket/3820)\r
                                mergeChildren( listNode, sibling, null, !rtl );\r
 \r
                                listNode.remove();\r
                        nextPath = nextCursor.startPath();\r
                        nextBlock = nextPath.block;\r
 \r
-                       // Abort when nothing to be removed (#10890).\r
+                       // Abort when nothing to be removed (http://dev.ckeditor.com/ticket/10890).\r
                        if ( !nextBlock )\r
                                break;\r
 \r
                        nextBlock.remove();\r
                }\r
 \r
-               // Check if need to further merge with the list resides after the merged block. (#9080)\r
+               // Check if need to further merge with the list resides after the merged block. (http://dev.ckeditor.com/ticket/9080)\r
                var walkerRng = nextCursor.clone(), editable = editor.editable();\r
                walkerRng.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );\r
                var walker = new CKEDITOR.dom.walker( walkerRng );\r
 \r
        CKEDITOR.plugins.add( 'list', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'bulletedlist,bulletedlist-rtl,numberedlist,numberedlist-rtl', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
                                } );\r
                        }\r
 \r
-                       // Handled backspace/del key to join list items. (#8248,#9080)\r
+                       // Handled backspace/del key to join list items. (http://dev.ckeditor.com/ticket/8248,http://dev.ckeditor.com/ticket/9080)\r
                        editor.on( 'key', function( evt ) {\r
                                // Use getKey directly in order to ignore modifiers.\r
                                // Justification: http://dev.ckeditor.com/ticket/11861#comment:13\r
                                                                // Place cursor at the end of previous block.\r
                                                                cursor.moveToElementEditEnd( joinWith );\r
 \r
-                                                               // And then just before end of closest block element (#12729).\r
+                                                               // And then just before end of closest block element (http://dev.ckeditor.com/ticket/12729).\r
                                                                cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END );\r
                                                        }\r
                                                }\r
                                                }\r
                                                else {\r
                                                        var list = path.contains( listNodeNames );\r
-                                                       // Backspace pressed at the start of list outdents the first list item. (#9129)\r
+                                                       // Backspace pressed at the start of list outdents the first list item. (http://dev.ckeditor.com/ticket/9129)\r
                                                        if ( list && range.checkBoundaryOfElement( list, CKEDITOR.START ) ) {\r
                                                                li = list.getFirst( nonEmpty );\r
 \r
                                                                nextLine = range.clone();\r
                                                                nextLine.moveToElementEditStart( next );\r
 \r
-                                                               // #13409\r
+                                                               // http://dev.ckeditor.com/ticket/13409\r
                                                                // For the following case and similar\r
                                                                //\r
                                                                // <ul>\r
                                                                        }\r
                                                                }\r
 \r
-                                                               // Moving `cursor` and `next line` only when at the end literally (#12729).\r
+                                                               // Moving `cursor` and `next line` only when at the end literally (http://dev.ckeditor.com/ticket/12729).\r
                                                                if ( isAtEnd == 2 ) {\r
                                                                        cursor.moveToPosition( cursor.endPath().block, CKEDITOR.POSITION_BEFORE_END );\r
 \r
index e998167eb44095e5d6a344cea2f531344212b84e..100159a6180dbcf0c0d5edb549348d406f20aba8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -12,7 +12,7 @@ CKEDITOR.plugins.add( 'listblock', {
                                '<a id="{id}_option" _cke_focus=1 hidefocus=true' +\r
                                        ' title="{title}"' +\r
                                        ' href="javascript:void(\'{val}\')" ' +\r
-                                       ' {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;"' + // #188\r
+                                       ' {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;"' + // http://dev.ckeditor.com/ticket/188\r
                                                ' role="option">' +\r
                                        '{text}' +\r
                                '</a>' +\r
@@ -50,7 +50,7 @@ CKEDITOR.plugins.add( 'listblock', {
                                keys[ 38 ] = 'prev'; // ARROW-UP\r
                                keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB\r
                                keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE\r
-                               CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).\r
+                               CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041).\r
 \r
                                this._.pendingHtml = [];\r
                                this._.pendingList = [];\r
@@ -180,6 +180,14 @@ CKEDITOR.plugins.add( 'listblock', {
                                        this.onMark && this.onMark( item );\r
                                },\r
 \r
+                               markFirstDisplayed: function() {\r
+                                       var context = this;\r
+                                       this._.markFirstDisplayed( function() {\r
+                                               if ( !context.multiSelect )\r
+                                                       context.unmarkAll();\r
+                                       } );\r
+                               },\r
+\r
                                unmark: function( value ) {\r
                                        var doc = this.element.getDocument(),\r
                                                itemId = this._.items[ value ],\r
index c9f3430d55cf59e9a363603dd44af793f0de0275..4f8f39b0d7b2abb92f289868497a23dca54deb12 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 6e1f287ac29055af0679ce86e122e2ef89ca2f28..71ba760bd89975257c555d97afc4355a4dead252 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'af', {\r
index 39ba5b1cc4c9520b7ee69c35e84e91811bce76db..7d961df9a92f8bc722249527de9a07808f975e0f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ar', {\r
diff --git a/sources/plugins/liststyle/lang/az.js b/sources/plugins/liststyle/lang/az.js
new file mode 100644 (file)
index 0000000..73fc927
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'az', {\r
+       armenian: 'Erməni nömrələmə',\r
+       bulletedTitle: 'Markerlənmiş siyahının xüsusiyyətləri',\r
+       circle: 'Dəirəcik',\r
+       decimal: 'Rəqəm (1, 2, 3 və s.)',\r
+       decimalLeadingZero: 'Aparıcı sıfır olan rəqəm (01, 02, 03 və s.)',\r
+       disc: 'Disk',\r
+       georgian: 'Gürcü nömrələmə (an, ban, gan, və s.)',\r
+       lowerAlpha: 'Kiçik hərflər (a, b, c, d, e və s.)',\r
+       lowerGreek: 'Kiçik Yunan hərfləri (alfa, beta, qamma və s.)',\r
+       lowerRoman: 'Rum rəqəmləri (i, ii, iii, iv, v və s.)',\r
+       none: 'Yoxdur',\r
+       notset: '<seçilməmiş>',\r
+       numberedTitle: 'Nömrəli siyahının xüsusiyyətləri',\r
+       square: 'Dördbucaq',\r
+       start: 'Başlanğıc',\r
+       type: 'Növ',\r
+       upperAlpha: 'Böyük hərflər (a, b, c, d, e və s.)',\r
+       upperRoman: 'Böyük Rum rəqəmləri (I, II, III, IV, V və s.)',\r
+       validateStartNumber: 'Siyahının başlanğıc nömrəsi tam və müsbət rəqəm olmalıdır.'\r
+} );\r
index 99b3535c0491dbff14c7ebabdd25614ca96b6e81..a119fd4ccae22ab0863a359da5d67fd41b6e7bd2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'bg', {\r
index 67081fe08b318437c066d216431b810b477ca21a..f1b7bf36afba085c5ca98d0e27097173a241c94d 100644 (file)
@@ -1,9 +1,9 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'bn', {\r
-       armenian: 'Armenian numbering',\r
+       armenian: 'আর্মেনিয়ান সংখ্যাক্রমে বিন্যাস',\r
        bulletedTitle: 'Bulleted List Properties',\r
        circle: 'Circle',\r
        decimal: 'Decimal (1, 2, 3, etc.)',\r
index 1cf4a07fcea94d79837b3f8fe01234883bd31688..163d1fbdc15d7e7c8bd3ee89fb11ecfa4ae2a2cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'bs', {\r
index 4f99f3ca2c9731ba7e918d1d274e616dc2dd1555..8006ff8500671ee0bf85608fc3f1012ea70f172c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ca', {\r
index 9fa682d5ea1b2990ced26a9ff93fe434104447ce..c1e9a07fde0759ae31d66d95b9d9ecc8efdab924 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'cs', {\r
index d19bafb58366d735cda02ede0d2916ff7ecddd96..97902b58720470388071120eac45b29c9716b3fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'cy', {\r
index 3bbdfbf75539be6a0b74bbd1b3aaefdf30ea9348..27c47b5f3451e9bf1b305a446774518fef723ccf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'da', {\r
index 13bf8c9d6abc2a44b8fd82e5494bf9a39f1ebdd2..47d8634fcd1ab80a6413f7ed178e738be7cbbaf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'de-ch', {\r
index 5117015e28e2d3f904618998bb83eb72018ef3fb..cdbf0b3eee4ca02d87b3bd1c627584596942d13f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'de', {\r
index 69656940bef4b71dbe91bab9ba08b35a0da23e20..2bd7ce23a1a6cd1ff0af29dbc65c044f0ef4c948 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'el', {\r
index 2ad0e2818a622caf248634b17dfb6a86bdadbab4..af38b3e821b32c9605c3c94dc10049e707187663 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'en-au', {\r
index 55c674aae560915337d8bd185daf4c5043162a3e..ce76d82d87c4f625c032e3457efed51584cc9a69 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'en-ca', {\r
index 522112c43997b5212c2baa4962dd59a9c387fb07..7f671249510465ab5fd30a5e2a4e37b1822baf29 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'en-gb', {\r
index aebe65e93c7ada3f6ac64ec0922ddb5b5c4ca4b5..c41b7d78100fed47b7b769c99861f8902b429900 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'en', {\r
index 151e47e8b039f6b83897037e534ffc28d93bd5a8..b601e76140ed6deed248f89e8412aecd45e085dc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'eo', {\r
diff --git a/sources/plugins/liststyle/lang/es-mx.js b/sources/plugins/liststyle/lang/es-mx.js
new file mode 100644 (file)
index 0000000..56e6fa7
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'es-mx', {\r
+       armenian: 'Numeración armenia',\r
+       bulletedTitle: 'Propiedades de la lista con viñetas',\r
+       circle: 'Círculo',\r
+       decimal: 'Decimal (1, 2, 3, etc.)',\r
+       decimalLeadingZero: 'Decimal con cero (01, 02, 03, etc.)',\r
+       disc: 'Desc',\r
+       georgian: 'Numeración gregoriana (an, ban, gan, etc.)',\r
+       lowerAlpha: 'Alfabeto minúscula (a, b, c, d, e, etc.)',\r
+       lowerGreek: 'Griego minúscula (alpha, beta, gamma, etc.)',\r
+       lowerRoman: 'Romano minúscula (i, ii, iii, iv, v, etc.)',\r
+       none: 'Ninguno',\r
+       notset: '<not set>',\r
+       numberedTitle: 'Propiedades de la lista numerada',\r
+       square: 'Cuadrado',\r
+       start: 'Inicio',\r
+       type: 'Tipo',\r
+       upperAlpha: 'Abecedario mayúscula (A, B, C, D, E, etc.)',\r
+       upperRoman: 'Romanos mayúscula (I, II, III, IV, V, etc.)',\r
+       validateStartNumber: 'El número de inicio de la lista debe ser un número entero.'\r
+} );\r
index 67f5a0ec0a4e6c0b43ba004109ec219ea363b281..75d2920fc2d30bba5ac0475fb25db249e7f6b280 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'es', {\r
index 38273f2daca6a3650af6c915b31c1db9826a6d03..d2dfd5e55a403e77d481c4af462d4cbd8e5d129c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'et', {\r
index dca69fcfa051cc12b0d141ca009f740b62adb2fc..ef616e53435692b6bd5c3ae99dae190ba1f96eb4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'eu', {\r
index e5f3505f66bf680898ae4e5fbfd23c5078138e26..7a4517c4573a4d8cda8649c68cea331b05446230 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'fa', {\r
index 83eb3432427fa3c520598d71c7e95b4e40d27716..b0cf1b345e476fdceef99532a034a7c7f7f6ab95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'fi', {\r
index 537ec6f11c2beac994d0aeb8295280386599bf7c..922a85c97cb3a0cb8de6dbee986ecbf3339f47bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'fo', {\r
index fa78407cdd8536b3601a5465085e6224e0b99764..06c2af909d7ad62a7ea672771409b0ddaeb1c765 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'fr-ca', {\r
index af7b112c140bec6b5d4e1dce5e03d59a444ba673..ccb6944b228b46572d7eee9d3cf601a44ebbcd5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'fr', {\r
@@ -10,16 +10,16 @@ CKEDITOR.plugins.setLang( 'liststyle', 'fr', {
        decimalLeadingZero: 'Décimal précédé par un 0 (01, 02, 03, etc.)',\r
        disc: 'Disque',\r
        georgian: 'Numération géorgienne (an, ban, gan, etc.)',\r
-       lowerAlpha: 'Alphabétique minuscules (a, b, c, d, e, etc.)',\r
-       lowerGreek: 'Grec minuscule (alpha, beta, gamma, etc.)',\r
-       lowerRoman: 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',\r
+       lowerAlpha: 'Lettres minuscules (a, b, c, d, e, etc.)',\r
+       lowerGreek: 'Grec minuscule (alpha, bêta, gamma, etc.)',\r
+       lowerRoman: 'Chiffres romains minuscules (i, ii, iii, iv, v, etc.)',\r
        none: 'Aucun',\r
-       notset: '<Non défini>',\r
+       notset: '<indéfini>',\r
        numberedTitle: 'Propriétés de la liste numérotée',\r
        square: 'Carré',\r
        start: 'Début',\r
        type: 'Type',\r
-       upperAlpha: 'Alphabétique majuscules (A, B, C, D, E, etc.)',\r
-       upperRoman: 'Nombres romains majuscules (I, II, III, IV, V, etc.)',\r
+       upperAlpha: 'Lettres majuscules (A, B, C, D, E, etc.)',\r
+       upperRoman: 'Chiffres romains majuscules (I, II, III, IV, V, etc.)',\r
        validateStartNumber: 'Le premier élément de la liste doit être un nombre entier.'\r
 } );\r
index d3511ed620c45e15e4f27e7efd8f3265ad3567c0..eeb622d25f99cebf159b805e9c06130097d32f2b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'gl', {\r
index dc181409043673e4410d3b2dc358540bdffadf48..434f218dea47e1865109b416a2c860c0cb0e4681 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'gu', {\r
index 0ad2282099e40a783f5a018c82682dbabd75231f..93b61063898469088c645db8e03c8d97e89e6907 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'he', {\r
index 74333bd126a258155c4a509529e5a83cc1a5361d..0f1ae0393a436e5a4ce7ad0a255d4f97dbae9df4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'hi', {\r
index 6f16bc70b1af25cd39276da10f763229370975fe..8da2ff36f7add9e370baa70cd0b2e4aa759a94dd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'hr', {\r
index ca62ff79bb2dff1d7cc51a543e494a4620dda4bf..4e3d922acc520fe85809db4b01243e0040f78f2c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'hu', {\r
index d0a55240ec0ce68e2ceb3499eebe18c9ac9d8992..36ec1ec2cd80325e4d7a4c150637f2bbc73d62e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'id', {\r
index b6ad69f9abb41b6229a42fbf5f4e2ccb460aaed7..a05c5bc300e0b81c919e6308e0dd46862764d38e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'is', {\r
index 7d376a45e45b0b8cf5e2f7ebf8ee328d10e9fd28..6ef919d9efce3658852c6adb9a5fee6721814ba9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'it', {\r
index da735ab2165a5eba149a154186a5bf2b4b700547..e55dafc2421ff6b22c621cfbf741e76ad6d01e48 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ja', {\r
index 8adcd167ebdc4f5fd27992a5e579c6f033d89778..0ede82d10b1f84bc21634331751e2a9904b39e05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ka', {\r
index 63139311a8bca0fb9e323d502563cff9a31a539e..51d73651c1372d4cc273335682c8a97694b631e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'km', {\r
index f3f766925a1360467a12104694cfb7d4ca6c9bde..8b88e2d341c38b84cf61ce66a0a8842bb00b9541 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ko', {\r
index 3656befc9680154959c7a2db16500984e6e7568d..a3a7b4707c988a482d8f06c73adfe91678268da1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ku', {\r
index 444ee897b594a4c222a6135c0215caa6e88dace1..6b7c949a3aac46cb98261b7cfb5aff7eb44778b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'lt', {\r
index 62d55771ab13123205270111ba97753b0431d9b3..17b6da7db7b443d667e0a0b26da02c26e7e0b1ed 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'lv', {\r
index 0d0a5aa0f5a8737718e233976bcdb904ce04ceb3..dbb640b6b2d2433526d04cc204a74e8298e0f599 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'mk', {\r
index 6ce43d61b9b4e722728f431246353932b7eaaa9f..54e884cfe1b940f182d422bd1e1f5154f49e7127 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'mn', {\r
index e916f66f58951468b0494a823bae0e6b3857e90e..297c02cba3c56b3cda60d5bd1bc86fef13bfda42 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ms', {\r
index 7daf0c5ea0a1baea219cf190b0a9005f06b83ba3..0fe7859243700811abae40f06f0de7f45f82884f 100644 (file)
@@ -1,10 +1,10 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'nb', {\r
        armenian: 'Armensk nummerering',\r
-       bulletedTitle: 'Egenskaper for punktmerket liste',\r
+       bulletedTitle: 'Egenskaper for punktliste',\r
        circle: 'Sirkel',\r
        decimal: 'Tall (1, 2, 3, osv.)',\r
        decimalLeadingZero: 'Tall, med førstesiffer null (01, 02, 03, osv.)',\r
index 22eafc8421fc1bd564cae6597912450ac81b9704..88ea3f8655c84ddcdbf1e9f6f554c1f6635d3964 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'nl', {\r
index 6fe25f7f7133f55f6abfda4a17e918c5d8459d2a..26927e6e3c1a3c232c589889496b227805727f78 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'no', {\r
diff --git a/sources/plugins/liststyle/lang/oc.js b/sources/plugins/liststyle/lang/oc.js
new file mode 100644 (file)
index 0000000..eb64753
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'liststyle', 'oc', {\r
+       armenian: 'Numerotacion armènia',\r
+       bulletedTitle: 'Proprietats de la lista de piuses',\r
+       circle: 'Cercle',\r
+       decimal: 'Decimal (1, 2, 3, etc.)',\r
+       decimalLeadingZero: 'Decimal precedit per un 0 (01, 02, 03, etc.)',\r
+       disc: 'Disc',\r
+       georgian: 'Numeracion georgiana (an, ban, gan, etc.)',\r
+       lowerAlpha: 'Letras minusculas (a, b, c, d, e, etc.)',\r
+       lowerGreek: 'Grèc minuscula (alfa, bèta, gamma, etc.)',\r
+       lowerRoman: 'Chifras romanas minusculas (i, ii, iii, iv, v, etc.)',\r
+       none: 'Pas cap',\r
+       notset: '<indefinit>',\r
+       numberedTitle: 'Proprietats de la lista numerotada',\r
+       square: 'Carrat',\r
+       start: 'Començament',\r
+       type: 'Tipe',\r
+       upperAlpha: 'Letras majusculas (A, B, C, D, E, etc.)',\r
+       upperRoman: 'Chifras romanas majusculas (I, II, III, IV, V, etc.)',\r
+       validateStartNumber: 'Lo primièr element de la lista deu èsser un nombre entièr.'\r
+} );\r
index b119bf23266ae2189663de40ea25adb7a00abd8e..37d2cd703aa2c4ebfbe60126daa1ca3111350fe6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'pl', {\r
index 603f10ddaece1cf6468e1c3dc983983c30f93b50..c5f02965225d3d9e3e9b4a2c2223b07ab601be23 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'pt-br', {\r
index 1d8fd1f88468e8c495e78ccc49b41813338f3298..7dc1f2573a35fb87a78a7645f617424bd79cf1ad 100644 (file)
@@ -1,25 +1,25 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'pt', {\r
        armenian: 'Numeração armênia',\r
-       bulletedTitle: 'Bulleted List Properties',\r
+       bulletedTitle: 'Propriedades da lista não numerada',\r
        circle: 'Círculo',\r
        decimal: 'Decimal (1, 2, 3, etc.)',\r
-       decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',\r
+       decimalLeadingZero: 'Zero decimal à esquerda (01, 02, 03, etc.)',\r
        disc: 'Disco',\r
-       georgian: 'Georgian numbering (an, ban, gan, etc.)',\r
-       lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',\r
-       lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',\r
-       lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',\r
+       georgian: 'Numeração georgiana (an, ban, gan, etc.)',\r
+       lowerAlpha: 'Minúsculas (a, b, c, d, e, etc.)',\r
+       lowerGreek: 'Grego em minúsculas (alpha, beta, gamma, etc.)',\r
+       lowerRoman: 'Romano em minúsculas (i, ii, iii, iv, v, etc.)',\r
        none: 'Nenhum',\r
        notset: '<not set>',\r
        numberedTitle: 'Numbered List Properties',\r
        square: 'Quadrado',\r
        start: 'Iniciar',\r
        type: 'Tipo',\r
-       upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',\r
-       upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',\r
-       validateStartNumber: 'List start number must be a whole number.'\r
+       upperAlpha: 'Maiúsculas (A, B, C, D, E, etc.)',\r
+       upperRoman: 'Romanos em maiúscula (I, II, III, IV, V, etc.)',\r
+       validateStartNumber: 'A lista tem iniciar por um número inteiro'\r
 } );\r
index 926d2aa4ede2f5aba157c5e563afc6616b6604d1..5a8c32738752a7cc3a36bf921aa67df6f59433f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ro', {\r
index 27abea0e26b2a5c6262465240213998db5419a73..5bfa8c68fc24ad976e3add37032d275631343792 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ru', {\r
index f8699df4c0bda0c113724f38cce686455699e798..b401a1368cb48404875cfc3d30b4c60656830d4e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'si', {\r
index 443f41e5fa233021c1b4687b1a262657f227811e..2529c18ea7d3907cdf01bc1de1506b7920a48555 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sk', {\r
index 99a3bf79c8ed108dd14b4995504b8bd7e08318f0..bd6c27fef4c22b3edfd495e7d248b42bdce1a9e0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sl', {\r
index 18c77d2d451d1c555eb3f06fcc80bb3c612fcae3..6ee94a54df401130d705093be44b81a7fea72bb1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sq', {\r
index dad8611b41d278f9b6e303a2e986223879266172..75d1cfa2d0482b72345e08bf18514470c94d542b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sr-latn', {\r
index 8b10feffe5b2dfad1b61a540560eb0e0076df377..f89a4417cd95ea5461acc1915363ec9140d1d175 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sr', {\r
index c2208bfa6467f54cf63922f56c81397fda65a2ee..49bbf4850e83e1a38f45e54c9a430b9cc927e2d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'sv', {\r
index d85ecae616896fa8371f5243cca05ce524f3bb4f..d1425e8a04202a35744997fcb393f46dd528f0bf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'th', {\r
index a0f918b3621c245a1b239c1c575e95c7c7235d16..f08131e1d5ce161132b85695f7d08b1dee502583 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'tr', {\r
index 8f7908235641ab98664880d14a7a1538b4bfa20e..13991f4185c0e7ed3b9287a1cab2d00e4c10ef90 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'tt', {\r
index f232fa303914beb3809cb6c5c871176198c0e090..2d4336e7a98049281935d73173884eb8e2411119 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'ug', {\r
index ece540e36d1b150c4fb69c0e42bd39c3e5f5c5e0..7ef23430d1fa864a4b9c15cc9f4825aa3805e85d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'uk', {\r
index 4e395daf88c8cd97ad0f681ecbe55ff532fb7f90..c5ecc44017c68693e1ae206c1cb702c8deba1ce7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'vi', {\r
index b0a276532464ed70a514921ebb5526a1ba2c3ef1..9d274c2c42381324b42126417579514ecc7b8fc6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'zh-cn', {\r
index 4cfc3da57df92afe5fda808efe202a121448b0e7..e832518393b598282610fe96535d594d70b8ea1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'liststyle', 'zh', {\r
index 139499665e719d1ff01ad1d20a4937940e552d0b..f281edce2e8f1cac4224eb7ed89d725c3e686a45 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -7,7 +7,7 @@
        CKEDITOR.plugins.liststyle = {\r
                requires: 'dialog,contextmenu',\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                init: function( editor ) {\r
                        if ( editor.blockless )\r
 \r
                        def = new CKEDITOR.dialogCommand( 'numberedListStyle', {\r
                                requiredContent: 'ol',\r
-                               allowedContent: 'ol{list-style-type}[start]'\r
+                               allowedContent: 'ol{list-style-type}[start]; li{list-style-type}[value]',\r
+                               contentTransformations: [\r
+                                       [ 'ol: listTypeToStyle' ]\r
+                               ]\r
                        } );\r
                        cmd = editor.addCommand( 'numberedListStyle', def );\r
                        editor.addFeature( cmd );\r
 \r
                        def = new CKEDITOR.dialogCommand( 'bulletedListStyle', {\r
                                requiredContent: 'ul',\r
-                               allowedContent: 'ul{list-style-type}'\r
+                               allowedContent: 'ul{list-style-type}',\r
+                               contentTransformations: [\r
+                                       [ 'ul: listTypeToStyle' ]\r
+                               ]\r
                        } );\r
                        cmd = editor.addCommand( 'bulletedListStyle', def );\r
                        editor.addFeature( cmd );\r
index 09f0c47268d93fbb2464d3a3fd4116751c8c0ed7..077b6700e6bb59708962522a4ae2088193e23ac7 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
index ba2940962e275aa387f1e322479a2be6ec2ed1b4..9b9dc2b018c2bee2a6d25b42777529c75daa21b5 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b3baca75b48bf15b1d2daba990de2f5fd8ea8949..1c411f372277a2afcc7c1a519aecd5a7ea2946eb 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/magicline/lang/az.js b/sources/plugins/magicline/lang/az.js
new file mode 100644 (file)
index 0000000..02664f1
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'az', {\r
+       title: 'Abzası burada əlavə et'\r
+} );\r
index ac4f09f248bb7fd4a5c6ecd336ecc910bde05326..768af066965e9bc70fbfbe1bccd2738e02422699 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index cf6314490b96291dec26a104741573d1d1a1cd07..dcd9c1a4e6af48ff0420387a13c12ee83523e158 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 6b1030f81f64bdf1568c25860391ec0d4012e04a..4705efdb49294e955169772a78cf31e19b8e4ea9 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2a63dbba25c2a0960f717091e396b5f019eaf3da..13e1085cb8f38204a57a73b443c4730c70fa5835 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 90b036ee17d20bf42a8f16511faedfc6828f0f14..ee4fa17e9b4af8fd11c656ee72a8b3cc439757fa 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 3b53ef3e584e4ab416e0f74bf2288dde9e3400a7..d6bd3b78974cde587ba636a4d2714332186f3d3d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 0111f3bee5e375baf358ee55b9b2ef189f225ec0..189d56432aa8e1a60f3fbc239db70a54fd800108 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index d31441b888c0f42f240f1a2272834d178c155981..528a5543829af4218b726134c51dbe0101ab6b67 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 88baa445a50e21b35bb4ad3a5e669d4f1ab24ff0..e0d37797d519b8e72e0f1868936cc5b56294429f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 781de19b1b2dda0d92ef38b555e1e5c8253342af..37ef2edebca626afd4647603efe026aa083d41b8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 7128788e1ef2802c5f5e225d2b1e29519e7e4ed0..3cf6286155e2cddfccf44cdee4011432adfc3709 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/magicline/lang/es-mx.js b/sources/plugins/magicline/lang/es-mx.js
new file mode 100644 (file)
index 0000000..faf006a
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'es-mx', {\r
+       title: 'Insertar un párrafo aquí'\r
+} );\r
index ec0344c130a5547d17e943cf42e1d5a234acd3cb..f9a8f526134ab02a06f8ec7c4b7332e704d136c5 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index af2c5eb2e69b58cf26d7e21a497a52dfd094dd5a..9d2fe536949119dc94b8514766e2557cf5bfd8d7 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 372564786d7970461b92f045a36393fd8994c853..25daf453921570f2a904cf448b01f1a5b1b0b898 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 02ea6bcf05a1caf6427dbf808619eb3a9017bd83..d09ddfc15adb5f0ce33f9457bde1f1a29079c8f6 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 8667eb2a8897f9078714f94a6a2090764ac4e576..094bd9d0b45f983381ac29b0440b42397593ae9e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 96d31ee5a1cf6be89779d882e672997aa59be1bd..6319f1c78fdc69eefe10bd92a696424bb7cd411b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index da3610b77522bdb8a29cab852e779c11e475af28..430fc5f1e1e12afac609d0bdfdd06a9e7d47463a 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.setLang( 'magicline', 'fr', {\r
-       title: 'Insérez un paragraphe ici'\r
+       title: 'Insérer un paragraphe ici'\r
 } );\r
index 48f304f4a4c89c431bfc04e6d02b8dce093e615e..5aaa96850107b3611101d3569cb9de0d12d9ce4b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index cef83c7af23e060602483adb4302d2569d5c39c4..9c01d482dd4db0345f8fd22308e0ba586c468aa8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index e143e738689e6521c3a411691da0f7d9e5ecbddd..1916e659db0257d2d65881cf2d952c39cf06295d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2f3e8310802d2bab0eb4223c36547fffff7bcc47..86650d5523737c3500c121c7683b28795dbc2802 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 9389c832e3a1b8c084e84b6104eb7ec80d23e56a..3651e37fe50cf52f12917cbd547c06c7ee3bfc80 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 69e0946fe8a8b729b3f79d00c1ea5b395811ffc2..9cc27e039445f18472484cdf71a7ee5f0b2dde10 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 71ebfd1f7467e8bcaf23b7ed91fd7d0f33a48663..84d6b741736bbb3d637626b0d035d2d91a51f91d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 9dd18657c1873f0b62f217614b81037f85c21588..f670a7e936d788ffe006c7396d177282ecf8e259 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index a86363eadc48a53d3645c4a4ecef3a2106c5e4bd..0e718f3d6ad919cf1c05549c6c9b6541b8c601c4 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 72f7fa130d8d33623a4dadc47f9c56d4be16710a..cc3f3a4761f5972d80f382ed2a0f3614a4f471fd 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index e3124e9cad617c031a604834c9430d2c1a5f3852..f96cc44d47f9842b6ce0d21ab40e00a9e02e4894 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 6780c4df11cb5481017c5c01593cc56cef1c51e0..297f270a930b93bb018813e59230b215682ca899 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index dccbf5d8d625f798cbe64d4d71cb19c423c211a7..bfe36ff12f3ae767ad1e1e75262ce54579580f3f 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2af2e204cab705f107e230fc192cd8ce67472644..e78ca767d1876f366640123feec2bc7ba477ff46 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
diff --git a/sources/plugins/magicline/lang/oc.js b/sources/plugins/magicline/lang/oc.js
new file mode 100644 (file)
index 0000000..312f547
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+CKEDITOR.plugins.setLang( 'magicline', 'oc', {\r
+       title: 'Inserir un paragraf aicí'\r
+} );\r
index b038f54ad33f15ca55ee21a6edfd795b636bccb8..324bf1e67da1fe5d19e6be8d3926fc6d764e3f5a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 54ca87f565f1eaee7358b23e26cc85b9cf8be22a..35f3daad05be9ef6dcfd4fad841dc38c64d60927 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index ed653d7e7dc631a1723a70e5fa72258a740442c6..97884c008dbeca2218f1a9501ef0d1a631f5a452 100644 (file)
@@ -1,8 +1,8 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.setLang( 'magicline', 'pt', {\r
-       title: 'Insira aqui o parágrafo'\r
+       title: 'Inserir parágrafo aqui'\r
 } );\r
index 8787768880d40db1118cd458cb9474365a434afc..bc417039be5264e9c7c3363c5781249b001fa5d9 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 5a484a2145d0d7d9adad20e9d4634ae65c0cb87d..a5cdbe8c90fd9051a2651fa1445d5aa939e83760 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 94ae4a4b532c755a0a1e25f6b53d909ac4eb1879..84761b2de3177ac24f29c4539eee5767171f7526 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 6baf9e9d67ac7c574fa3b7e58d5e24c33bbf0fbb..6d0cf766c7892190f2d913cf477ccce1e7ee52d1 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 00d458fc95e56b0b547744cacdf5d470ce1e8cad..d4055965725c5b0bc7c4621d59be8d88acdb705a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 0670ada453e72f600a24d909e5dff6268ffaac91..63327fd3f55649f6b8de8655d46f586578918784 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index e419e8d20ea53f859f692fb276bdf22d81eb1d93..02dd21660c1dd45755325527ee161982e10e87b9 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index b94cefac3960059b519efdeeaefe28188b8e5b0b..7de33bfd9ba593c033f17e893386186ab754c157 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 8da99489bcaedbc03d7fea1553b33c4e8774c330..0017fd44168d48587aee0cd7e25e6db322b9acf7 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 57cdeb7575b09c04bf19468284fa9756427ba7a2..980f0e0064423dac61cfc266aaef303c1a865ae6 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index ab925ae3c9ad0644b6ad47e984dd90b996ed8471..b302bd0060c9958b06c3c6436a65a085183752de 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 166e892b74a0124fdd489407313ed219e8e57b1e..f0a0b3b5e8a93050f9b1de3a393b361823fc4b6a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 2fd43248730bab8e93392068c97b4c7e9e7dd19b..3ac9f6887f5db345c263aca33eac48c408a00f1e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index cdb1c2342bf3f291c92ba9617f78b12303d7cb50..45b6feab192e3a4b685fbb6e669ec5122d5a14ef 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -12,7 +12,7 @@
 \r
 ( function() {\r
        CKEDITOR.plugins.add( 'magicline', {\r
-               lang: 'af,ar,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,et,eu,fa,fi,fr,fr-ca,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,si,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                init: initPlugin\r
        } );\r
 \r
@@ -38,7 +38,7 @@
                // %REMOVE_START%\r
                // Internal DEBUG uses tools located in the topmost window.\r
 \r
-               // (#9701) Due to security limitations some browsers may throw\r
+               // (http://dev.ckeditor.com/ticket/9701) Due to security limitations some browsers may throw\r
                // errors when accessing window.top object. Do it safely first then.\r
                try {\r
                        that.debug = window.top.DEBUG;\r
                                var elements, element, i;\r
 \r
                                for ( var t in { p: 1, br: 1, div: 1 } ) {\r
-                                       // document.find is not available in QM (#11149).\r
+                                       // document.find is not available in QM (http://dev.ckeditor.com/ticket/11149).\r
                                        elements = editor.document.getElementsByTag( t );\r
 \r
                                        for ( i = elements.count(); i--; ) {\r
                function elementFromPoint( doc, mouse ) {\r
                        var pointedElement = doc.$.elementFromPoint( mouse.x, mouse.y );\r
 \r
-                       // IE9QM: from times to times it will return an empty object on scroll bar hover. (#12185)\r
+                       // IE9QM: from times to times it will return an empty object on scroll bar hover. (http://dev.ckeditor.com/ticket/12185)\r
                        return pointedElement && pointedElement.nodeType ?\r
                                new CKEDITOR.dom.element( pointedElement ) :\r
                                null;\r
                        // If trigger is an element, neither editable nor editable's ascendant.\r
                        if ( trigger && that.editable.contains( trigger ) ) {\r
                                // Check for closest editable limit.\r
-                               // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (#12009).\r
+                               // Don't consider trigger as a limit as it may be nested editable (includeSelf=false) (http://dev.ckeditor.com/ticket/12009).\r
                                var limit = getClosestEditableLimit( trigger );\r
 \r
                                // Trigger in nested editable area.\r
 \r
                                        // Consider the editable to be an element with overflow:scroll\r
                                        // and non-zero scrollTop/scrollLeft value.\r
-                                       // For example: divarea editable. (#9383)\r
+                                       // For example: divarea editable. (http://dev.ckeditor.com/ticket/9383)\r
                                        styleSet.top += view.editable.scroll.top;\r
                                        styleSet.left += view.editable.scroll.left;\r
                                }\r
                                        var selected = editor.getSelection().getStartElement(),\r
                                                limit;\r
 \r
-                                       // (#9833) Go down to the closest non-inline element in DOM structure\r
+                                       // (http://dev.ckeditor.com/ticket/9833) Go down to the closest non-inline element in DOM structure\r
                                        // since inline elements don't participate in in magicline.\r
                                        selected = selected.getAscendant( DTD_BLOCK, 1 );\r
 \r
index af8d17a2d380d64567be2ddeabf754efeed835ef..8fff40e7bff2a4377df8ac82dcbba3bc5f845b5a 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -201,7 +201,7 @@ CKEDITOR.replace( 'editor2', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 1d1ed4559d1ad8a45fed2a3e6c5bc7d3f98c1ddd..865c582ec866926f6db7064d9a8b4035d15318f9 100644 (file)
Binary files a/sources/plugins/maximize/icons/hidpi/maximize.png and b/sources/plugins/maximize/icons/hidpi/maximize.png differ
index db01908b8a8e2242d2708e8a500083145d60d66c..ab2554722b81dbc4e87ebb57796a01eb0d6948d4 100644 (file)
Binary files a/sources/plugins/maximize/icons/maximize.png and b/sources/plugins/maximize/icons/maximize.png differ
index e07bbd24292758e8a2eb26aeba64d89f91638f05..5f17e23f29208b24fb5986ef704cb7a89bf43c3a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'af', {\r
index 4181cf393bd3ce46beadca242369e3358a73235b..cdfb2589c5b09c8d8457f62a5dd1e61f6007acff 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ar', {\r
diff --git a/sources/plugins/maximize/lang/az.js b/sources/plugins/maximize/lang/az.js
new file mode 100644 (file)
index 0000000..d3a92ac
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'az', {\r
+       maximize: 'Aşkarla',\r
+       minimize: 'Gizlət'\r
+} );\r
index c8cd97890eec0a209f7b61f6ccc4fc58c462ac46..a56e04e49668836056ec124086a7959a55a3a09e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'bg', {\r
index 82793e3c87f376a92973123c21e126790e4b7332..3fd40878e70ed8d98e6511b43e0b3393d5e0612f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'bn', {\r
index 06655fd56741aeee6178ad8d038b39b7a0c5b36d..cb497109ab1cd21fa38795d4266fb93b8e9efc45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'bs', {\r
index 7bb1ba5a3c187e75d3434f083cf6dc9869379322..fc886157d86d17e56b335c338e303d9cc7a1885b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ca', {\r
index 5dfd4822cf228ad34301a6b2ea0cd4ed6ec59604..2234af2be2ef8ef11063c1d7865adfa2a9784199 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'cs', {\r
index a8544889192d4577e9ca125c76fb6be85a72a98f..c3370b31a2642afaf50add638b86f78fb74b3263 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'cy', {\r
index 2d25a511e5dac359bb1b61f924a9ccad8bb13d03..8dd2d88442b6d82747904eee3eed38645565f8d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'da', {\r
index acc08f341848043283cf70454173e7208c0f3e94..440814b68297032c975a7ca6d21b54f371e3d8d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'de-ch', {\r
index 6bfd5b2b1715c84de088af58057cfdc36442016c..9af6706ef6d5ad8a22f5e244d05484432ff3915d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'de', {\r
index 4b8972683f6b43ee08e568e31b40546d9893fdfb..7da1b0bb3e8e13aa8e4413c88fa7f7c4a835a805 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'el', {\r
index 0636683a4b890026b8e0a190c93f90c071b58ccc..de0310df70b03bcd656edb059d53f3de2428ce3e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'en-au', {\r
index 7265dbc3ef2b9793f59eca9d7d9eba87d7ee68b9..1c48ee0aa9f71012164705458e60496e4d56ca0a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'en-ca', {\r
index 4ff811b5f90a0b9b2764ca75c91f6234fa32ef33..433a0652d8de644cb3fa83f39873a507ac0fa08e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'en-gb', {\r
index 71d87113f4f82befc368a4c0ab52f294150a7d58..1e4541891109b4b0844ebd3ca9024d411ed53e24 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'en', {\r
index 6c7595293a67b65f871d020629da8247f18bbdb4..852f529510a1a7d57ecd82feedbb770b4898b0ab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'eo', {\r
diff --git a/sources/plugins/maximize/lang/es-mx.js b/sources/plugins/maximize/lang/es-mx.js
new file mode 100644 (file)
index 0000000..f47486c
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'es-mx', {\r
+       maximize: 'Maximizar',\r
+       minimize: 'Minimizar'\r
+} );\r
index 85963a18b9bec5936a324619c6400281066928d4..411aae55e9f0a1663548307e2a43708e360b5f66 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'es', {\r
index 241bb3407fb95cfe8f089881dc1c4b8dc3d3922d..1682ec96b69fcd1849d926af5d867d30099074f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'et', {\r
index 12eea43599ce64beb357e0caf10cd10936fe14ea..a25c164e4eb24140897964cf093a6dc37dd3928a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'eu', {\r
index c16bc2e7a3834598f0ee0d78cf0bd658176efc50..e08e9ea8e64074518e9c95c1b70cca28b20c48fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'fa', {\r
index d61f5f3af74e27b23a6b56d2c6b2c08064b2deb8..763eede0e8871b6f07c23d20fa07965a1aee22df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'fi', {\r
index c3775fc2970e757c1a9eb3e5c05dbcaf470c5075..635415a157e3cac72d36e45b5bec23d5c4ebfd6c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'fo', {\r
index ea9ccddd8ce190fdc8771d19ed53ede0f3638d1b..59ed27803b2a9c869b4084b1e503cd69539ddebd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'fr-ca', {\r
index f8598161eb3e62d48de5679a36ab2d4341eecc86..cb3d4dd459b63f807e2f4dff8fa50de7934548fc 100644 (file)
@@ -1,8 +1,8 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'fr', {\r
        maximize: 'Agrandir',\r
-       minimize: 'Minimiser'\r
+       minimize: 'Réduire'\r
 } );\r
index 498ff274b9ad64b9a73c0ba3dd488d44bf50c191..79009f8e86a8434a96e4dbffcccf88f5536a3fa7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'gl', {\r
index 4b7af7bd2076f7d04314df3c77306e1e1464a29b..bbd4b523c939b5810dc7dbd14ac9772da97bc34c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'gu', {\r
index b0adc823f9c093f7875333b773ba08ad25a314f0..d46856b811f55f057165937f30a460dc8666c443 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'he', {\r
index f9baef80af63852f07d275b48ee6353711632030..76b0c0cfd2c17fb4967ce7dab3b0bca522679386 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'hi', {\r
index 5492f2f02ebfb7a2e80a6b27864e6ee7d2f897b0..4b7a7b3690efa45025b65c0b3d5f872830ff032e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'hr', {\r
index 11e9530bcf5f69ace65f49d847ba95e94d3955af..3e11e22de70ef79e7069c5c0775e3d2dd748e415 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'hu', {\r
index f6e839a81b5e99804271d97caa44f11d15d0d778..1a323831e675475393219b2b18555eb0157557be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'id', {\r
index 97313df93249ba4689a88a7bc78d5377ca131236..dec813f433e0881931af727c6431ff2702455ade 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'is', {\r
index 448337cf68a90d847ce69c5e1a1325102c51727d..67a8a29a488cd0f59f6a21d75bee5570131f272d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'it', {\r
index 5479f2a21241bf102aa3a2a43bcd768f0808803e..33184da45785b36e163f9765fe776dd96c0d72c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ja', {\r
index 579c4b1b64680bf55f5958a2b90a586df79976f6..a90fb04ee80ec0fe2df532d8a4d5b11d6ec1e7a4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ka', {\r
index bba87460ac602b1d1966a2a270e23e4c29f894f0..4cda2db5d9b91794475d8ff94ee1f0f533b2cf50 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'km', {\r
index 05bb161f745f4161efcd3db478c2c9d91b8891d1..f4af9d438b344622add8211d7d23b05c463eae3a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ko', {\r
index 50e24ef57af54cc44f49eedaa957fc45444cb424..d34e5888e88ad1e3ea079e9ef96d416c74d9ec95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ku', {\r
index 5cd4de88596a8ff5f268d82e63657c9399f68583..064291b72481619b2a65f2b023571c49e3cf48c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'lt', {\r
index 77d9db2c06a8ed21597be543782e04fb80448a7f..afbbbbec7e6e6186f71f5b3e7673ddffd40b9206 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'lv', {\r
index 382653bde4548ff84ecf94686027581476d8edbc..69fcfe9d9f3c52d10aecff9855978fb014a8a007 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'mk', {\r
index f0bcf7ca260990c5387f4298d72d0bbf150b0bbc..6c4a0769426153b9b727e69b1ae1f4e764f92db4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'mn', {\r
index b83302776a65bad558daa1fc3a6830f9ff88c3b9..0f27d912f9b3c1cfed83eb212cb4b6054059593f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ms', {\r
index eb1d77d3ec9a820693097cd2e250fac9a010b11e..a8ec9ddeaebc49a4f3b5e7a72fda57008b32a640 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'nb', {\r
index f1a126d8d8d46a06cf23a7ed184fa3b56c4fd30b..978bda037fca6f90836aaab892686b34b0fc9721 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'nl', {\r
index ac8fc85e5a29cce98a0903d5068201ca444e370f..02afe8a9c6bea565a46beff54bb9a86c3df556b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'no', {\r
diff --git a/sources/plugins/maximize/lang/oc.js b/sources/plugins/maximize/lang/oc.js
new file mode 100644 (file)
index 0000000..cbd94a4
--- /dev/null
@@ -0,0 +1,8 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'maximize', 'oc', {\r
+       maximize: 'Maximizar',\r
+       minimize: 'Minimizar'\r
+} );\r
index 65db8f15295c60fae2a2fa7464c836c3055def19..1bf6d073bfa8c3ea6820dadf18cb964ecb90bdc5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'pl', {\r
index 1da2b5e67b251ad8f64ea3bf673dd2f425c4717a..e5c2a52b79d39f9f377f2a8b0a866ddfb257d414 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'pt-br', {\r
index a1cc282f985e88f1a2a6389b8a009d19b63f6051..a3790369da5874eed7b00d61277217f08abf17ca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'pt', {\r
index 4781ec3339115b1a1465c45a174084d96da72e6f..0a3ded62a5d006a8dafbd2b1f9b4d990e3f0ae28 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ro', {\r
index 6efab0bcf95a55fe321037e0b21256b3f63faed1..30c491ad2374f06c30270666624cecb4ad3cafd2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ru', {\r
index 671ecdd6f7dfdb988aeb78a355bab4177c74674d..a0331ab35d63e350c594a45fe0a5c7790e5e8463 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'si', {\r
index c88e3903ce44861acde720df571f0a77d3ceb3b5..a9f2515bb6fb884d007a5ba1e5092fd9f0dd76e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sk', {\r
index 90187c524ff3e061db29f9843d3763b727cc0c7e..73d5e911dd03a4347b8682b53bc0d2851972d9d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sl', {\r
index 4354dba518c4300280fe6fd3ffaccfbf3bfb4294..e6b5bc3c25a1473fd9e0e24013ad55fa4ae955e4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sq', {\r
index f472eedc903efa0c15b459236de2bb514a27d2c2..33dcd9ef5ef92823c8cd992806f88db7f6f26f02 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sr-latn', {\r
index 70550ee0798be3cbd8afb0c1cdb1ac687bd7a6a8..f1ef2d1363b5bc4ae7ae3458a440e66119332e27 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sr', {\r
index 3ba63b543e82d96e790cde2b72fe825cfb7ff7f6..d14fb84902f459a05fb7d032b942137ca58dd6f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'sv', {\r
index 4b748719a403881d9068107515c9aee0e7044e9b..df09eef66545d8cfb4a22f6dec59dec2aedcd9ca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'th', {\r
index 0aafb3d3b73745282faa7e09c928451cf39d4e79..90724f4714e3d934703dd0ce1f1965db56612525 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'tr', {\r
index a8ec7d6c3e27e0739c50a9cd9e0a5bf32a338c37..cc92021abed1d58594f8d34e6fade7a0e09cc87c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'tt', {\r
index 0e874d6874c04b89af57d97d2c9fdb46ade01075..85af04604d90e9c41a1e17a0dd62829c688c6a13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'ug', {\r
index 85a3215879d477e4539e0d716054d87e3f90008b..5ca1021df2152908ab55b46c7231ac12a09a405b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'uk', {\r
index 0fd29d509a5e587a3d6c95860bf1b07b36c1f3f3..4ab3a6b8ef507b4642f3becd5774ac0a704eafe7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'vi', {\r
index 7e63c741fee59b3da526f4b89ba5d485de24aff5..f4ddf7211d6b06902993c4d551a15917c58d7204 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'zh-cn', {\r
index 6d633c42134eda81c5664efbe2974e45bb5fa597..6bca434949bbdc07741fd9c468d258590e1494f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'maximize', 'zh', {\r
index ae621f1a88f81c56a699c546063abd6005b66d3e..fbce920b9bc7ffe1531a8b60a2f637ef0725c86c 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -51,7 +51,7 @@
                }\r
 \r
                retval.inline = $element.style.cssText || '';\r
-               if ( !isInsideEditor ) // Reset any external styles that might interfere. (#2474)\r
+               if ( !isInsideEditor ) // Reset any external styles that might interfere. (http://dev.ckeditor.com/ticket/2474)\r
                $element.style.cssText = 'position: static; overflow: visible';\r
 \r
                restoreFormStyles( data );\r
                if ( editor.editable().isInline() )\r
                        return;\r
 \r
-               // Refresh all editor instances on the page (#5724).\r
+               // Refresh all editor instances on the page (http://dev.ckeditor.com/ticket/5724).\r
                var all = CKEDITOR.instances;\r
                for ( var i in all ) {\r
                        var one = all[ i ];\r
                        if ( one.mode == 'wysiwyg' && !one.readOnly ) {\r
                                var body = one.document.getBody();\r
                                // Refresh 'contentEditable' otherwise\r
-                               // DOM lifting breaks design mode. (#5560)\r
+                               // DOM lifting breaks design mode. (http://dev.ckeditor.com/ticket/5560)\r
                                body.setAttribute( 'contentEditable', false );\r
                                body.setAttribute( 'contentEditable', true );\r
                        }\r
@@ -93,7 +93,7 @@
 \r
        CKEDITOR.plugins.add( 'maximize', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'maximize', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
                        var savedState = CKEDITOR.TRISTATE_OFF;\r
 \r
                        editor.addCommand( 'maximize', {\r
-                               // Disabled on iOS (#8307).\r
+                               // Disabled on iOS (http://dev.ckeditor.com/ticket/8307).\r
                                modes: { wysiwyg: !CKEDITOR.env.iOS, source: !CKEDITOR.env.iOS },\r
                                readOnly: 1,\r
                                editorFocus: false,\r
 \r
                                                // Hide scroll bars.\r
                                                var styles = {\r
-                                                       overflow: CKEDITOR.env.webkit ? '' : 'hidden', // #6896\r
+                                                       overflow: CKEDITOR.env.webkit ? '' : 'hidden', // http://dev.ckeditor.com/ticket/6896\r
                                                        width: 0,\r
                                                        height: 0\r
                                                };\r
                                                !CKEDITOR.env.gecko && mainDocument.getDocumentElement().setStyle( 'position', 'fixed' );\r
                                                !( CKEDITOR.env.gecko && CKEDITOR.env.quirks ) && mainDocument.getBody().setStyles( styles );\r
 \r
-                                               // Scroll to the top left (IE needs some time for it - #4923).\r
+                                               // Scroll to the top left (IE needs some time for it - http://dev.ckeditor.com/ticket/4923).\r
                                                CKEDITOR.env.ie ? setTimeout( function() {\r
                                                        mainWindow.$.scrollTo( 0, 0 );\r
                                                }, 0 ) : mainWindow.$.scrollTo( 0, 0 );\r
 \r
                                                // Resize and move to top left.\r
-                                               // Special treatment for FF Quirks (#7284)\r
+                                               // Special treatment for FF Quirks (http://dev.ckeditor.com/ticket/7284)\r
                                                container.setStyle( 'position', CKEDITOR.env.gecko && CKEDITOR.env.quirks ? 'fixed' : 'absolute' );\r
-                                               container.$.offsetLeft; // SAFARI BUG: See #2066.\r
+                                               container.$.offsetLeft; // SAFARI BUG: See http://dev.ckeditor.com/ticket/2066.\r
                                                container.setStyles( {\r
                                                        // Show under floatpanels (-1) and context menu (-2).\r
                                                        'z-index': editor.config.baseFloatZIndex - 5,\r
                                                        top: '0px'\r
                                                } );\r
 \r
-                                               // Add cke_maximized class before resize handle since that will change things sizes (#5580)\r
+                                               // Add cke_maximized class before resize handle since that will change things sizes (http://dev.ckeditor.com/ticket/5580)\r
                                                container.addClass( 'cke_maximized' );\r
 \r
                                                resizeHandler();\r
 \r
-                                               // Still not top left? Fix it. (Bug #174)\r
+                                               // Still not top left? Fix it. (Bug http://dev.ckeditor.com/ticket/174)\r
                                                var offset = container.getDocumentPosition();\r
                                                container.setStyles( {\r
                                                        left: ( -1 * offset.x ) + 'px',\r
                                                        top: ( -1 * offset.y ) + 'px'\r
                                                } );\r
 \r
-                                               // Fixing positioning editor chrome in Firefox break design mode. (#5149)\r
+                                               // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149)\r
                                                CKEDITOR.env.gecko && refreshCursor( editor );\r
                                        }\r
                                        // Restore from fullscreen if the state is on.\r
                                                // Remove cke_maximized class.\r
                                                container.removeClass( 'cke_maximized' );\r
 \r
-                                               // Webkit requires a re-layout on editor chrome. (#6695)\r
+                                               // Webkit requires a re-layout on editor chrome. (http://dev.ckeditor.com/ticket/6695)\r
                                                if ( CKEDITOR.env.webkit ) {\r
                                                        container.setStyle( 'display', 'inline' );\r
                                                        setTimeout( function() {\r
 \r
                                        // Toggle button label.\r
                                        var button = this.uiItems[ 0 ];\r
-                                       // Only try to change the button if it exists (#6166)\r
+                                       // Only try to change the button if it exists (http://dev.ckeditor.com/ticket/6166)\r
                                        if ( button ) {\r
                                                var label = ( this.state == CKEDITOR.TRISTATE_OFF ) ? lang.maximize.maximize : lang.maximize.minimize;\r
                                                var buttonNode = CKEDITOR.document.getById( button._.id );\r
                                        // Restore selection and scroll position in editing area.\r
                                        if ( editor.mode == 'wysiwyg' ) {\r
                                                if ( savedSelection ) {\r
-                                                       // Fixing positioning editor chrome in Firefox break design mode. (#5149)\r
+                                                       // Fixing positioning editor chrome in Firefox break design mode. (http://dev.ckeditor.com/ticket/5149)\r
                                                        CKEDITOR.env.gecko && refreshCursor( editor );\r
 \r
                                                        editor.getSelection().selectRanges( savedSelection );\r
                                toolbar: 'tools,10'\r
                        } );\r
 \r
-                       // Restore the command state after mode change, unless it has been changed to disabled (#6467)\r
+                       // Restore the command state after mode change, unless it has been changed to disabled (http://dev.ckeditor.com/ticket/6467)\r
                        editor.on( 'mode', function() {\r
                                var command = editor.getCommand( 'maximize' );\r
                                command.setState( command.state == CKEDITOR.TRISTATE_DISABLED ? CKEDITOR.TRISTATE_DISABLED : savedState );\r
index f5de4f93ed9297be6b29124a96ab9bc7b70d2423..3596e527a764fcc22fcaebf3f78e882750a80079 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -41,10 +41,10 @@ CKEDITOR.plugins.add( 'menu', {
                };\r
 \r
                /**\r
-                * Adds one or more items from the specified definition array to the editor context menu.\r
+                * Adds one or more items from the specified definition object to the editor context menu.\r
                 *\r
                 * @method\r
-                * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called.\r
+                * @param {Object} definitions Object where keys are used as itemName and corresponding values as definition for a {@link #addMenuItem} call.\r
                 * @member CKEDITOR.editor\r
                 */\r
                editor.addMenuItems = function( definitions ) {\r
@@ -85,12 +85,15 @@ CKEDITOR.plugins.add( 'menu', {
                ' class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}"' +\r
                ' title="{title}"' +\r
                ' tabindex="-1"' +\r
-               '_cke_focus=1' +\r
+               ' _cke_focus=1' +\r
                ' hidefocus="true"' +\r
                ' role="{role}"' +\r
+               ' aria-label="{label}"' +\r
+               ' aria-describedby="{id}_description"' +\r
                ' aria-haspopup="{hasPopup}"' +\r
                ' aria-disabled="{disabled}"' +\r
-               ' {ariaChecked}';\r
+               ' {ariaChecked}' +\r
+               ' draggable="false"';\r
 \r
        // Some browsers don't cancel key events in the keydown but in the\r
        // keypress.\r
@@ -99,11 +102,13 @@ CKEDITOR.plugins.add( 'menu', {
                menuItemSource += ' onkeypress="return false;"';\r
 \r
        // With Firefox, we need to force the button to redraw, otherwise it\r
-       // will remain in the focus state.\r
-       if ( CKEDITOR.env.gecko )\r
-               menuItemSource += ' onblur="this.style.cssText = this.style.cssText;"';\r
+       // will remain in the focus state. Also we some extra help to prevent dragging (http://dev.ckeditor.com/ticket/10373).\r
+       if ( CKEDITOR.env.gecko ) {\r
+               menuItemSource += ( ' onblur="this.style.cssText = this.style.cssText;"' +\r
+                       ' ondragstart="return false;"' );\r
+       }\r
 \r
-       // #188\r
+       // http://dev.ckeditor.com/ticket/188\r
        menuItemSource += ' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});"' +\r
                        ' onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" ' +\r
                        ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) +\r
@@ -111,6 +116,7 @@ CKEDITOR.plugins.add( 'menu', {
                        '>';\r
 \r
        menuItemSource +=\r
+                               //'' +\r
                                '<span class="cke_menubutton_inner">' +\r
                                        '<span class="cke_menubutton_icon">' +\r
                                                '<span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span>' +\r
@@ -118,16 +124,22 @@ CKEDITOR.plugins.add( 'menu', {
                                        '<span class="cke_menubutton_label">' +\r
                                                '{label}' +\r
                                        '</span>' +\r
+                                       '{shortcutHtml}' +\r
                                        '{arrowHtml}' +\r
                                '</span>' +\r
-                       '</a></span>';\r
+                       '</a><span id="{id}_description" class="cke_voice_label" aria-hidden="false">{ariaShortcut}</span></span>';\r
 \r
        var menuArrowSource = '<span class="cke_menuarrow">' +\r
                                '<span>{label}</span>' +\r
                        '</span>';\r
 \r
+       var menuShortcutSource = '<span class="cke_menubutton_label cke_menubutton_shortcut">' +\r
+                               '{shortcut}' +\r
+                       '</span>';\r
+\r
        var menuItemTpl = CKEDITOR.addTemplate( 'menuItem', menuItemSource ),\r
-               menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource );\r
+               menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource ),\r
+               menuShortcutTpl = CKEDITOR.addTemplate( 'menuShortcut', menuShortcutSource );\r
 \r
        /**\r
         * @class\r
@@ -246,7 +258,7 @@ CKEDITOR.plugins.add( 'menu', {
 \r
                                // Show the submenu.\r
                                // This timeout is needed to give time for the sub-menu get\r
-                               // focus when JAWS is running. (#9844)\r
+                               // focus when JAWS is running. (http://dev.ckeditor.com/ticket/9844)\r
                                setTimeout( function() {\r
                                        menu.show( element, 2 );\r
                                }, 0 );\r
@@ -262,7 +274,7 @@ CKEDITOR.plugins.add( 'menu', {
                        add: function( item ) {\r
                                // Later we may sort the items, but Array#sort is not stable in\r
                                // some browsers, here we're forcing the original sequence with\r
-                               // 'order' attribute if it hasn't been assigned. (#3868)\r
+                               // 'order' attribute if it hasn't been assigned. (http://dev.ckeditor.com/ticket/3868)\r
                                if ( !item.order )\r
                                        item.order = this.items.length;\r
 \r
@@ -330,7 +342,7 @@ CKEDITOR.plugins.add( 'menu', {
                                        keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB\r
                                        keys[ ( editor.lang.dir == 'rtl' ? 37 : 39 ) ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // ARROW-RIGHT/ARROW-LEFT(rtl)\r
                                        keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE\r
-                                       CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).\r
+                                       CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (http://dev.ckeditor.com/ticket/8041).\r
 \r
                                        element = this._.element = block.element;\r
 \r
@@ -462,7 +474,11 @@ CKEDITOR.plugins.add( 'menu', {
                        render: function( menu, index, output ) {\r
                                var id = menu.id + String( index ),\r
                                        state = ( typeof this.state == 'undefined' ) ? CKEDITOR.TRISTATE_OFF : this.state,\r
-                                       ariaChecked = '';\r
+                                       ariaChecked = '',\r
+                                       editor = this.editor,\r
+                                       keystroke,\r
+                                       command,\r
+                                       shortcut;\r
 \r
                                var stateName = state == CKEDITOR.TRISTATE_ON ? 'on' : state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' : 'off';\r
 \r
@@ -478,6 +494,15 @@ CKEDITOR.plugins.add( 'menu', {
                                if ( this.icon && !( /\./ ).test( this.icon ) )\r
                                        iconName = this.icon;\r
 \r
+                               if ( this.command ) {\r
+                                       command = editor.getCommand( this.command );\r
+                                       keystroke = editor.getCommandKeystroke( command );\r
+\r
+                                       if ( keystroke ) {\r
+                                               shortcut = CKEDITOR.tools.keystrokeToString( editor.lang.common.keyboard, keystroke );\r
+                                       }\r
+                               }\r
+\r
                                var params = {\r
                                        id: id,\r
                                        name: this.name,\r
@@ -487,13 +512,15 @@ CKEDITOR.plugins.add( 'menu', {
                                        state: stateName,\r
                                        hasPopup: hasSubMenu ? 'true' : 'false',\r
                                        disabled: state == CKEDITOR.TRISTATE_DISABLED,\r
-                                       title: this.label,\r
+                                       title: this.label + ( shortcut ? ' (' + shortcut.display + ')' : '' ),\r
+                                       ariaShortcut: shortcut ? editor.lang.common.keyboardShortcut + ' ' + shortcut.aria : '',\r
                                        href: 'javascript:void(\'' + ( this.label || '' ).replace( "'" + '' ) + '\')', // jshint ignore:line\r
                                        hoverFn: menu._.itemOverFn,\r
                                        moveOutFn: menu._.itemOutFn,\r
                                        clickFn: menu._.itemClickFn,\r
                                        index: index,\r
                                        iconStyle: CKEDITOR.skin.getIconStyle( iconName, ( this.editor.lang.dir == 'rtl' ), iconName == this.icon ? null : this.icon, this.iconOffset ),\r
+                                       shortcutHtml: shortcut ? menuShortcutTpl.output( { shortcut: shortcut.display } ) : '',\r
                                        arrowHtml: hasSubMenu ? menuArrowTpl.output( { label: arrowLabel } ) : '',\r
                                        role: this.role ? this.role : 'menuitem',\r
                                        ariaChecked: ariaChecked\r
diff --git a/sources/plugins/notification/lang/az.js b/sources/plugins/notification/lang/az.js
new file mode 100644 (file)
index 0000000..7b04ae2
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'az', {\r
+       closed: 'Xəbərdarlıq pəncərəsi bağlanıb'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ca.js b/sources/plugins/notification/lang/ca.js
new file mode 100644 (file)
index 0000000..bcff547
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ca', {\r
+       closed: 'Notificació tancada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/cs.js b/sources/plugins/notification/lang/cs.js
new file mode 100644 (file)
index 0000000..1bf1c04
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'cs', {\r
+       closed: 'Oznámení zavřeno.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/da.js b/sources/plugins/notification/lang/da.js
new file mode 100644 (file)
index 0000000..bd3f508
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'da', {\r
+       closed: 'Notefikation lukket.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/de-ch.js b/sources/plugins/notification/lang/de-ch.js
new file mode 100644 (file)
index 0000000..6b97661
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'de-ch', {\r
+       closed: 'Benachrichtigung geschlossen.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/de.js b/sources/plugins/notification/lang/de.js
new file mode 100644 (file)
index 0000000..2dc45a3
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'de', {\r
+       closed: 'Benachrichtigung geschlossen.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/en.js b/sources/plugins/notification/lang/en.js
new file mode 100644 (file)
index 0000000..4731650
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'en', {\r
+       closed: 'Notification closed.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/eo.js b/sources/plugins/notification/lang/eo.js
new file mode 100644 (file)
index 0000000..743b8de
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'eo', {\r
+       closed: 'Sciigo fermita'\r
+} );\r
diff --git a/sources/plugins/notification/lang/es-mx.js b/sources/plugins/notification/lang/es-mx.js
new file mode 100644 (file)
index 0000000..e759a4b
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'es-mx', {\r
+       closed: 'Notificación cerrada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/es.js b/sources/plugins/notification/lang/es.js
new file mode 100644 (file)
index 0000000..a0bc477
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'es', {\r
+       closed: 'Notificación cerrada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/eu.js b/sources/plugins/notification/lang/eu.js
new file mode 100644 (file)
index 0000000..a2a01ee
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'eu', {\r
+       closed: 'Jakinarazpena itxita.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/fr.js b/sources/plugins/notification/lang/fr.js
new file mode 100644 (file)
index 0000000..4ddacc4
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'fr', {\r
+       closed: 'Notification fermée.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/gl.js b/sources/plugins/notification/lang/gl.js
new file mode 100644 (file)
index 0000000..38f90c4
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'gl', {\r
+       closed: 'Notificación pechada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/hr.js b/sources/plugins/notification/lang/hr.js
new file mode 100644 (file)
index 0000000..e453afc
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'hr', {\r
+       closed: 'Obavijest zatvorena.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/hu.js b/sources/plugins/notification/lang/hu.js
new file mode 100644 (file)
index 0000000..48a846e
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'hu', {\r
+       closed: 'Értesítés bezárva.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/id.js b/sources/plugins/notification/lang/id.js
new file mode 100644 (file)
index 0000000..d8917af
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'id', {\r
+       closed: 'Pemberitahuan ditutup'\r
+} );\r
diff --git a/sources/plugins/notification/lang/it.js b/sources/plugins/notification/lang/it.js
new file mode 100644 (file)
index 0000000..aa48a61
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'it', {\r
+       closed: 'Notifica chiusa.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ja.js b/sources/plugins/notification/lang/ja.js
new file mode 100644 (file)
index 0000000..38469b9
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ja', {\r
+       closed: '通知を閉じました。'\r
+} );\r
diff --git a/sources/plugins/notification/lang/km.js b/sources/plugins/notification/lang/km.js
new file mode 100644 (file)
index 0000000..458db41
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'km', {\r
+       closed: 'បាន​បិទ​ការ​ផ្ដល់​ដំណឹង។'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ko.js b/sources/plugins/notification/lang/ko.js
new file mode 100644 (file)
index 0000000..001f391
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ko', {\r
+       closed: '알림이 닫힘.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ku.js b/sources/plugins/notification/lang/ku.js
new file mode 100644 (file)
index 0000000..e2bac2a
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ku', {\r
+       closed: 'ئاگادارکەرەوەکە داخرا.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/nb.js b/sources/plugins/notification/lang/nb.js
new file mode 100644 (file)
index 0000000..7a299dc
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'nb', {\r
+       closed: 'Varsling lukket.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/nl.js b/sources/plugins/notification/lang/nl.js
new file mode 100644 (file)
index 0000000..9e6c9b1
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'nl', {\r
+       closed: 'Melding gesloten.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/oc.js b/sources/plugins/notification/lang/oc.js
new file mode 100644 (file)
index 0000000..7d2445a
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'oc', {\r
+       closed: 'Notificacion tampada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/pl.js b/sources/plugins/notification/lang/pl.js
new file mode 100644 (file)
index 0000000..51a787f
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pl', {\r
+       closed: 'Powiadomienie zostało zamknięte.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/pt-br.js b/sources/plugins/notification/lang/pt-br.js
new file mode 100644 (file)
index 0000000..f8cd30a
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pt-br', {\r
+       closed: 'Notificação fechada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/pt.js b/sources/plugins/notification/lang/pt.js
new file mode 100644 (file)
index 0000000..3a74685
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'pt', {\r
+       closed: 'Notificação encerrada.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ru.js b/sources/plugins/notification/lang/ru.js
new file mode 100644 (file)
index 0000000..1fa54f2
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ru', {\r
+       closed: 'Уведомление закрыто'\r
+} );\r
diff --git a/sources/plugins/notification/lang/sk.js b/sources/plugins/notification/lang/sk.js
new file mode 100644 (file)
index 0000000..ec6c9c0
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'sk', {\r
+       closed: 'Notifikácia zatvorená.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/sv.js b/sources/plugins/notification/lang/sv.js
new file mode 100644 (file)
index 0000000..f7ae2ad
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'sv', {\r
+       closed: 'Notifiering stängd.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/tr.js b/sources/plugins/notification/lang/tr.js
new file mode 100644 (file)
index 0000000..5d6565a
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'tr', {\r
+       closed: 'Uyarılar kapatıldı.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/ug.js b/sources/plugins/notification/lang/ug.js
new file mode 100644 (file)
index 0000000..f0d9c78
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'ug', {\r
+       closed: 'ئوقتۇرۇش تاقالدى.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/uk.js b/sources/plugins/notification/lang/uk.js
new file mode 100644 (file)
index 0000000..aa683ae
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'uk', {\r
+       closed: 'Сповіщення закрито.'\r
+} );\r
diff --git a/sources/plugins/notification/lang/zh-cn.js b/sources/plugins/notification/lang/zh-cn.js
new file mode 100644 (file)
index 0000000..5eaf02e
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'zh-cn', {\r
+       closed: '通知已关闭'\r
+} );\r
diff --git a/sources/plugins/notification/lang/zh.js b/sources/plugins/notification/lang/zh.js
new file mode 100644 (file)
index 0000000..518b36c
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'notification', 'zh', {\r
+       closed: '通知已關閉。'\r
+} );\r
diff --git a/sources/plugins/notification/plugin.js b/sources/plugins/notification/plugin.js
new file mode 100644 (file)
index 0000000..305db28
--- /dev/null
@@ -0,0 +1,929 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview The "Notification" plugin.\r
+ *\r
+ */\r
+\r
+'use strict';\r
+\r
+CKEDITOR.plugins.add( 'notification', {\r
+       lang: 'az,ca,cs,da,de,de-ch,en,eo,es,es-mx,eu,fr,gl,hr,hu,id,it,ja,km,ko,ku,nb,nl,oc,pl,pt,pt-br,ru,sk,sv,tr,ug,uk,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+\r
+       init: function( editor ) {\r
+               editor._.notificationArea = new Area( editor );\r
+\r
+               // Overwrites default `editor.showNotification`.\r
+               editor.showNotification = function( message, type, progressOrDuration ) {\r
+                       var progress, duration;\r
+\r
+                       if ( type == 'progress' ) {\r
+                               progress = progressOrDuration;\r
+                       } else {\r
+                               duration = progressOrDuration;\r
+                       }\r
+\r
+                       var notification = new CKEDITOR.plugins.notification( editor, {\r
+                               message: message,\r
+                               type: type,\r
+                               progress: progress,\r
+                               duration: duration\r
+                       } );\r
+\r
+                       notification.show();\r
+\r
+                       return notification;\r
+               };\r
+\r
+               // Close the last notification on ESC.\r
+               editor.on( 'key', function( evt ) {\r
+                       if ( evt.data.keyCode == 27 ) { /* ESC */\r
+                               var notifications = editor._.notificationArea.notifications;\r
+\r
+                               if ( !notifications.length ) {\r
+                                       return;\r
+                               }\r
+\r
+                               // As long as this is not a common practice to inform screen-reader users about actions, in this case\r
+                               // this is the best solution (unfortunately there is no standard for accessibility for notifications).\r
+                               // Notification has an `alert` aria role what means that it does not get a focus nor is needed to be\r
+                               // closed (unlike `alertdialog`). However notification will capture ESC key so we need to inform user\r
+                               // why it does not do other actions.\r
+                               say( editor.lang.notification.closed );\r
+\r
+                               // Hide last.\r
+                               notifications[ notifications.length - 1 ].hide();\r
+\r
+                               evt.cancel();\r
+                       }\r
+               } );\r
+\r
+               // Send the message to the screen readers.\r
+               function say( text ) {\r
+                       var message = new CKEDITOR.dom.element( 'div' );\r
+                       message.setStyles( {\r
+                               position: 'fixed',\r
+                               'margin-left': '-9999px'\r
+                       } );\r
+                       message.setAttributes( {\r
+                               'aria-live': 'assertive',\r
+                               'aria-atomic': 'true'\r
+                       } );\r
+                       message.setText( text );\r
+\r
+                       CKEDITOR.document.getBody().append( message );\r
+\r
+                       setTimeout( function() {\r
+                               message.remove();\r
+                       }, 100 );\r
+               }\r
+       }\r
+} );\r
+\r
+/**\r
+ * Notification class. Notifications are used to display short messages to the user. They might be used to show the result of\r
+ * asynchronous actions or information about changes in the editor content. It is recommended to use them instead of\r
+ * alert dialogs. They should **not** be used if a user response is required nor with dialog windows (e.g. in dialog validation).\r
+ *\r
+ * There are four types of notifications available, see the {@link #type} property.\r
+ *\r
+ * Note that the notification constructor only creates a notification instance. To show it, use the {@link #show} method:\r
+ *\r
+ *             var notification = new CKEDITOR.plugins.notification( editor, { message: 'Foo' } );\r
+ *             notification.show();\r
+ *\r
+ * You can also use the {@link CKEDITOR.editor#showNotification} method:\r
+ *\r
+ *             editor.showNotification( 'Foo' );\r
+ *\r
+ * All of the notification actions: ({@link #show}, {@link #update} and {@link #hide}) fire cancelable events\r
+ * on the related {@link CKEDITOR.editor} instance so you can integrate editor notifications with your website notifications.\r
+ *\r
+ * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article for more information about this feature.\r
+ *\r
+ * @since 4.5\r
+ * @class CKEDITOR.plugins.notification\r
+ * @constructor Create a notification object. Call {@link #show} to show the created notification.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ * @param {Object} options\r
+ * @param {String} options.message The message displayed in the notification.\r
+ * @param {String} [options.type='info'] Notification type, see {@link #type}.\r
+ * @param {Number} [options.progress=0] If the type is `progress` this may be a progress from 0 to 1.\r
+ * @param {Number} [options.duration] How long the notification will be visible, see {@link #duration}.\r
+ */\r
+function Notification( editor, options ) {\r
+       CKEDITOR.tools.extend( this, options, {\r
+               editor: editor,\r
+               id: 'cke-' + CKEDITOR.tools.getUniqueId(),\r
+               area: editor._.notificationArea\r
+       } );\r
+\r
+       if ( !options.type ) {\r
+               this.type = 'info';\r
+       }\r
+\r
+       this.element = this._createElement();\r
+\r
+       // Don't allow dragging on notification (http://dev.ckeditor.com/ticket/13184).\r
+       editor.plugins.clipboard && CKEDITOR.plugins.clipboard.preventDefaultDropOnElement( this.element );\r
+}\r
+\r
+/**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+\r
+/**\r
+ * Message displayed in the notification.\r
+ *\r
+ * @readonly\r
+ * @property {String} message\r
+ */\r
+\r
+/**\r
+ * Notification type. There are four types available:\r
+ *\r
+ * * `info` (default) &ndash; Information for the user (e.g. "File is uploading.", "ACF modified content."),\r
+ * * `warning` &ndash; Warning or error message (e.g. "This type of file is not supported.",\r
+ * "You cannot paste the script."),\r
+ * * `success` &ndash; Information that an operation finished successfully (e.g. "File uploaded.", "Data imported.").\r
+ * * `progress` &ndash; Information about the progress of an operation. When the operation is done, the notification\r
+ * type should be changed to `success`.\r
+ *\r
+ * @readonly\r
+ * @property {String} type\r
+ */\r
+\r
+/**\r
+ * If the notification {@link #type} is `'progress'`, this is the progress from `0` to `1`.\r
+ *\r
+ * @readonly\r
+ * @property {Number} progress\r
+ */\r
+\r
+/**\r
+ * Notification duration. Determines after how many milliseconds the notification should close automatically.\r
+ * `0` means that the notification will not close automatically and that the user needs to close it manually.\r
+ * The default value for `warning` and `progress` notifications is `0`. For `info` and `success` the value can\r
+ * either be set through the {@link CKEDITOR.config#notification_duration} configuration option or equals `5000`\r
+ * if the configuration option is not set.\r
+ *\r
+ * @readonly\r
+ * @property {Number} duration\r
+ */\r
+\r
+/**\r
+ * Unique notification ID.\r
+ *\r
+ * @readonly\r
+ * @property {Number} id\r
+ */\r
+\r
+/**\r
+ * Notification DOM element. There is one element per notification. It is created when the notification is created,\r
+ * even if it is not shown. If the notification is hidden, the element is detached from the document but not deleted.\r
+ * It will be reused if the notification is shown again.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} element\r
+ */\r
+\r
+/**\r
+ * {@link CKEDITOR.plugins.notification.area Notification area} reference.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.plugins.notification.area} area\r
+ */\r
+\r
+Notification.prototype = {\r
+       /**\r
+        * Adds the notification element to the notification area. The notification will be hidden automatically if\r
+        * {@link #duration} is set.\r
+        *\r
+        * Fires the {@link CKEDITOR.editor#notificationShow} event.\r
+        */\r
+       show: function() {\r
+               if ( this.editor.fire( 'notificationShow', { notification: this } ) === false ) {\r
+                       return;\r
+               }\r
+\r
+               this.area.add( this );\r
+\r
+               this._hideAfterTimeout();\r
+       },\r
+\r
+       /**\r
+        * Updates the notification object and element.\r
+        *\r
+        * Fires the {@link CKEDITOR.editor#notificationUpdate} event.\r
+        *\r
+        * @param {Object} options\r
+        * @param {String} [options.message] {@link #message}\r
+        * @param {String} [options.type] {@link #type}\r
+        * @param {Number} [options.progress] {@link #progress}\r
+        * @param {Number} [options.duration] {@link #duration}\r
+        * @param {Boolean} [options.important=false] If the update is important, the notification will be shown\r
+        * if it was hidden and read by screen readers.\r
+        */\r
+       update: function( options ) {\r
+               var show = true;\r
+\r
+               if ( this.editor.fire( 'notificationUpdate', { notification: this, options: options } ) === false ) {\r
+                       // The idea of cancelable event is to let user create his own way of displaying notification, so if\r
+                       // `notificationUpdate` event will be canceled there will be no interaction with notification area, but on\r
+                       // the other hand the logic should work anyway so object will be updated (including `element` property).\r
+                       // Note: we can safely update the element's attributes below, because this element is created inside\r
+                       // the constructor. If the notificatinShow event was canceled as well, the element is detached from DOM.\r
+                       show = false;\r
+               }\r
+\r
+               var element = this.element,\r
+                       messageElement = element.findOne( '.cke_notification_message' ),\r
+                       progressElement = element.findOne( '.cke_notification_progress' ),\r
+                       type = options.type;\r
+\r
+               element.removeAttribute( 'role' );\r
+\r
+               // Change type to progress if `options.progress` is set.\r
+               if ( options.progress && this.type != 'progress' ) {\r
+                       type = 'progress';\r
+               }\r
+\r
+               if ( type ) {\r
+                       element.removeClass( this._getClass() );\r
+                       element.removeAttribute( 'aria-label' );\r
+\r
+                       this.type = type;\r
+\r
+                       element.addClass( this._getClass() );\r
+                       element.setAttribute( 'aria-label', this.type );\r
+\r
+                       if ( this.type == 'progress' && !progressElement ) {\r
+                               progressElement = this._createProgressElement();\r
+                               progressElement.insertBefore( messageElement );\r
+                       } else if ( this.type != 'progress' && progressElement ) {\r
+                               progressElement.remove();\r
+                       }\r
+               }\r
+\r
+               if ( options.message !== undefined ) {\r
+                       this.message = options.message;\r
+                       messageElement.setHtml( this.message );\r
+               }\r
+\r
+               if ( options.progress !== undefined ) {\r
+                       this.progress = options.progress;\r
+\r
+                       if ( progressElement ) {\r
+                               progressElement.setStyle( 'width', this._getPercentageProgress() );\r
+                       }\r
+               }\r
+\r
+               if ( show && options.important ) {\r
+                       element.setAttribute( 'role', 'alert' );\r
+\r
+                       if ( !this.isVisible() ) {\r
+                               this.area.add( this );\r
+                       }\r
+               }\r
+\r
+               // Overwrite even if it is undefined.\r
+               this.duration = options.duration;\r
+\r
+               this._hideAfterTimeout();\r
+       },\r
+\r
+       /**\r
+        * Removes the notification element from the notification area.\r
+        *\r
+        * Fires the {@link CKEDITOR.editor#notificationHide} event.\r
+        */\r
+       hide: function() {\r
+               if ( this.editor.fire( 'notificationHide', { notification: this } ) === false ) {\r
+                       return;\r
+               }\r
+\r
+               this.area.remove( this );\r
+       },\r
+\r
+       /**\r
+        * Returns `true` if the notification is in the notification area.\r
+        *\r
+        * @returns {Boolean} `true` if the notification is in the notification area.\r
+        */\r
+       isVisible: function() {\r
+               return CKEDITOR.tools.indexOf( this.area.notifications, this ) >= 0;\r
+       },\r
+\r
+       /**\r
+        * Creates the notification DOM element.\r
+        *\r
+        * @private\r
+        * @returns {CKEDITOR.dom.element} Notification DOM element.\r
+        */\r
+       _createElement: function() {\r
+               var notification = this,\r
+                       notificationElement, notificationMessageElement, notificationCloseElement,\r
+                       close = this.editor.lang.common.close;\r
+\r
+               notificationElement = new CKEDITOR.dom.element( 'div' );\r
+               notificationElement.addClass( 'cke_notification' );\r
+               notificationElement.addClass( this._getClass() );\r
+               notificationElement.setAttributes( {\r
+                       id: this.id,\r
+                       role: 'alert',\r
+                       'aria-label': this.type\r
+               } );\r
+\r
+               if ( this.type == 'progress' )\r
+                       notificationElement.append( this._createProgressElement() );\r
+\r
+               notificationMessageElement = new CKEDITOR.dom.element( 'p' );\r
+               notificationMessageElement.addClass( 'cke_notification_message' );\r
+               notificationMessageElement.setHtml( this.message );\r
+               notificationElement.append( notificationMessageElement );\r
+\r
+               notificationCloseElement = CKEDITOR.dom.element.createFromHtml(\r
+                       '<a class="cke_notification_close" href="javascript:void(0)" title="' + close + '" role="button" tabindex="-1">' +\r
+                               '<span class="cke_label">X</span>' +\r
+                       '</a>' );\r
+               notificationElement.append( notificationCloseElement );\r
+\r
+               notificationCloseElement.on( 'click', function() {\r
+                       // Focus editor on close (http://dev.ckeditor.com/ticket/12865)\r
+                       notification.editor.focus();\r
+\r
+                       notification.hide();\r
+               } );\r
+\r
+               return notificationElement;\r
+       },\r
+\r
+       /**\r
+        * Gets the notification CSS class.\r
+        *\r
+        * @private\r
+        * @returns {String} Notification CSS class.\r
+        */\r
+       _getClass: function() {\r
+               return ( this.type == 'progress' ) ?\r
+                       'cke_notification_info' :\r
+                       ( 'cke_notification_' + this.type );\r
+       },\r
+\r
+       /**\r
+        * Creates a progress element for the notification element.\r
+        *\r
+        * @private\r
+        * @returns {CKEDITOR.dom.element} Progress element for the notification element.\r
+        */\r
+       _createProgressElement: function() {\r
+               var element = new CKEDITOR.dom.element( 'span' );\r
+               element.addClass( 'cke_notification_progress' );\r
+               element.setStyle( 'width', this._getPercentageProgress() );\r
+               return element;\r
+       },\r
+\r
+       /**\r
+        * Gets the progress as a percentage (ex. `0.3` -> `30%`).\r
+        *\r
+        * @private\r
+        * @returns {String} Progress as a percentage.\r
+        */\r
+       _getPercentageProgress: function() {\r
+               return Math.round( ( this.progress || 0 ) * 100 ) + '%';\r
+       },\r
+\r
+       /**\r
+        * Hides the notification after a timeout.\r
+        *\r
+        * @private\r
+        */\r
+       _hideAfterTimeout: function() {\r
+               var notification = this,\r
+                       duration;\r
+\r
+               if ( this._hideTimeoutId ) {\r
+                       clearTimeout( this._hideTimeoutId );\r
+               }\r
+\r
+               if ( typeof this.duration == 'number' ) {\r
+                       duration = this.duration;\r
+               } else if ( this.type == 'info' || this.type == 'success' ) {\r
+                       duration = ( typeof this.editor.config.notification_duration == 'number' ) ?\r
+                               this.editor.config.notification_duration :\r
+                               5000;\r
+               }\r
+\r
+               if ( duration ) {\r
+                       notification._hideTimeoutId = setTimeout( function() {\r
+                               notification.hide();\r
+                       }, duration );\r
+               }\r
+       }\r
+};\r
+\r
+/**\r
+ * Notification area is an area where all notifications are put. The area is laid out dynamically.\r
+ * When the first notification is added, the area is shown and all listeners are added.\r
+ * When the last notification is removed, the area is hidden and all listeners are removed.\r
+ *\r
+ * @since 4.5\r
+ * @private\r
+ * @class CKEDITOR.plugins.notification.area\r
+ * @constructor\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+function Area( editor ) {\r
+       var that = this;\r
+\r
+       this.editor = editor;\r
+       this.notifications = [];\r
+       this.element = this._createElement();\r
+       this._uiBuffer = CKEDITOR.tools.eventsBuffer( 10, this._layout, this );\r
+       this._changeBuffer = CKEDITOR.tools.eventsBuffer( 500, this._layout, this );\r
+\r
+       editor.on( 'destroy', function() {\r
+               that._removeListeners();\r
+               that.element.remove();\r
+       } );\r
+}\r
+\r
+/**\r
+ * The editor instance.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.editor} editor\r
+ */\r
+\r
+/**\r
+ * The array of added notifications.\r
+ *\r
+ * @readonly\r
+ * @property {Array} notifications\r
+ */\r
+\r
+/**\r
+ * Notification area DOM element. This element is created when the area object is created. It will be attached to the document\r
+ * when the first notification is added and removed when the last notification is removed.\r
+ *\r
+ * @readonly\r
+ * @property {CKEDITOR.dom.element} element\r
+ */\r
+\r
+/**\r
+ * Notification width. Cached for performance reasons.\r
+ *\r
+ * @private\r
+ * @property {CKEDITOR.dom.element} _notificationWidth\r
+ */\r
+\r
+/**\r
+ * Notification margin. Cached for performance reasons.\r
+ *\r
+ * @private\r
+ * @property {CKEDITOR.dom.element} _notificationMargin\r
+ */\r
+\r
+/**\r
+ * Event buffer object for UI events to optimize performance.\r
+ *\r
+ * @private\r
+ * @property {Object} _uiBuffer\r
+ */\r
+\r
+/**\r
+ * Event buffer object for editor change events to optimize performance.\r
+ *\r
+ * @private\r
+ * @property {Object} _changeBuffer\r
+ */\r
+\r
+Area.prototype = {\r
+       /**\r
+        * Adds the notification to the notification area. If it is the first notification, the area will also be attached to\r
+        * the document and listeners will be attached.\r
+        *\r
+        * Note that the proper way to show a notification is to call the {@link CKEDITOR.plugins.notification#show} method.\r
+        *\r
+        * @param {CKEDITOR.plugins.notification} notification Notification to add.\r
+        */\r
+       add: function( notification ) {\r
+               this.notifications.push( notification );\r
+\r
+               this.element.append( notification.element );\r
+\r
+               if ( this.element.getChildCount() == 1 ) {\r
+                       CKEDITOR.document.getBody().append( this.element );\r
+                       this._attachListeners();\r
+               }\r
+\r
+               this._layout();\r
+       },\r
+\r
+       /**\r
+        * Removes the notification from the notification area. If it is the last notification, the area will also be\r
+        * detached from the document and listeners will be detached.\r
+        *\r
+        * Note that the proper way to hide a notification is to call the {@link CKEDITOR.plugins.notification#hide} method.\r
+        *\r
+        * @param {CKEDITOR.plugins.notification} notification Notification to remove.\r
+        */\r
+       remove: function( notification ) {\r
+               var i = CKEDITOR.tools.indexOf( this.notifications, notification );\r
+\r
+               if ( i < 0 ) {\r
+                       return;\r
+               }\r
+\r
+               this.notifications.splice( i, 1 );\r
+\r
+               notification.element.remove();\r
+\r
+               if ( !this.element.getChildCount() ) {\r
+                       this._removeListeners();\r
+                       this.element.remove();\r
+               }\r
+       },\r
+\r
+       /**\r
+        * Creates the notification area element.\r
+        *\r
+        * @private\r
+        * @returns {CKEDITOR.dom.element} Notification area element.\r
+        */\r
+       _createElement: function() {\r
+               var editor = this.editor,\r
+                       config = editor.config,\r
+                       notificationArea = new CKEDITOR.dom.element( 'div' );\r
+\r
+               notificationArea.addClass( 'cke_notifications_area' );\r
+               notificationArea.setAttribute( 'id', 'cke_notifications_area_' + editor.name );\r
+               notificationArea.setStyle( 'z-index', config.baseFloatZIndex - 2 );\r
+\r
+               return notificationArea;\r
+       },\r
+\r
+       /**\r
+        * Attaches listeners to the notification area.\r
+        *\r
+        * @private\r
+        */\r
+       _attachListeners: function() {\r
+               var win = CKEDITOR.document.getWindow(),\r
+                       editor = this.editor;\r
+\r
+               win.on( 'scroll', this._uiBuffer.input );\r
+               win.on( 'resize', this._uiBuffer.input );\r
+               editor.on( 'change', this._changeBuffer.input );\r
+               editor.on( 'floatingSpaceLayout', this._layout, this, null, 20 );\r
+               editor.on( 'blur', this._layout, this, null, 20 );\r
+       },\r
+\r
+       /**\r
+        * Detaches listeners from the notification area.\r
+        *\r
+        * @private\r
+        */\r
+       _removeListeners: function() {\r
+               var win = CKEDITOR.document.getWindow(),\r
+                       editor = this.editor;\r
+\r
+               win.removeListener( 'scroll', this._uiBuffer.input );\r
+               win.removeListener( 'resize', this._uiBuffer.input );\r
+               editor.removeListener( 'change', this._changeBuffer.input );\r
+               editor.removeListener( 'floatingSpaceLayout', this._layout );\r
+               editor.removeListener( 'blur', this._layout );\r
+       },\r
+\r
+       /**\r
+        * Sets the position of the notification area based on the editor content, toolbar as well as\r
+        * viewport position and dimensions.\r
+        *\r
+        * @private\r
+        */\r
+       _layout: function() {\r
+               var area = this.element,\r
+                       editor = this.editor,\r
+                       contentsRect = editor.ui.contentsElement.getClientRect(),\r
+                       contentsPos = editor.ui.contentsElement.getDocumentPosition(),\r
+                       top,\r
+                       topRect,\r
+                       areaRect = area.getClientRect(),\r
+                       notification,\r
+                       notificationWidth = this._notificationWidth,\r
+                       notificationMargin = this._notificationMargin,\r
+                       win = CKEDITOR.document.getWindow(),\r
+                       scrollPos = win.getScrollPosition(),\r
+                       viewRect = win.getViewPaneSize(),\r
+                       body = CKEDITOR.document.getBody(),\r
+                       bodyPos = body.getDocumentPosition(),\r
+                       cssLength = CKEDITOR.tools.cssLength;\r
+\r
+               // Cache for optimization\r
+               if ( !notificationWidth || !notificationMargin ) {\r
+                       notification = this.element.getChild( 0 );\r
+                       notificationWidth = this._notificationWidth = notification.getClientRect().width;\r
+                       notificationMargin = this._notificationMargin =\r
+                               parseInt( notification.getComputedStyle( 'margin-left' ), 10 ) +\r
+                               parseInt( notification.getComputedStyle( 'margin-right' ), 10 );\r
+               }\r
+\r
+               // Check if toolbar exist and if so, then assign values to it (#491).\r
+               if ( editor.toolbar ) {\r
+                       top = editor.ui.space( 'top' );\r
+                       topRect = top.getClientRect();\r
+               }\r
+\r
+\r
+               // --------------------------------------- Horizontal layout ----------------------------------------\r
+\r
+               // +---Viewport-------------------------------+          +---Viewport-------------------------------+\r
+               // |                                          |          |                                          |\r
+               // | +---Toolbar----------------------------+ |          | +---Content----------------------------+ |\r
+               // | |                                      | |          | |                                      | |\r
+               // | +---Content----------------------------+ |          | |                                      | |\r
+               // | |                                      | |          | +---Toolbar----------------------+     | |\r
+               // | |      +------Notification------+      | |          | |                                |     | |\r
+               // | |                                      | |    OR    | +--------------------------------+     | |\r
+               // | |                                      | |          | |                                      | |\r
+               // | |                                      | |          | |      +------Notification------+      | |\r
+               // | |                                      | |          | |                                      | |\r
+               // | |                                      | |          | |                                      | |\r
+               // | +--------------------------------------+ |          | +--------------------------------------+ |\r
+               // +------------------------------------------+          +------------------------------------------+\r
+               if ( top && top.isVisible() &&\r
+                       topRect.bottom > contentsRect.top &&\r
+                       topRect.bottom < contentsRect.bottom - areaRect.height ) {\r
+                       setBelowToolbar();\r
+\r
+               // +---Viewport-------------------------------+\r
+               // |                                          |\r
+               // | +---Content----------------------------+ |\r
+               // | |                                      | |\r
+               // | |      +------Notification------+      | |\r
+               // | |                                      | |\r
+               // | |                                      | |\r
+               // | |                                      | |\r
+               // | +--------------------------------------+ |\r
+               // |                                          |\r
+               // +------------------------------------------+\r
+               } else if ( contentsRect.top > 0 ) {\r
+                       setTopStandard();\r
+\r
+               //   +---Content----------------------------+\r
+               //   |                                      |\r
+               // +---Viewport-------------------------------+\r
+               // | |                                      | |\r
+               // | |      +------Notification------+      | |\r
+               // | |                                      | |\r
+               // | |                                      | |\r
+               // | |                                      | |\r
+               // | +--------------------------------------+ |\r
+               // |                                          |\r
+               // +------------------------------------------+\r
+               } else if ( contentsPos.y + contentsRect.height - areaRect.height > scrollPos.y ) {\r
+                       setTopFixed();\r
+\r
+               //   +---Content----------------------------+              +---Content----------------------------+\r
+               //   |                                      |              |                                      |\r
+               //   |                                      |              |                                      |\r
+               //   |                                      |              |      +------Notification------+      |\r
+               //   |                                      |              |                                      |\r
+               //   |                                      |      OR      +--------------------------------------+\r
+               // +---Viewport-------------------------------+\r
+               // | |      +------Notification------+      | |          +---Viewport-------------------------------+\r
+               // | |                                      | |          |                                          |\r
+               // | +--------------------------------------+ |          |                                          |\r
+               // |                                          |          |                                          |\r
+               // +------------------------------------------+          +------------------------------------------+\r
+               } else {\r
+                       setBottom();\r
+               }\r
+\r
+               function setTopStandard() {\r
+                       area.setStyles( {\r
+                               position: 'absolute',\r
+                               top: cssLength( contentsPos.y )\r
+                       } );\r
+               }\r
+\r
+               function setBelowToolbar() {\r
+                       area.setStyles( {\r
+                               position: 'fixed',\r
+                               top: cssLength( topRect.bottom )\r
+                       } );\r
+               }\r
+\r
+               function setTopFixed() {\r
+                       area.setStyles( {\r
+                               position: 'fixed',\r
+                               top: 0\r
+                       } );\r
+               }\r
+\r
+               function setBottom() {\r
+                       area.setStyles( {\r
+                               position: 'absolute',\r
+                               top: cssLength( contentsPos.y + contentsRect.height - areaRect.height )\r
+                       } );\r
+               }\r
+\r
+               // ---------------------------------------- Vertical layout -----------------------------------------\r
+\r
+               var leftBase = area.getStyle( 'position' ) == 'fixed' ?\r
+                       contentsRect.left :\r
+                       body.getComputedStyle( 'position' ) != 'static' ? contentsPos.x - bodyPos.x : contentsPos.x;\r
+\r
+               // Content is narrower than notification\r
+               if ( contentsRect.width < notificationWidth + notificationMargin ) {\r
+\r
+                       // +---Viewport-------------------------------+\r
+                       // |                                          |\r
+                       // |                 +---Content------------+ |\r
+                       // |                 |                      | |\r
+                       // |             +------Notification------+ | |\r
+                       // |                 |                      | |\r
+                       // |                 +----------------------+ |\r
+                       // |                                          |\r
+                       // +------------------------------------------+\r
+                       if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) {\r
+                               setRight();\r
+\r
+                       // +---Viewport-------------------------------+               +---Viewport--------------------------+\r
+                       // |                                          |               |                                     |\r
+                       // |     +---Content------------+             |            +---Content------------+                 |\r
+                       // |     |                      |             |            |  |                   |                 |\r
+                       // |     | +------Notification------+         |    OR      | +------Notification------+             |\r
+                       // |     |                      |             |            |  |                   |                 |\r
+                       // |     +----------------------+             |            +----------------------+                 |\r
+                       // |                                          |               |                                     |\r
+                       // +------------------------------------------+               +-------------------------------------+\r
+                       } else {\r
+                               setLeft();\r
+                       }\r
+\r
+               // Content is wider than notification.\r
+               } else {\r
+\r
+                       //                       +--+Viewport+------------------------+\r
+                       //                       |                                    |\r
+                       //                       |             +---Content-----------------------------------------+\r
+                       //                       |             |                      |                            |\r
+                       //                       |             | +-----+Notification+-----+                        |\r
+                       //                       |             |                      |                            |\r
+                       //                       |             |                      |                            |\r
+                       //                       |             |                      |                            |\r
+                       //                       |             +---------------------------------------------------+\r
+                       //                       |                                    |\r
+                       //                       +------------------------------------+\r
+                       if ( contentsPos.x + notificationWidth + notificationMargin > scrollPos.x + viewRect.width ) {\r
+                               setLeft();\r
+\r
+                       //                       +---Viewport-------------------------+\r
+                       //                       |                                    |\r
+                       //                       |  +---Content----------------------------------------------+\r
+                       //                       |  |                                 |                      |\r
+                       //                       |  |      +------Notification------+ |                      |\r
+                       //                       |  |                                 |                      |\r
+                       //                       |  |                                 |                      |\r
+                       //                       |  +--------------------------------------------------------+\r
+                       //                       |                                    |\r
+                       //                       +------------------------------------+\r
+                       } else if ( contentsPos.x + contentsRect.width / 2 +\r
+                               notificationWidth / 2 + notificationMargin > scrollPos.x + viewRect.width ) {\r
+                               setRightFixed();\r
+\r
+                       //                       +---Viewport-------------------------+\r
+                       //                       |                                    |\r
+                       //   +---Content----------------------------+                 |\r
+                       //   |                   |                  |                 |\r
+                       //   |           +------Notification------+ |                 |\r
+                       //   |                   |                  |                 |\r
+                       //   |                   |                  |                 |\r
+                       //   +--------------------------------------+                 |\r
+                       //                       |                                    |\r
+                       //                       +------------------------------------+\r
+                       } else if ( contentsRect.left + contentsRect.width - notificationWidth - notificationMargin < 0 ) {\r
+                               setRight();\r
+\r
+                       //                       +---Viewport-------------------------+\r
+                       //                       |                                    |\r
+                       // +---Content---------------------------------------------+  |\r
+                       // |                     |                                 |  |\r
+                       // |                     | +------Notification------+      |  |\r
+                       // |                     |                                 |  |\r
+                       // |                     |                                 |  |\r
+                       // +-------------------------------------------------------+  |\r
+                       //                       |                                    |\r
+                       //                       +------------------------------------+\r
+                       } else if ( contentsRect.left + contentsRect.width / 2 - notificationWidth / 2 < 0 ) {\r
+                               setLeftFixed();\r
+\r
+                       //                       +---Viewport-------------------------+\r
+                       //                       |                                    |\r
+                       //                       | +---Content----------------------+ |\r
+                       //                       | |                                | |\r
+                       //                       | |    +-----Notification-----+    | |\r
+                       //                       | |                                | |\r
+                       //                       | |                                | |\r
+                       //                       | +--------------------------------+ |\r
+                       //                       |                                    |\r
+                       //                       +------------------------------------+\r
+                       } else {\r
+                               setCenter();\r
+                       }\r
+               }\r
+\r
+               function setLeft() {\r
+                       area.setStyle( 'left', cssLength( leftBase ) );\r
+               }\r
+\r
+               function setLeftFixed() {\r
+                       area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x ) );\r
+               }\r
+\r
+               function setCenter() {\r
+                       area.setStyle( 'left', cssLength( leftBase + contentsRect.width / 2 - notificationWidth / 2 - notificationMargin / 2 ) );\r
+               }\r
+\r
+               function setRight() {\r
+                       area.setStyle( 'left', cssLength( leftBase + contentsRect.width - notificationWidth - notificationMargin ) );\r
+               }\r
+\r
+               function setRightFixed() {\r
+                       area.setStyle( 'left', cssLength( leftBase - contentsPos.x + scrollPos.x + viewRect.width -\r
+                               notificationWidth - notificationMargin ) );\r
+               }\r
+       }\r
+};\r
+\r
+CKEDITOR.plugins.notification = Notification;\r
+\r
+/**\r
+ * After how many milliseconds the notification of the `info` and `success`\r
+ * {@link CKEDITOR.plugins.notification#type type} should close automatically.\r
+ * `0` means that notifications will not close automatically.\r
+ * Note that `warning` and `progress` notifications will never close automatically.\r
+ *\r
+ * Refer to the [Notifications](http://docs.ckeditor.com/#!/guide/dev_notifications) article\r
+ * for more information about this feature.\r
+ *\r
+ * @since 4.5\r
+ * @cfg {Number} [notification_duration=5000]\r
+ * @member CKEDITOR.config\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#show} method is called, before the\r
+ * notification is shown. If this event is canceled, the notification will not be shown.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be shown. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationShow\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be shown.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#update} method is called, before the\r
+ * notification is updated. If this event is canceled, the notification will not be shown even if the update was important,\r
+ * but the object will be updated anyway. Note that canceling this event does not prevent updating {@link #element}\r
+ * attributes, but if {@link #notificationShow} was canceled as well, this element is detached from the DOM.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be updated. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationUpdate\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be updated.\r
+ * Note that it contains the data that has not been updated yet.\r
+ * @param {Object} data.options Update options, see {@link CKEDITOR.plugins.notification#update}.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
+\r
+/**\r
+ * Event fired when the {@link CKEDITOR.plugins.notification#hide} method is called, before the\r
+ * notification is hidden. If this event is canceled, the notification will not be hidden.\r
+ *\r
+ * Using this event allows you to fully customize how a notification will be hidden. It may be used to integrate\r
+ * the CKEditor notification system with your web page notifications.\r
+ *\r
+ * @since 4.5\r
+ * @event notificationHide\r
+ * @member CKEDITOR.editor\r
+ * @param data\r
+ * @param {CKEDITOR.plugins.notification} data.notification Notification which will be hidden.\r
+ * @param {CKEDITOR.editor} editor The editor instance.\r
+ */\r
diff --git a/sources/plugins/oembed/LICENSE.md b/sources/plugins/oembed/LICENSE.md
new file mode 100644 (file)
index 0000000..be0064f
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License (MIT)\r
+\r
+Copyright (c) Ingo Herbote\r
+\r
+Permission is hereby granted, free of charge, to any person obtaining a copy\r
+of this software and associated documentation files (the "Software"), to deal\r
+in the Software without restriction, including without limitation the rights\r
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+copies of the Software, and to permit persons to whom the Software is\r
+furnished to do so, subject to the following conditions:\r
+\r
+The above copyright notice and this permission notice shall be included in all\r
+copies or substantial portions of the Software.\r
+\r
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+SOFTWARE.\r
diff --git a/sources/plugins/oembed/README.md b/sources/plugins/oembed/README.md
new file mode 100644 (file)
index 0000000..64c729c
--- /dev/null
@@ -0,0 +1,201 @@
+CKEditor-oEmbed-Plugin\r
+======================\r
+\r
+oEmbed Plugin for CKEditor\r
+\r
+This Plugin allows to insert embedded content (such as photos, videos, audio, and other rich media) via the OEmbed API. You only have to provide the url to the site (It works also when the url is shortened) you want to embed and the plugin does the rest.\r
+\r
+This Plugin uses the jquery-oembed-all Plugin  located at https://github.com/starfishmod/jquery-oembed-all.\r
+\r
+####Demo\r
+\r
+http://w8tcha.github.com/CKEditor-oEmbed-Plugin/\r
+\r
+####Currently Supported Sites...\r
+\r
+###Video\r
+* Youtube - oembed - YQL\r
+* Blip - oEmbed\r
+* Hulu - oEmbed\r
+* Vimeo - oEmbed\r
+* National film board of Canada - oEmbed\r
+* Qik - oEmbed\r
+* Dotsub - oEmbed\r
+* Clikthrough - oEmbed\r
+* Kino Map - oEmbed\r
+* Funny Or Die - Embedded\r
+* College Humour - Embedded\r
+* Metacafe - Embedded\r
+* embedr - Embedded\r
+* 5min - oEmbed is XML only - using YQL to translate it\r
+* ustream.tv - oEmbed is not JSONP enabled - using YQL to translate it\r
+* viddler - OGP\r
+* twitvid - Embedded\r
+* bambuser - Embedded\r
+* xtranormal - Embedded\r
+* Gametrailers - Embedded\r
+* Vzarr - Embedded\r
+* VHX - oembed\r
+* bambuser - oembed\r
+* dailymotion.com - oembed\r
+* animoto - oembed\r
+* justin.tv - YQL JSON\r
+* livestream - OGP\r
+* scivee - embedded\r
+* veoh - embedded\r
+* minoto-video - oembed using YQL\r
+* TrailerAddict - OGP\r
+* vodpod - oembed YQL - broken as the oembed has absolute positioning which breaks the display\r
+* fora.tv -OGP YQL\r
+* TED - OGP YQL\r
+* Aniboom - embedded\r
+* Comedy Central - OGP\r
+* snotr - embedded\r
+* zapiks - OGP\r
+* youku - embedded\r
+* wistia - Oembed\r
+\r
+###Audio\r
+* Soundcloud - oEmbed\r
+* HuffDuffer - oEmbed\r
+* BandCamp - YQL and Embedded\r
+* podomatic - OGP\r
+* rdio.com - oEmbed\r
+* hark.com - OGP\r
+* chirb.it - YQL and oembed\r
+* official.fm - YQL and oembed\r
+* mixcloud - YQL and oembed\r
+* shoudio - oembed\r
+* audioboo.fm - OGP\r
+* Spotify - OGP YQL\r
+\r
+###Photo\r
+* flickr - oEmbed\r
+* photobucket - oEmbed\r
+* instagram - oEmbed\r
+* yfrog - oEmbed\r
+* 23HQ - oEmbed\r
+* Smugmug - oEmbed\r
+* twitpic - OGP YQL\r
+* 500px.com - OGP\r
+* visual.ly - YQL Lookup\r
+* img.ly - Thumbnail view\r
+* imgur.com - Thumbnail view\r
+* twitgoo.com - Thumbnail view\r
+* gravatar - Thumbnail view when using mailto\r
+* pintrest - YQL - Embedded view of a sort.\r
+* circuitlab - image view\r
+* skitch - YQL oembed\r
+* graphic.ly  - OGP\r
+* dribble - jsonp lookup\r
+* Lockerz - YQL lookup\r
+* AsciiArtFarts - YQL Lookup\r
+* lego cusoo - OGP over YQL\r
+* plannary - OGP over YQL\r
+* propic - OGP\r
+* avairy.com - OGP\r
+* lomography - ogp\r
+* weheartit - ogp\r
+* glogster - ogp\r
+* chart.ly - embedded\r
+* twitrpix - OGP\r
+* chictopia - OGP\r
+\r
+###Rich\r
+* Meetup - oEmbed\r
+* gigapans - Embedded\r
+* Slideshare - oEmbed\r
+* ebay - Embedded\r
+* scribd - Embedded\r
+* screenr - Embedded\r
+* tumblr- JSONP lookup\r
+* imdb - JSONP lookup via imdbapi.com\r
+* wikipedia- JSONP lookup\r
+* github- JSONP lookup (CSS)\r
+* eventful - OGP\r
+* myspace - OGP\r
+* live Journal - JSONP Lookup (CSS)\r
+* wordpress - oEmbed (wordpress.com, wp.me, blogs.cnn.com, techcrunch.com). I can add other wordpress sites as well.\r
+* circuitbee -Embedded\r
+* stack overflow - JSONP Lookup (CSS)\r
+* Facebook - JSONP Lookup (CSS)\r
+* Pastebin - Embedded\r
+* Pastie - YQL lookup\r
+* kickstarter - Embedded\r
+* issuu - OGP\r
+* reelapp.com - Embedded\r
+* Etsy - OGP over YQL\r
+* Amazon - Embedded - Requires Affiliate code\r
+* linkedin - Embedded IFRAME - found a link that works :)\r
+* Lanyrd - YQL (CSS)\r
+* twitter - Oembed - status only - but that is ok I think\r
+* github gist - oembed\r
+* speakerdeck - yql oembed\r
+* dipity - yql oembed\r
+* dailymile - oembed\r
+* deviantart - oembed\r
+* Roomshare Japan - oembed\r
+* mobypictures - oembed\r
+* prezi - embedded\r
+* popplet - embedded\r
+* authorstream - OGP\r
+* googlecalendar - Iframe\r
+* cacoo - oembed\r
+* pearltrees - embedded\r
+* urtak - oembed - is broken in iframe return atm -seems to be an embed.ly issue??\r
+* jotform - embedded\r
+* Urban Dictionary - YQL lookup\r
+* Ars Technica - YQL Lookup\r
+* Eventbrite - OGP YQL\r
+* last.fm OGP YQL\r
+* Rotten Tomatoes - OGP YQL\r
+* iFixit - OGP\r
+* qwiki - OGP\r
+* brighttalk - Meta info\r
+* tinychat - OGP\r
+* tourwrist - embedded\r
+* bnter - OGP\r
+* bigthink - OGP\r
+* wirewax - OGP\r
+* whosay - OGP\r
+* timetoast - embedded\r
+* tripline - OGP\r
+* jsfiddle - embedded\r
+\r
+\r
+####License\r
+\r
+Licensed under the terms of the MIT License.\r
+\r
+####Dependencies\r
+This Plugin requires the following plugins to work: Widget, Dialog.\r
+\r
+####Installation\r
+\r
+ 1. Before you can use the plugin you also need to download & install the widget plugin, if you have it not installed. http://ckeditor.com/addon/widget\r
+ 2. Extract the contents of the file into the "plugins" folder of CKEditor.\r
+ 3. In the CKEditor configuration file (config.js) add the following code:\r
+\r
+````js\r
+config.extraPlugins = 'oembed,widget';\r
+````\r
+\r
+2a. Additionally you can also set the default values vor the Max. Width/Height Values\r
+\r
+````js\r
+config.oembed_maxWidth = '560';\r
+config.oembed_maxHeight = '315';\r
+````\r
+\r
+and also you can define an css class for the embeded content wrapper (div), by default there is no Class defined\r
+\r
+````js\r
+config.oembed_WrapperClass = 'embededContent';\r
+````\r
+\r
+\r
+3. and also include the plugin in the toolbar\r
+\r
+````js\r
+toolbar :[ ... ['oembed']...]\r
+````\r
diff --git a/sources/plugins/oembed/icons/hidpi/oembed.png b/sources/plugins/oembed/icons/hidpi/oembed.png
new file mode 100644 (file)
index 0000000..a568d17
Binary files /dev/null and b/sources/plugins/oembed/icons/hidpi/oembed.png differ
diff --git a/sources/plugins/oembed/icons/oembed.png b/sources/plugins/oembed/icons/oembed.png
new file mode 100644 (file)
index 0000000..2ba7cce
Binary files /dev/null and b/sources/plugins/oembed/icons/oembed.png differ
diff --git a/sources/plugins/oembed/lang/de.js b/sources/plugins/oembed/lang/de.js
new file mode 100644 (file)
index 0000000..69422ae
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'de', {\r
+    title : "Medien Inhalt einbinden (Bilder, Video, Inhalt)",\r
+       button : "Medien Inhalt von Verschiedenen Seiten einbinden",\r
+       pasteUrl : "Fügen Sie eine Url (Gekürzte Urls werden auch erkannt) ein von einer Seite die Unterstützt wird (z.B.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+       invalidUrl : "Sie müssem eine korrekte URL an!",\r
+       noEmbedCode : "Kein embed Code gefunden, oder Seite wird nicht Unterstützt!",\r
+       url : "URL:",\r
+       width: "Breite:",\r
+       height: "Höhe:",\r
+       widthTitle: "Breite für den eingebundenen Inhalt",\r
+       heightTitle: "Höhe für den eingebundenen Inhalt",\r
+       maxWidth: "Max. Breite:",\r
+       maxHeight: "Max. Höhe:",\r
+       maxWidthTitle: "Maximale Breite für den eingebundenen Inhalt",\r
+       maxHeightTitle: "Maximale Höhe für den eingebundenen Inhalt",\r
+       resizeType: "Größenveränderungsmodus (Nur Video's):",\r
+       none:'None',\r
+    noresize: "Keine Veränderung (Standardgröße)",\r
+       responsive: "Responsive",\r
+       custom: "Eigene Größe",\r
+       noVimeo: "Der Eigentümber dieses Videos hat Domain einschränkungen für dieses Video gesetzt das Video kann nicht in die Webseite eingebunden werden.",\r
+       Error: "Inhalt konnte nicht gefunden werden, bitte Versuchen sie eine Andere URL."\r
+});\r
diff --git a/sources/plugins/oembed/lang/en.js b/sources/plugins/oembed/lang/en.js
new file mode 100644 (file)
index 0000000..e461f03
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'en', {\r
+       title: "Embed Media Content (Photo, Video, Audio or Rich Content)",\r
+    button: "Embed Media from External Sites",\r
+    pasteUrl: "Paste a URL (shorted URLs are also supported) from one of the supported sites (e.g. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.).",\r
+    invalidUrl: "Please provide a valid URL.",\r
+    noEmbedCode: "No embed code found, or site is not supported.",\r
+    url: "URL:",\r
+    width: "Width:",\r
+    height: "Height:",\r
+    widthTitle: "Width for the embeded content",\r
+    heightTitle: "Height for the embeded content",\r
+    maxWidth: "Max. Width:",\r
+    maxHeight: "Max. Height:",\r
+    maxWidthTitle: "Maximum Width for the embeded Content",\r
+    maxHeightTitle: "Maximum Height for the embeded Content",\r
+       none:'None',\r
+    resizeType: "Resize Type (videos only):",\r
+    noresize: "No Resize (use default)",\r
+    responsive: "Responsive Resize",\r
+    custom: "Specific Resize",\r
+    noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.",\r
+    Error: "Media Content could not been retrieved, please try a different URL."\r
+});\r
diff --git a/sources/plugins/oembed/lang/fr.js b/sources/plugins/oembed/lang/fr.js
new file mode 100644 (file)
index 0000000..c1e0650
--- /dev/null
@@ -0,0 +1,25 @@
+// French Translation by https://github.com/wissim\r
+\r
+CKEDITOR.plugins.setLang('oembed', 'fr', {\r
+       title : "Intégrer des contenus multimédia externes. (Photo, Video, Audio, ...)",\r
+       button : "Insérer des contenus multimédia provenant de nombreux sites.",\r
+       pasteUrl : "Coller l'URL de partage que vous voulez publier. De nombreux services sont pris en charge tels que : (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.). Vous pouvez aussi utiliser les URLs courtes.",\r
+       invalidUrl : "Merci de fournir une URL valide !",\r
+       noEmbedCode : "Aucun code d'intégration trouvé ou le site n'est pas supporté !",\r
+       url : "URL:",\r
+       width: "Largeur:",\r
+       height: "Hauteur:",\r
+       widthTitle: "Largeur du conteneur.",\r
+       heightTitle: "Hauteur du conteneur.",\r
+       maxWidth: "Max. Largeur:",\r
+       maxHeight: "Max. Hauteur:",\r
+       maxWidthTitle: "Largeur maximale du conteneur.",\r
+       maxHeightTitle: "Hauteur maximale du conteneur.",\r
+       resizeType: "Resize Type (Only Video's):",\r
+       none:'None',\r
+    noresize: "No Resize (use default)",\r
+       responsive: "Responsive Resize",\r
+       custom: "Specific Resize",\r
+       noVimeo: "The owner of this video has set domain restrictions and you will not be able to embed it on your website.",\r
+       Error: "Media Content could not been retrieved, please try a different URL."\r
+});\r
diff --git a/sources/plugins/oembed/lang/nl.js b/sources/plugins/oembed/lang/nl.js
new file mode 100644 (file)
index 0000000..94cf8ad
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'nl', {\r
+       title : "Integratie van media-inhoud (foto's, video, content)",\r
+       button : "Media-inhoud van externe websites",\r
+       pasteUrl : "Geef een URL van een pagina in dat ondersteund wordt (Bijv.: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+       invalidUrl : "Gelieve een geldige URL op te geven!",\r
+       noEmbedCode : "Geen embed code gevonden, of de website wordt niet ondersteund!",\r
+       url : "URL:",\r
+       width: "Breedte:",\r
+       height: "Hoogte:",\r
+       widthTitle: "Breedte voor de ingevoegde inhoud",\r
+       heightTitle: "Hoogte voor de ingevoegde inhoud",\r
+       maxWidth: "Maximale breedte:",\r
+       maxHeight: "Maximale hoogte:",\r
+       maxWidthTitle: "Maximum breedte voor de ingevoegde inhoud",\r
+       maxHeightTitle: "Maximum hoogte voor de ingevoegde inhoud",\r
+       none:'None',\r
+    resizeType: "Type formaat aanpassing (enkel video's):",\r
+       noresize: "Geen formaat aanpassing (gebruik standaard)",\r
+       responsive: "Responsieve formaat aanpassing",\r
+       custom: "Specifieke formaat aanpassing",\r
+       noVimeo: "De eigenaar van deze video heeft restricties ingesteld waardoor je deze video niet kunt invoegen op je eigen website.",\r
+       Error: "Media inhoud kon niet worden opgehaald, gelieve een andere URL te proberen."\r
+});\r
diff --git a/sources/plugins/oembed/lang/pl.js b/sources/plugins/oembed/lang/pl.js
new file mode 100644 (file)
index 0000000..a7d7b92
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'pl', {\r
+    title: "Osadzanie multimediów (zdjęć, filmów, dźwięku, bogatych treści)",\r
+    button: "Osadzanie multimediów z witryn zewnętrznych",\r
+    pasteUrl: "Wklej tutaj adres URL (adresy skrócone są również obsługiwane) z jednej z obsługiwanych stron (YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, itp.).",\r
+    invalidUrl: "Proszę wprowadzić prawidłowy adres URL!",\r
+    noEmbedCode: "Odnośnik nieprawidłowy lub nieobsługiwany!",\r
+    url: "URL:",\r
+    width: "szerokość:",\r
+    height: "wysokość:",\r
+    widthTitle: "Szerokość osadzanej zawartości",\r
+    heightTitle: "Wysokość osadzanej zawartości",\r
+    maxWidth: "Maks. szerokość:",\r
+    maxHeight: "Maks. wysokość:",\r
+    maxWidthTitle: "Maksymalna szerokość osadzanej zawartości",\r
+    maxHeightTitle: "Maksymalna wysokość osadzanej zawartości",\r
+    resizeType: "Typ zmiany rozmiaru (tylko nagrania wideo):",\r
+    none:'None',\r
+    noresize: "Bez zmiany rozmiaru (domyślne)",\r
+    responsive: "Responsywna zmiana rozmiaru",\r
+    custom: "Narzucona zmiana rozmiaru",\r
+    noVimeo: "Właściciel nagrania wideo nałożył ograniczenia domenowe, nagrania nie można osadzić w witrynie.",\r
+    Error: "Nie można uzyskać zawartości multimedialnej, proszę spróbować inny adres URL."\r
+});\r
diff --git a/sources/plugins/oembed/lang/pt-br.js b/sources/plugins/oembed/lang/pt-br.js
new file mode 100644 (file)
index 0000000..6616432
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'pt-br', {\r
+    title: "Conteúdo embed de mídia (foto, vídeo, audio, rich)",\r
+    button: "Conteúdo embed de mídia de vários sites",\r
+       pasteUrl: "Cole aqui a URL (inclusive URLs encurtadas) de um dos sites que o plugin suporta (ex. YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.) ...",\r
+    invalidUrl: "Por favor informe uma URL válida!",\r
+    noEmbedCode: "Nenhum código embed foi encontrado, ou esse site não está na lista dos sites suportados pelo plugin!",\r
+    url: "URL:",\r
+    width: "Largura:",\r
+    height: "Altura:",\r
+    widthTitle: "Largura do conteúdo embebed",\r
+    heightTitle: "Altura do conteúdo embeded",\r
+    maxWidth: "Largura máx.:",\r
+    maxHeight: "Altura máx.:",\r
+    maxWidthTitle: "Largura máxima do conteúdo embeded",\r
+    maxHeightTitle: "Altura máxima do conteúdo embeded",\r
+    resizeType: "Tipo de redimensionamento (Somente para video):",\r
+    none:'None',\r
+    noresize: "Sem redimensionamento (default)",\r
+    responsive: "Redimensionamento responsivo",\r
+    custom: "Redimensionamento específico",\r
+    noVimeo: "O dono desse vídeo tem restrições de domínio a você não poderá utilizá-lo em seu site.",\r
+    Error: "Esse conteúdo de mídia não foi encontrado, por favor tente uma URL diferente."\r
+});\r
diff --git a/sources/plugins/oembed/lang/ru.js b/sources/plugins/oembed/lang/ru.js
new file mode 100644 (file)
index 0000000..f2a1e53
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'ru', {\r
+    title: "Внедрить медиа-контент (видео, аудио, фото и т.д.)",\r
+    button: "Внедрить медиа-контент с различных сайтов",\r
+    pasteUrl: "Вставьте ссылку на страницу с медиа-контентом (например YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, и т.д.)",\r
+    invalidUrl: "Вы ввели некорректный URL",\r
+    noEmbedCode: "Не обнаружен код для вставки. Возможно, вы ввели ссылку с неподдерживаемого сайта.",\r
+    url: "URL:",\r
+    width: "Ширина:",\r
+    height: "Высота:",\r
+    widthTitle: "Ширина внедряемого медиа-контента",\r
+    heightTitle: "Высота внедряемого медиа-контента",\r
+    maxWidth: "Макс. ширина:",\r
+    maxHeight: "Макс. высота:",\r
+    maxWidthTitle: "Максимальная ширина внедряемого медиа-контента",\r
+    maxHeightTitle: "Максимальная высота внедряемого медиа-контента",\r
+    resizeType: "Изменение размера (только для видео):",\r
+    none:'None',\r
+    noresize: "Без изменения (стандартный размер)",\r
+    responsive: "Задать максимальный размер",\r
+    custom: "Задать конкретный размер",\r
+    noVimeo: "Владелец этого видео установил ограничения на домен, и вы не можете его встроить на ваш сайт.",\r
+    Error: "Невозможно получить медиа-контент. Попробуйте другой URL."\r
+});\r
diff --git a/sources/plugins/oembed/lang/tr.js b/sources/plugins/oembed/lang/tr.js
new file mode 100644 (file)
index 0000000..f027106
--- /dev/null
@@ -0,0 +1,23 @@
+CKEDITOR.plugins.setLang('oembed', 'tr', {\r
+    title: "Medya içeriği ekle (Fotoğraf, Video, Ses Dosyası, Zengin Medya İçeriği)",\r
+    button: "Farklı sitelerden medya içeriği ekle",\r
+    pasteUrl: "Desteklenen sitelerden bir URL ekleyin (Kısaltılmış URL de olabilir) (örnek: YouTube, Flickr, Qik, Vimeo, Hulu, Viddler, MyOpera, etc.)...",\r
+    invalidUrl: "Lütfen geçerli bir URL adresi tanımlayın!",\r
+    noEmbedCode: "Embed kodu bulunamadı veya site desteklenmiyor!",\r
+    url: "URL:",\r
+    width: "Genişlik:",\r
+    height: "Yükseklik:",\r
+    widthTitle: "Eklenecek içerik için genişlik",\r
+    heightTitle: "Eklenecek içerik için yükseklik",\r
+    maxWidth: "Max. genişlik:",\r
+    maxHeight: "Max. yükseklik:",\r
+    maxWidthTitle: "Eklenecek içerik için max. genişlik",\r
+    maxHeightTitle: "Eklenecek içerik için max. yükseklik",\r
+    resizeType: "Boyutlandır (sadece videolarda geçerli):",\r
+    none:'None',\r
+    noresize: "Boyutlandırma yapma (default kullan)",\r
+    responsive: "Esnek (Responsive) boyutlandırma",\r
+    custom: "Özel boyutlandırma",\r
+    noVimeo: "Bu videonun sahibi alan adı kısıtlaması ayarlamış, web sitenizde bu video çalışmayacaktır.",\r
+    Error: "Medya içeriği alınamadı, farklı bir URL deneyin."\r
+});\r
diff --git a/sources/plugins/oembed/libs/jquery.oembed.min.js b/sources/plugins/oembed/libs/jquery.oembed.min.js
new file mode 100644 (file)
index 0000000..e5bd1c5
--- /dev/null
@@ -0,0 +1 @@
+(function(n){function r(){var n=window.location.protocol;return n==="file:"?"http://":"//"}function f(n,t){return t=t?t:"",n?f(--n,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*60))+t):t}function s(n,t){var i=n.apiendpoint,u="",r;i+=i.indexOf("?")<=0?"?":"&";i=i.replace("#","%23");n.maxWidth!==null&&(typeof n.params.maxwidth=="undefined"||n.params.maxwidth===null)&&(n.params.maxwidth=n.maxWidth);n.maxHeight!==null&&(typeof n.params.maxheight=="undefined"||n.params.maxheight===null)&&(n.params.maxheight=n.maxHeight);for(r in n.params)r!=n.callbackparameter&&n.params[r]!==null&&(u+="&"+escape(r)+"="+n.params[r]);return i+="format="+n.format+"&url="+escape(t)+u,n.dataType!="json"&&(i+="&"+n.callbackparameter+"=?"),i}function u(i,r,u){n("#jqoembeddata").data(r,i.code);t.beforeEmbed.call(u,i);t.onEmbed.call(u,i);t.afterEmbed.call(u,i)}function e(i,e,o){var p,a,tt,v;if(n("#jqoembeddata").data(e)!=undefined&&o.embedtag.tag!="iframe")a={code:n("#jqoembeddata").data(e)},u(a,e,i);else if(o.yql){var w=o.yql.from||"htmlstring",g=o.yql.url?o.yql.url(e):e,nt="SELECT * FROM "+w+' WHERE url="'+g+'" and '+(/html/.test(w)?"xpath":"itemPath")+"='"+(o.yql.xpath||"/")+"'";w=="html"&&(nt+=" and compat='html5'");v=n.extend({url:r()+"query.yahooapis.com/v1/public/yql",dataType:"jsonp",data:{q:nt,format:"json",env:"store://datatables.org/alltableswithkeys",callback:"?"},success:function(t){var s,f,c,r,h,l;if(o.yql.xpath&&o.yql.xpath=="//meta|//title|//link"){for(f={},t.query.results==null&&(t.query.results={meta:[]}),r=0,h=t.query.results.meta.length;r<h;r++)(c=t.query.results.meta[r].name||t.query.results.meta[r].property||null,c!=null)&&(f[c.toLowerCase()]=t.query.results.meta[r].content);if(f.hasOwnProperty("title")&&f.hasOwnProperty("og:title")||t.query.results.title!=null&&(f.title=t.query.results.title),!f.hasOwnProperty("og:image")&&t.query.results.hasOwnProperty("link"))for(r=0,h=t.query.results.link.length;r<h;r++)t.query.results.link[r].hasOwnProperty("rel")&&t.query.results.link[r].rel=="apple-touch-icon"&&(f["og:image"]=t.query.results.link[r].href.charAt(0)=="/"?g.match(/^(([a-z]+:)?(\/\/)?[^\/]+\/).*$/)[1]+t.query.results.link[r].href:t.query.results.link[r].href);s=o.yql.datareturn(f)}else s=o.yql.datareturn?o.yql.datareturn(t.query.results):t.query.results.result;s!==!1&&(l=n.extend({},s),l.code=s,u(l,e,i))},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{});n.ajax(v)}else if(o.templateRegex)if(o.embedtag.tag!==""){var it=o.embedtag.flashvars||"",b=o.embedtag.tag||"embed",h=o.embedtag.width||"auto",rt=o.embedtag.nocache||0,c=o.embedtag.height||"auto",y=e.replace(o.templateRegex,o.apiendpoint);if(o.nocache||(y+="&jqoemcache="+f(5)),o.apikey&&(y=y.replace("_APIKEY_",t.apikeys[o.name])),t.maxHeight&&t.maxWidth)if(t.useResponsiveResize){var l=0,k=h,d=c;h>t.maxWidth&&(l=t.maxWidth/h,k=t.maxWidth,d=c*l,c=c*l,h=h*l);c>t.maxHeight&&(l=t.maxHeight/c,d=t.maxHeight,k=h*l,h=h*l);c=d;h=k}else c=t.maxHeight,h=t.maxWidth;p=n("<"+b+"/>").attr("src",y).attr("width",h).attr("height",c).attr("allowfullscreen",o.embedtag.allowfullscreen||"true").attr("allowscriptaccess",o.embedtag.allowfullscreen||"always").css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto");b=="embed"&&p.attr("type",o.embedtag.type||"application/x-shockwave-flash").attr("flashvars",e.replace(o.templateRegex,it));b=="iframe"&&p.attr("scrolling",o.embedtag.scrolling||"no").attr("frameborder",o.embedtag.frameborder||"0");a={code:p};u(a,e,i)}else o.apiendpoint?(o.apikey&&(o.apiendpoint=o.apiendpoint.replace("_APIKEY_",t.apikeys[o.name])),v=n.extend({url:e.replace(o.templateRegex,o.apiendpoint),dataType:"jsonp",success:function(t){var r=n.extend({},t);r.code=o.templateData(t);u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)):(a={code:e.replace(o.templateRegex,o.template)},u(a,e,i));else tt=s(o,e),v=n.extend({url:tt,dataType:o.dataType||"jsonp",success:function(t){var r=n.extend({},t);switch(r.type){case"file":case"photo":r.code=n.fn.oembed.getPhotoCode(e,r);break;case"link":r.code=r.provider_name=="Flickr"?n.fn.oembed.getPhotoCode(e,r):n.fn.oembed.getGenericCode(e,r);break;case"video":case"rich":r.code=n.fn.oembed.getRichCode(e,r);break;default:r.code=n.fn.oembed.getGenericCode(e,r)}u(r,e,i)},error:function(){t.onError.call(i,e,o)}},t.ajaxOptions||{}),n.ajax(v)}function o(n){if(n===null)return null;var t,i={};for(t in n)t!==null&&(i[t.toLowerCase()]=n[t]);return i}n.fn.oembed=function(i,r,u){t=n.extend(!0,n.fn.oembed.defaults,r);var f=["0rz.tw","1link.in","1url.com","2.gp","2big.at","2tu.us","3.ly","307.to","4ms.me","4sq.com","4url.cc","6url.com","7.ly","a.gg","a.nf","aa.cx","abcurl.net","ad.vu","adf.ly","adjix.com","afx.cc","all.fuseurl.com","alturl.com","amzn.to","ar.gy","arst.ch","atu.ca","azc.cc","b23.ru","b2l.me","bacn.me","bcool.bz","binged.it","bit.ly","bizj.us","bloat.me","bravo.ly","bsa.ly","budurl.com","canurl.com","chilp.it","chzb.gr","cl.lk","cl.ly","clck.ru","cli.gs","cliccami.info","clickthru.ca","clop.in","conta.cc","cort.as","cot.ag","crks.me","ctvr.us","cutt.us","dai.ly","decenturl.com","dfl8.me","digbig.com","http://digg.com/[^/]+$","disq.us","dld.bz","dlvr.it","do.my","doiop.com","dopen.us","easyuri.com","easyurl.net","eepurl.com","eweri.com","fa.by","fav.me","fb.me","fbshare.me","ff.im","fff.to","fire.to","firsturl.de","firsturl.net","flic.kr","flq.us","fly2.ws","fon.gs","freak.to","fuseurl.com","fuzzy.to","fwd4.me","fwib.net","g.ro.lt","gizmo.do","gl.am","go.9nl.com","go.ign.com","go.usa.gov","goo.gl","goshrink.com","gurl.es","hex.io","hiderefer.com","hmm.ph","href.in","hsblinks.com","htxt.it","huff.to","hulu.com","hurl.me","hurl.ws","icanhaz.com","idek.net","ilix.in","is.gd","its.my","ix.lt","j.mp","jijr.com","kl.am","klck.me","korta.nu","krunchd.com","l9k.net","lat.ms","liip.to","liltext.com","linkbee.com","linkbun.ch","liurl.cn","ln-s.net","ln-s.ru","lnk.gd","lnk.ms","lnkd.in","lnkurl.com","lru.jp","lt.tl","lurl.no","macte.ch","mash.to","merky.de","migre.me","miniurl.com","minurl.fr","mke.me","moby.to","moourl.com","mrte.ch","myloc.me","myurl.in","n.pr","nbc.co","nblo.gs","nn.nf","not.my","notlong.com","nsfw.in","nutshellurl.com","nxy.in","nyti.ms","o-x.fr","oc1.us","om.ly","omf.gd","omoikane.net","on.cnn.com","on.mktw.net","onforb.es","orz.se","ow.ly","ping.fm","pli.gs","pnt.me","politi.co","post.ly","pp.gg","profile.to","ptiturl.com","pub.vitrue.com","qlnk.net","qte.me","qu.tc","qy.fi","r.ebay.com","r.im","rb6.me","read.bi","readthis.ca","reallytinyurl.com","redir.ec","redirects.ca","redirx.com","retwt.me","ri.ms","rickroll.it","riz.gd","rt.nu","ru.ly","rubyurl.com","rurl.org","rww.tw","s4c.in","s7y.us","safe.mn","sameurl.com","sdut.us","shar.es","shink.de","shorl.com","short.ie","short.to","shortlinks.co.uk","shorturl.com","shout.to","show.my","shrinkify.com","shrinkr.com","shrt.fr","shrt.st","shrten.com","shrunkin.com","simurl.com","slate.me","smallr.com","smsh.me","smurl.name","sn.im","snipr.com","snipurl.com","snurl.com","sp2.ro","spedr.com","srnk.net","srs.li","starturl.com","stks.co","su.pr","surl.co.uk","surl.hu","t.cn","t.co","t.lh.com","ta.gd","tbd.ly","tcrn.ch","tgr.me","tgr.ph","tighturl.com","tiniuri.com","tiny.cc","tiny.ly","tiny.pl","tinylink.in","tinyuri.ca","tinyurl.com","tk.","tl.gd","tmi.me","tnij.org","tnw.to","tny.com","to.ly","togoto.us","totc.us","toysr.us","tpm.ly","tr.im","tra.kz","trunc.it","twhub.com","twirl.at","twitclicks.com","twitterurl.net","twitterurl.org","twiturl.de","twurl.cc","twurl.nl","u.mavrev.com","u.nu","u76.org","ub0.cc","ulu.lu","updating.me","ur1.ca","url.az","url.co.uk","url.ie","url360.me","url4.eu","urlborg.com","urlbrief.com","urlcover.com","urlcut.com","urlenco.de","urli.nl","urls.im","urlshorteningservicefortwitter.com","urlx.ie","urlzen.com","usat.ly","use.my","vb.ly","vevo.ly","vgn.am","vl.am","vm.lc","w55.de","wapo.st","wapurl.co.uk","wipi.es","wp.me","x.vu","xr.com","xrl.in","xrl.us","xurl.es","xurl.jp","y.ahoo.it","yatuc.com","ye.pe","yep.it","yfrog.com","yhoo.it","yiyd.com","youtu.be","yuarel.com","z0p.de","zi.ma","zi.mu","zipmyurl.com","zud.me","zurl.ws","zz.gd","zzang.kr","›.ws","✩.ws","✿.ws","❥.ws","➔.ws","➞.ws","➡.ws","➨.ws","➯.ws","➹.ws","➽.ws"];return n("#jqoembeddata").length===0&&n('<span id="jqoembeddata"><\/span>').appendTo("body"),this.each(function(){var h=n(this),s=i&&(!i.indexOf("http://")||!i.indexOf("https://"))?i:h.attr("href"),r,c,l,a,v;if(u?t.onEmbed=u:t.onEmbed||(t.onEmbed=function(i){n.fn.oembed.insertCode(this,t.embedMethod,i)}),s!==null&&s!==undefined){for(c=0,l=f.length;c<l;c++)if(a=new RegExp("://"+f[c]+"/","i"),s.match(a)!==null)return v=n.extend({url:"http://api.longurl.org/v2/expand",dataType:"jsonp",data:{url:s,format:"json"},success:function(i){s=i["long-url"];r=n.fn.oembed.getOEmbedProvider(i["long-url"]);r!==null?(r.params=o(t[r.name])||{},r.maxWidth=t.maxWidth,r.maxHeight=t.maxHeight,e(h,s,r)):t.onProviderNotFound.call(h,s)}},t.ajaxOptions||{}),n.ajax(v),h;r=n.fn.oembed.getOEmbedProvider(s);r!==null?(r.params=o(t[r.name])||{},r.maxWidth=t.maxWidth,r.maxHeight=t.maxHeight,e(h,s,r)):t.onProviderNotFound.call(h,s)}return h})};var t;n.fn.oembed.defaults={maxWidth:null,maxHeight:null,useResponsiveResize:!1,includeHandle:!0,embedMethod:"auto",onProviderNotFound:function(){},beforeEmbed:function(){},afterEmbed:function(){},onEmbed:!1,onError:function(){},ajaxOptions:{timeout:2e3}};n.fn.oembed.insertCode=function(i,r,u){if(u!==null){r=="auto"&&i.attr("href")!==null?r="append":r=="auto"&&(r="replace");switch(r){case"replace":i.replaceWith(u.code);break;case"fill":i.html(u.code);break;case"append":i.wrap('<div class="oembedall-container"><\/div>');var f=i.parent();t.includeHandle&&n('<span class="oembedall-closehide">&darr;<\/span>').insertBefore(i).click(function(){var t=encodeURIComponent(n(this).text());n(this).html(t=="%E2%86%91"?"&darr;":"&uarr;");n(this).parent().children().last().toggle()});f.append("<br/>");try{u.code.clone().appendTo(f)}catch(e){f.append(u.code)}}}};n.fn.oembed.getPhotoCode=function(n,t){var i,r=t.title?t.title:"",u;return r+=t.author_name?" - "+t.author_name:"",r+=t.provider_name?" - "+t.provider_name:"",t.url?i='<div><a href="'+n+"\" target='_blank'><img src=\""+t.url+'" alt="'+r+'"/><\/a><\/div>':t.thumbnail_url?(u=t.thumbnail_url.replace("_s","_b"),i='<div><a href="'+n+"\" target='_blank'><img src=\""+u+'" alt="'+r+'"/><\/a><\/div>'):i=t.provider_name=="Flickr"?'<p><a href="'+n+"\" target='_blank'>"+n+"<\/a><\/p>":"<div>Error loading this picture<\/div>",i};n.fn.oembed.getRichCode=function(n,t){return t.html};n.fn.oembed.getGenericCode=function(n,t){var r=t.title!==null?t.title:n,i='<a href="'+n+'">'+r+"<\/a>";return t.html&&(i+="<div>"+t.html+"<\/div>"),i};n.fn.oembed.getOEmbedProvider=function(t){for(var r,u,f,i=0;i<n.fn.oembed.providers.length;i++)for(r=0,u=n.fn.oembed.providers[i].urlschemes.length;r<u;r++)if(f=new RegExp(n.fn.oembed.providers[i].urlschemes[r],"i"),t.match(f)!==null)return n.fn.oembed.providers[i];return null};n.fn.oembed.OEmbedProvider=function(i,r,u,f,e){this.name=i;this.type=r;this.urlschemes=u;this.apiendpoint=f;this.maxWidth=500;this.maxHeight=400;e=e||{};e.useYQL&&(e.yql=e.useYQL=="xml"?{xpath:"//oembed/html",from:"xml",apiendpoint:this.apiendpoint,url:function(n){return this.apiendpoint+"?format=xml&url="+n},datareturn:function(n){return n.html.replace(/.*\[CDATA\[(.*)\]\]>$/,"$1")||""}}:{from:"json",apiendpoint:this.apiendpoint,url:function(n){return this.apiendpoint+"?format=json&url="+n},datareturn:function(i){var f,o,s;if(i.json.type!="video"&&(i.json.url||i.json.thumbnail_url)&&!i.json.html.indexOf("iframe"))return'<img src="'+(i.json.url||i.json.thumbnail_url)+'"  />';if(i.json.html.indexOf("iframe")){i.json.html.indexOf("allowfullscreen>")&&(i.json.html=i.json.html.replace("allowfullscreen>",'allowfullscreen="false">'));var e=n.parseHTML(i.json.html),r=e[0].width,u=e[0].height;return t.maxHeight&&t.maxWidth&&(t.useResponsiveResize?(o=r,s=u,r>t.maxWidth&&(f=t.maxWidth/r,o=t.maxWidth,s=u*f,u=u*f,r=r*f),u>t.maxHeight&&(f=t.maxHeight/u,s=t.maxHeight,o=r*f),u=s,r=o):(u=t.maxHeight,r=t.maxWidth)),e[0].width=r,e[0].height=u,e[0].outerHTML}return i.json.html||""}},this.apiendpoint=null);for(var o in e)this[o]=e[o];this.format=this.format||"json";this.callbackparameter=this.callbackparameter||"callback";this.embedtag=this.embedtag||{tag:""}};n.fn.updateOEmbedProvider=function(t,i,r,u,f){for(var o,e=0;e<n.fn.oembed.providers.length;e++)if(n.fn.oembed.providers[e].name===t&&(i!==null&&(n.fn.oembed.providers[e].type=i),r!==null&&(n.fn.oembed.providers[e].urlschemes=r),u!==null&&(n.fn.oembed.providers[e].apiendpoint=u),f!==null)){n.fn.oembed.providers[e].extraSettings=f;for(o in f)f[o]!==null&&(n.fn.oembed.providers[e][o]=f[o])}};n.fn.oembed.providers=[new n.fn.oembed.OEmbedProvider("youtube","video",["youtube\\.com/watch.+v=[\\w-]+&?","youtu\\.be/[\\w-]+","youtube.com/embed"],r()+"www.youtube.com/embed/$1?wmode=transparent",{templateRegex:/.*(?:v\=|be\/|embed\/)([\w\-]+)&?.*/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new n.fn.oembed.OEmbedProvider("youtubeiframe","video",["youtube.com/embed"],"$1?wmode=transparent",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"425",height:"349"}}),new n.fn.oembed.OEmbedProvider("wistia","video",["wistia.com/m/.+","wistia.com/embed/.+","wi.st/m/.+","wi.st/embed/.+"],"http://fast.wistia.com/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("xtranormal","video",["xtranormal\\.com/watch/.+"],"http://www.xtranormal.com/xtraplayr/$1/$2",{templateRegex:/.*com\/watch\/([\w\-]+)\/([\w\-]+).*/,embedtag:{tag:"iframe",width:"320",height:"269"}}),new n.fn.oembed.OEmbedProvider("scivee","video",["scivee.tv/node/.+"],"http://www.scivee.tv/flash/embedCast.swf?",{templateRegex:/.*tv\/node\/(.+)/,embedtag:{width:"480",height:"400",flashvars:"id=$1&type=3"}}),new n.fn.oembed.OEmbedProvider("veoh","video",["veoh.com/watch/.+"],"http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1337&permalinkId=$1&player=videodetailsembedded&videoAutoPlay=0&id=anonymous",{templateRegex:/.*watch\/([^\?]+).*/,embedtag:{width:"410",height:"341"}}),new n.fn.oembed.OEmbedProvider("gametrailers","video",["gametrailers\\.com/video/.+"],"http://media.mtvnservices.com/mgid:moses:video:gametrailers.com:$2",{templateRegex:/.*com\/video\/([\w\-]+)\/([\w\-]+).*/,embedtag:{width:"512",height:"288"}}),new n.fn.oembed.OEmbedProvider("funnyordie","video",["funnyordie\\.com/videos/.+"],"http://player.ordienetworks.com/flash/fodplayer.swf?",{templateRegex:/.*videos\/([^\/]+)\/([^\/]+)?/,embedtag:{width:512,height:328,flashvars:"key=$1"}}),new n.fn.oembed.OEmbedProvider("colledgehumour","video",["collegehumor\\.com/video/.+"],"http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$1&use_node_id=true&fullscreen=1",{templateRegex:/.*video\/([^\/]+).*/,embedtag:{width:600,height:338}}),new n.fn.oembed.OEmbedProvider("metacafe","video",["metacafe\\.com/watch/.+"],"http://www.metacafe.com/fplayer/$1/$2.swf",{templateRegex:/.*watch\/(\d+)\/(\w+)\/.*/,embedtag:{width:400,height:345}}),new n.fn.oembed.OEmbedProvider("bambuser","video",["bambuser\\.com/channel/.*/broadcast/.*"],"http://static.bambuser.com/r/player.swf?vid=$1",{templateRegex:/.*bambuser\.com\/channel\/.*\/broadcast\/(\w+).*/,embedtag:{width:512,height:339}}),new n.fn.oembed.OEmbedProvider("twitvid","video",["twitvid\\.com/.+"],"http://www.twitvid.com/embed.php?guid=$1&autoplay=0",{templateRegex:/.*twitvid\.com\/(\w+).*/,embedtag:{tag:"iframe",width:480,height:360}}),new n.fn.oembed.OEmbedProvider("aniboom","video",["aniboom\\.com/animation-video/.+"],"http://api.aniboom.com/e/$1",{templateRegex:/.*animation-video\/(\d+).*/,embedtag:{width:594,height:334}}),new n.fn.oembed.OEmbedProvider("vzaar","video",["vzaar\\.com/videos/.+","vzaar.tv/.+"],"http://view.vzaar.com/$1/player?",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:576,height:324}}),new n.fn.oembed.OEmbedProvider("snotr","video",["snotr\\.com/video/.+"],"http://www.snotr.com/embed/$1",{templateRegex:/.*\/(\d+).*/,embedtag:{tag:"iframe",width:400,height:330,nocache:1}}),new n.fn.oembed.OEmbedProvider("youku","video",["v.youku.com/v_show/id_.+"],"http://player.youku.com/player.php/sid/$1/v.swf",{templateRegex:/.*id_(.+)\.html.*/,embedtag:{width:480,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("tudou","video",["tudou.com/programs/view/.+/"],"http://www.tudou.com/v/$1/v.swf",{templateRegex:/.*view\/(.+)\//,embedtag:{width:480,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("embedr","video",["embedr\\.com/playlist/.+"],"http://embedr.com/swf/slider/$1/425/520/default/false/std?",{templateRegex:/.*playlist\/([^\/]+).*/,embedtag:{width:425,height:520}}),new n.fn.oembed.OEmbedProvider("blip","video",["blip\\.tv/.+"],"http://blip.tv/oembed/"),new n.fn.oembed.OEmbedProvider("minoto-video","video",["http://api.minoto-video.com/publishers/.+/videos/.+","http://dashboard.minoto-video.com/main/video/details/.+","http://embed.minoto-video.com/.+"],"http://api.minoto-video.com/services/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("animoto","video",["animoto.com/play/.+"],"http://animoto.com/services/oembed"),new n.fn.oembed.OEmbedProvider("hulu","video",["hulu\\.com/watch/.*"],"http://www.hulu.com/api/oembed.json"),new n.fn.oembed.OEmbedProvider("ustream","video",["ustream\\.tv/recorded/.*"],"http://www.ustream.tv/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("videojug","video",["videojug\\.com/(film|payer|interview).*"],"http://www.videojug.com/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("sapo","video",["videos\\.sapo\\.pt/.*"],"http://videos.sapo.pt/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("vodpod","video",["vodpod.com/watch/.*"],"http://vodpod.com/oembed.js",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("vimeo","video",["www.vimeo.com/groups/.*/videos/.*","www.vimeo.com/.*","vimeo.com/groups/.*/videos/.*","vimeo.com/.*"],"//vimeo.com/api/oembed.json"),new n.fn.oembed.OEmbedProvider("dailymotion","video",["dailymotion\\.com/.+"],"http://www.dailymotion.com/services/oembed"),new n.fn.oembed.OEmbedProvider("5min","video",["www\\.5min\\.com/.+"],"http://api.5min.com/oembed.xml",{useYQL:"xml"}),new n.fn.oembed.OEmbedProvider("National Film Board of Canada","video",["nfb\\.ca/film/.+"],"http://www.nfb.ca/remote/services/oembed/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("qik","video",["qik\\.com/\\w+"],"http://qik.com/api/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("revision3","video",["revision3\\.com"],"http://revision3.com/api/oembed/"),new n.fn.oembed.OEmbedProvider("dotsub","video",["dotsub\\.com/view/.+"],"http://dotsub.com/services/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("clikthrough","video",["clikthrough\\.com/theater/video/\\d+"],"http://clikthrough.com/services/oembed"),new n.fn.oembed.OEmbedProvider("Kinomap","video",["kinomap\\.com/.+"],"http://www.kinomap.com/oembed"),new n.fn.oembed.OEmbedProvider("VHX","video",["vhx.tv/.+"],"http://vhx.tv/services/oembed.json"),new n.fn.oembed.OEmbedProvider("bambuser","video",["bambuser.com/.+"],"http://api.bambuser.com/oembed/iframe.json"),new n.fn.oembed.OEmbedProvider("justin.tv","video",["justin.tv/.+"],"http://api.justin.tv/api/embed/from_url.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("official.fm","rich",["official.fm/.+"],"http://official.fm/services/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("chirbit","rich",["chirb.it/.+"],"http://chirb.it/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("Huffduffer","rich",["huffduffer.com/[-.\\w@]+/\\d+"],"http://huffduffer.com/oembed"),new n.fn.oembed.OEmbedProvider("Spotify","rich",["open.spotify.com/(track|album|user)/"],"https://embed.spotify.com/oembed/"),new n.fn.oembed.OEmbedProvider("shoudio","rich",["shoudio.com/.+","shoud.io/.+"],"http://shoudio.com/api/oembed"),new n.fn.oembed.OEmbedProvider("mixcloud","rich",["mixcloud.com/.+"],r()+"www.mixcloud.com/oembed/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("rdio.com","rich",["rd.io/.+","rdio.com"],r()+"www.rdio.com/api/oembed/"),new n.fn.oembed.OEmbedProvider("Soundcloud","rich",["soundcloud.com/.+","snd.sc/.+"],r()+"soundcloud.com/oembed",{format:"js"}),new n.fn.oembed.OEmbedProvider("bandcamp","rich",["bandcamp\\.com/album/.+"],null,{yql:{xpath:"//meta[contains(@content, \\'EmbeddedPlayer\\')]",from:"html",datareturn:function(n){return n.meta?'<iframe width="400" height="100" src="'+n.meta.content+'" allowtransparency="true" frameborder="0"><\/iframe>':!1}}}),new n.fn.oembed.OEmbedProvider("deviantart","photo",["deviantart.com/.+","fav.me/.+","deviantart.com/.+"],"http://backend.deviantart.com/oembed",{format:"jsonp"}),new n.fn.oembed.OEmbedProvider("skitch","photo",["skitch.com/.+"],null,{yql:{xpath:"json",from:"json",url:function(n){return"http://skitch.com/oembed/?format=json&url="+n},datareturn:function(t){return n.fn.oembed.getPhotoCode(t.json.url,t.json)}}}),new n.fn.oembed.OEmbedProvider("mobypicture","photo",["mobypicture.com/user/.+/view/.+","moby.to/.+"],"http://api.mobypicture.com/oEmbed"),new n.fn.oembed.OEmbedProvider("flickr","photo",["flickr\\.com/photos/.+"],"http://flickr.com/services/oembed",{callbackparameter:"jsoncallback"}),new n.fn.oembed.OEmbedProvider("photobucket","photo",["photobucket\\.com/(albums|groups)/.+"],r()+"photobucket.com/oembed/"),new n.fn.oembed.OEmbedProvider("instagram","photo",["instagr\\.?am(\\.com)?/.+"],r()+"api.instagram.com/oembed"),new n.fn.oembed.OEmbedProvider("SmugMug","photo",["smugmug.com/[-.\\w@]+/.+"],"http://api.smugmug.com/services/oembed/"),new n.fn.oembed.OEmbedProvider("dribbble","photo",["dribbble.com/shots/.+"],"http://api.dribbble.com/shots/$1?callback=?",{templateRegex:/.*shots\/([\d]+).*/,templateData:function(n){return n.image_teaser_url?'<img src="'+n.image_teaser_url+'"/>':!1}}),new n.fn.oembed.OEmbedProvider("chart.ly","photo",["chart\\.ly/[a-z0-9]{6,8}"],"http://chart.ly/uploads/large_$1.png",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("circuitlab","photo",["circuitlab.com/circuit/.+"],"https://www.circuitlab.com/circuit/$1/screenshot/540x405/",{templateRegex:/.*circuit\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("23hq","photo",["23hq.com/[-.\\w@]+/photo/.+"],"http://www.23hq.com/23/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("img.ly","photo",["img\\.ly/.+"],"http://img.ly/show/thumb/$1",{templateRegex:/.*ly\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("twitgoo.com","photo",["twitgoo\\.com/.+"],"http://twitgoo.com/show/thumb/$1",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("imgur.com","photo",["imgur\\.com/gallery/.+"],r()+"imgur.com/$1l.jpg",{templateRegex:/.*gallery\/([^\/]+).*/,embedtag:{tag:"img"},nocache:1}),new n.fn.oembed.OEmbedProvider("visual.ly","rich",["visual\\.ly/.+"],null,{yql:{xpath:"//a[@id=\\'gc_article_graphic_image\\']/img",from:"htmlstring"}}),new n.fn.oembed.OEmbedProvider("gravtar","photo",["mailto:.+"],null,{templateRegex:/mailto:([^\/]+).*/,template:function(n,t){return'<img src="http://gravatar.com/avatar/'+t.md5()+'.jpg" alt="on Gravtar" class="jqoaImg">'}}),new n.fn.oembed.OEmbedProvider("twitter","rich",["twitter.com/.+"],"https://api.twitter.com/1/statuses/oembed.json?id="),new n.fn.oembed.OEmbedProvider("gmep","rich",["gmep.imeducate.com/.*","gmep.org/.*"],"http://gmep.org/oembed.json"),new n.fn.oembed.OEmbedProvider("urtak","rich",["urtak.com/(u|clr)/.+"],"http://oembed.urtak.com/1/oembed"),new n.fn.oembed.OEmbedProvider("cacoo","rich",["cacoo.com/.+"],"http://cacoo.com/oembed.json"),new n.fn.oembed.OEmbedProvider("dailymile","rich",["dailymile.com/people/.*/entries/.*"],"http://api.dailymile.com/oembed"),new n.fn.oembed.OEmbedProvider("dipity","rich",["dipity.com/timeline/.+"],"http://www.dipity.com/oembed/timeline/",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("sketchfab","rich",["sketchfab.com/show/.+"],"http://sketchfab.com/oembed",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("speakerdeck","rich",["speakerdeck.com/.+"],"http://speakerdeck.com/oembed.json",{useYQL:"json"}),new n.fn.oembed.OEmbedProvider("popplet","rich",["popplet.com/app/.*"],"http://popplet.com/app/Popplet_Alpha.swf?page_id=$1&em=1",{templateRegex:/.*#\/([^\/]+).*/,embedtag:{width:460,height:460}}),new n.fn.oembed.OEmbedProvider("pearltrees","rich",["pearltrees.com/.*"],"http://cdn.pearltrees.com/s/embed/getApp?",{templateRegex:/.*N-f=1_(\d+).*N-p=(\d+).*/,embedtag:{width:460,height:460,flashvars:"lang=en_US&amp;embedId=pt-embed-$1-693&amp;treeId=$1&amp;pearlId=$2&amp;treeTitle=Diagrams%2FVisualization&amp;site=www.pearltrees.com%2FF"}}),new n.fn.oembed.OEmbedProvider("prezi","rich",["prezi.com/.*"],"http://prezi.com/bin/preziloader.swf?",{templateRegex:/.*com\/([^\/]+)\/.*/,embedtag:{width:550,height:400,flashvars:"prezi_id=$1&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"}}),new n.fn.oembed.OEmbedProvider("tourwrist","rich",["tourwrist.com/tours/.+"],null,{templateRegex:/.*tours.([\d]+).*/,template:function(n,t){return setTimeout(function(){loadEmbeds&&loadEmbeds()},2e3),"<div id='"+t+"' class='tourwrist-tour-embed direct'><\/div> <script type='text/javascript' src='http://tourwrist.com/tour_embed.js'><\/script>"}}),new n.fn.oembed.OEmbedProvider("meetup","rich",["meetup\\.(com|ps)/.+"],r()+"api.meetup.com/oembed"),new n.fn.oembed.OEmbedProvider("ebay","rich",["ebay\\.*"],r()+"togo.ebay.com/togo/togo.swf?2008013100",{templateRegex:/.*\/([^\/]+)\/(\d{10,13}).*/,embedtag:{width:355,height:300,flashvars:"base=http://togo.ebay.com/togo/&lang=en-us&mode=normal&itemid=$2&query=$1"}}),new n.fn.oembed.OEmbedProvider("wikipedia","rich",["wikipedia.org/wiki/.+"],"http://$1.wikipedia.org/w/api.php?action=parse&page=$2&format=json&section=0&callback=?",{templateRegex:/.*\/\/([\w]+).*\/wiki\/([^\/]+).*/,templateData:function(n){if(!n.parse)return!1;var t=n.parse.text["*"].replace(/href="\/wiki/g,'href="http://en.wikipedia.org/wiki');return'<div id="content"><h3><a class="nav-link" href="http://en.wikipedia.org/wiki/'+n.parse.displaytitle+'">'+n.parse.displaytitle+"<\/a><\/h3>"+t+"<\/div>"}}),new n.fn.oembed.OEmbedProvider("imdb","rich",["imdb.com/title/.+"],"http://www.imdbapi.com/?i=$1&callback=?",{templateRegex:/.*\/title\/([^\/]+).*/,templateData:function(n){return n.Title?'<div id="content"><h3><a class="nav-link" href="http://imdb.com/title/'+n.ID+'/">'+n.Title+"<\/a> ("+n.Year+")<\/h3><p>Starring: "+n.Actors+'<\/p><div id="photo-wrap" style="margin: auto;width:600px;height:450px;"><img class="photo" id="photo-display" src="'+n.Poster+'" alt="'+n.Title+'"><\/div>  <div id="view-photo-caption">'+n.Plot+"<\/div><\/div>":!1}}),new n.fn.oembed.OEmbedProvider("livejournal","rich",["livejournal.com/"],"http://ljpic.seacrow.com/json/$2$4?jsonp=?",{templateRegex:/(http:\/\/(((?!users).)+)\.livejournal\.com|.*users\.livejournal\.com\/([^\/]+)).*/,templateData:function(n){return!!n.username&&'<div><img src="'+n.image+'" align="left" style="margin-right: 1em;" /><span class="oembedall-ljuser"><a href="http://'+n.username+'.livejournal.com/profile"><img src="http://www.livejournal.com/img/userinfo.gif" alt="[info]" width="17" height="17" /><\/a><a href="http://'+n.username+'.livejournal.com/">'+n.username+"<\/a><\/span><br />"+n.name+"<\/div>"}}),new n.fn.oembed.OEmbedProvider("circuitbee","rich",["circuitbee\\.com/circuit/view/.+"],"http://c.circuitbee.com/build/r/schematic-embed.html?id=$1",{templateRegex:/.*circuit\/view\/(\d+).*/,embedtag:{tag:"iframe",width:"500",height:"350"}}),new n.fn.oembed.OEmbedProvider("googlecalendar","rich",["www.google.com/calendar/embed?.+"],"$1",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"800",height:"600"}}),new n.fn.oembed.OEmbedProvider("jsfiddle","rich",["jsfiddle.net/[^/]+/?"],"http://jsfiddle.net/$1/embedded/result,js,resources,html,css/?",{templateRegex:/.*net\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new n.fn.oembed.OEmbedProvider("jsbin","rich",["jsbin.com/.+"],"http://jsbin.com/$1/?",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"300"}}),new n.fn.oembed.OEmbedProvider("jotform","rich",["form.jotform.co/form/.+"],"$1?",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"100%",height:"507"}}),new n.fn.oembed.OEmbedProvider("reelapp","rich",["reelapp\\.com/.+"],"http://www.reelapp.com/$1/embed",{templateRegex:/.*com\/(\S{6}).*/,embedtag:{tag:"iframe",width:"400",height:"338"}}),new n.fn.oembed.OEmbedProvider("linkedin","rich",["linkedin.com/pub/.+"],"https://www.linkedin.com/cws/member/public_profile?public_profile_url=$1&format=inline&isFramed=true",{templateRegex:/(.*)/,embedtag:{tag:"iframe",width:"368px",height:"auto"}}),new n.fn.oembed.OEmbedProvider("timetoast","rich",["timetoast.com/timelines/[0-9]+"],"http://www.timetoast.com/flash/TimelineViewer.swf?passedTimelines=$1",{templateRegex:/.*timelines\/([0-9]*)/,embedtag:{width:550,height:400,nocache:1}}),new n.fn.oembed.OEmbedProvider("pastebin","rich",["pastebin\\.com/[\\S]{8}"],"http://pastebin.com/embed_iframe.php?i=$1",{templateRegex:/.*\/(\S{8}).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new n.fn.oembed.OEmbedProvider("mixlr","rich",["mixlr.com/.+"],"http://mixlr.com/embed/$1?autoplay=ae",{templateRegex:/.*com\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:"auto"}}),new n.fn.oembed.OEmbedProvider("pastie","rich",["pastie\\.org/pastes/.+"],null,{yql:{xpath:'//pre[@class="textmate-source"]'}}),new n.fn.oembed.OEmbedProvider("github","rich",["gist.github.com/.+"],"https://github.com/api/oembed"),new n.fn.oembed.OEmbedProvider("github","rich",["github.com/[-.\\w@]+/[-.\\w@]+"],"https://api.github.com/repos/$1/$2?callback=?",{templateRegex:/.*\/([^\/]+)\/([^\/]+).*/,templateData:function(n){return n.data.html_url?'<div class="oembedall-githubrepos"><ul class="oembedall-repo-stats"><li>'+n.data.language+'<\/li><li class="oembedall-watchers"><a title="Watchers" href="'+n.data.html_url+'/watchers">&#x25c9; '+n.data.watchers+'<\/a><\/li><li class="oembedall-forks"><a title="Forks" href="'+n.data.html_url+'/network">&#x0265; '+n.data.forks+'<\/a><\/li><\/ul><h3><a href="'+n.data.html_url+'">'+n.data.name+'<\/a><\/h3><div class="oembedall-body"><p class="oembedall-description">'+n.data.description+'<\/p><p class="oembedall-updated-at">Last updated: '+n.data.pushed_at+"<\/p><\/div><\/div>":!1}}),new n.fn.oembed.OEmbedProvider("facebook","rich",["facebook.com/(people/[^\\/]+/\\d+|[^\\/]+$)"],"https://graph.facebook.com/$2$3/?callback=?",{templateRegex:/.*facebook.com\/(people\/[^\/]+\/(\d+).*|([^\/]+$))/,templateData:function(n){if(!n.id)return!1;var t='<div class="oembedall-facebook1"><div class="oembedall-facebook2"><a href="http://www.facebook.com/">facebook<\/a> ';return t+=n.from?'<a href="http://www.facebook.com/'+n.from.id+'">'+n.from.name+"<\/a>":n.link?'<a href="'+n.link+'">'+n.name+"<\/a>":n.username?'<a href="http://www.facebook.com/'+n.username+'">'+n.name+"<\/a>":'<a href="http://www.facebook.com/'+n.id+'">'+n.name+"<\/a>",t+='<\/div><div class="oembedall-facebookBody"><div class="contents">',t+=n.picture?'<a href="'+n.link+'"><img src="'+n.picture+'"><\/a>':'<img src="https://graph.facebook.com/'+n.id+'/picture">',n.from&&(t+='<a href="'+n.link+'">'+n.name+"<\/a>"),n.founded&&(t+="Founded: <strong>"+n.founded+"<\/strong><br>"),n.category&&(t+="Category: <strong>"+n.category+"<\/strong><br>"),n.website&&(t+='Website: <strong><a href="'+n.website+'">'+n.website+"<\/a><\/strong><br>"),n.gender&&(t+="Gender: <strong>"+n.gender+"<\/strong><br>"),n.description&&(t+=n.description+"<br>"),t+"<\/div><\/div>"}}),new n.fn.oembed.OEmbedProvider("stackoverflow","rich",["stackoverflow.com/questions/[\\d]+"],"http://api.stackoverflow.com/1.1/questions/$1?body=true&jsonp=?",{templateRegex:/.*questions\/([\d]+).*/,templateData:function(t){if(!t.questions)return!1;var r=t.questions[0],f=n(r.body).text(),u='<div class="oembedall-stoqembed"><div class="oembedall-statscontainer"><div class="oembedall-statsarrow"><\/div><div class="oembedall-stats"><div class="oembedall-vote"><div class="oembedall-votes"><span class="oembedall-vote-count-post"><strong>'+(r.up_vote_count-r.down_vote_count)+'<\/strong><\/span><div class="oembedall-viewcount">vote(s)<\/div><\/div><\/div><div class="oembedall-status"><strong>'+r.answer_count+'<\/strong>answer<\/div><\/div><div class="oembedall-views">'+r.view_count+' view(s)<\/div><\/div><div class="oembedall-summary"><h3><a class="oembedall-question-hyperlink" href="http://stackoverflow.com/questions/'+r.question_id+'/">'+r.title+'<\/a><\/h3><div class="oembedall-excerpt">'+f.substring(0,100)+'...<\/div><div class="oembedall-tags">';for(i in r.tags)u+='<a title="" class="oembedall-post-tag" href="http://stackoverflow.com/questions/tagged/'+r.tags[i]+'">'+r.tags[i]+"<\/a>";return u+('<\/div><div class="oembedall-fr"><div class="oembedall-user-info"><div class="oembedall-user-gravatar32"><a href="http://stackoverflow.com/users/'+r.owner.user_id+"/"+r.owner.display_name+'"><img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/'+r.owner.email_hash+'?s=32&amp;d=identicon&amp;r=PG"><\/a><\/div><div class="oembedall-user-details"><a href="http://stackoverflow.com/users/'+r.owner.user_id+"/"+r.owner.display_name+'">'+r.owner.display_name+'<\/a><br><span title="reputation score" class="oembedall-reputation-score">'+r.owner.reputation+"<\/span><\/div><\/div><\/div><\/div><\/div>")}}),new n.fn.oembed.OEmbedProvider("wordpress","rich",["wordpress\\.com/.+","blogs\\.cnn\\.com/.+","techcrunch\\.com/.+","wp\\.me/.+"],"http://public-api.wordpress.com/oembed/1.0/?for=jquery-oembed-all"),new n.fn.oembed.OEmbedProvider("screenr","rich",["screenr.com"],"http://www.screenr.com/embed/$1",{templateRegex:/.*\/([^\/]+).*/,embedtag:{tag:"iframe",width:"650",height:396}}),new n.fn.oembed.OEmbedProvider("gigpans","rich",["gigapan\\.org/[-.\\w@]+/\\d+"],"http://gigapan.org/gigapans/$1/options/nosnapshots/iframe/flash.html",{templateRegex:/.*\/(\d+)\/?.*/,embedtag:{tag:"iframe",width:"100%",height:400}}),new n.fn.oembed.OEmbedProvider("scribd","rich",["scribd\\.com/.+"],r()+"www.scribd.com/embeds/$1/content?start_page=1&view_mode=list",{templateRegex:/.*doc\/([^\/]+).*/,embedtag:{tag:"iframe",width:"100%",height:600}}),new n.fn.oembed.OEmbedProvider("kickstarter","rich",["kickstarter\\.com/projects/.+"],"$1/widget/card.html",{templateRegex:/([^\?]+).*/,embedtag:{tag:"iframe",width:"220",height:380}}),new n.fn.oembed.OEmbedProvider("amazon","rich",["amzn.com/B+","amazon.com.*/(B\\S+)($|\\/.*)"],r()+"rcm.amazon.com/e/cm?t=_APIKEY_&o=1&p=8&l=as1&asins=$1&ref=qf_br_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr",{apikey:!0,templateRegex:/.*\/(B[0-9A-Z]+)($|\/.*)/,embedtag:{tag:"iframe",width:"120px",height:"240px"}}),new n.fn.oembed.OEmbedProvider("slideshare","rich",["slideshare.net"],r()+"www.slideshare.net/api/oembed/2",{format:"jsonp"}),new n.fn.oembed.OEmbedProvider("roomsharejp","rich",["roomshare\\.jp/(en/)?post/.*"],"http://roomshare.jp/oembed.json"),new n.fn.oembed.OEmbedProvider("lanyard","rich",["lanyrd.com/\\d+/.+"],null,{yql:{xpath:'(//div[@class="primary"])[1]',from:"htmlstring",datareturn:function(n){return n.result?'<div class="oembedall-lanyard">'+n.result+"<\/div>":!1}}}),new n.fn.oembed.OEmbedProvider("asciiartfarts","rich",["asciiartfarts.com/\\d+.html"],null,{yql:{xpath:"//pre/font",from:"htmlstring",datareturn:function(n){return n.result?'<pre style="background-color:000;">'+n.result+"<\/div>":!1}}}),new n.fn.oembed.OEmbedProvider("opengraph","rich",[".*"],null,{yql:{xpath:"//meta|//title|//link",from:"html",datareturn:function(i){var r,u,f;return(!i["og:title"]&&i.title&&i.description&&(i["og:title"]=i.title),!i["og:title"]&&!i.title)?!1:(r=n("<p/>"),i["og:video"]?(u=n('<embed src="'+i["og:video"]+'"/>'),u.attr("type",i["og:video:type"]||"application/x-shockwave-flash").css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto"),i["og:video:width"]&&u.attr("width",i["og:video:width"]),i["og:video:height"]&&u.attr("height",i["og:video:height"]),r.append(u)):i["og:image"]&&(f=n('<img src="'+i["og:image"]+'">'),f.css("max-height",t.maxHeight||"auto").css("max-width",t.maxWidth||"auto"),i["og:image:width"]&&f.attr("width",i["og:image:width"]),i["og:image:height"]&&f.attr("height",i["og:image:height"]),r.append(f)),i["og:title"]&&r.append("<b>"+i["og:title"]+"<\/b><br/>"),i["og:description"]?r.append(i["og:description"]+"<br/>"):i.description&&r.append(i.description+"<br/>"),r)}}})]})(jQuery);String.prototype.md5=function(){var u=function(n,t){var i=(n&65535)+(t&65535),r=(n>>16)+(t>>16)+(i>>16);return r<<16|i&65535},e=function(n,t){return n<<t|n>>>32-t},f=function(n,t,i,r,f,o){return u(e(u(u(t,n),u(r,o)),f),i)},n=function(n,t,i,r,u,e,o){return f(t&i|~t&r,n,t,u,e,o)},t=function(n,t,i,r,u,e,o){return f(t&r|i&~r,n,t,u,e,o)},i=function(n,t,i,r,u,e,o){return f(t^i^r,n,t,u,e,o)},r=function(n,t,i,r,u,e,o){return f(i^(t|~r),n,t,u,e,o)},o=function(f){for(var l,a,v,y,p=f.length,e=1732584193,o=-271733879,s=-1732584194,h=271733878,c=0;c<p;c+=16)l=e,a=o,v=s,y=h,e=n(e,o,s,h,f[c+0],7,-680876936),h=n(h,e,o,s,f[c+1],12,-389564586),s=n(s,h,e,o,f[c+2],17,606105819),o=n(o,s,h,e,f[c+3],22,-1044525330),e=n(e,o,s,h,f[c+4],7,-176418897),h=n(h,e,o,s,f[c+5],12,1200080426),s=n(s,h,e,o,f[c+6],17,-1473231341),o=n(o,s,h,e,f[c+7],22,-45705983),e=n(e,o,s,h,f[c+8],7,1770035416),h=n(h,e,o,s,f[c+9],12,-1958414417),s=n(s,h,e,o,f[c+10],17,-42063),o=n(o,s,h,e,f[c+11],22,-1990404162),e=n(e,o,s,h,f[c+12],7,1804603682),h=n(h,e,o,s,f[c+13],12,-40341101),s=n(s,h,e,o,f[c+14],17,-1502002290),o=n(o,s,h,e,f[c+15],22,1236535329),e=t(e,o,s,h,f[c+1],5,-165796510),h=t(h,e,o,s,f[c+6],9,-1069501632),s=t(s,h,e,o,f[c+11],14,643717713),o=t(o,s,h,e,f[c+0],20,-373897302),e=t(e,o,s,h,f[c+5],5,-701558691),h=t(h,e,o,s,f[c+10],9,38016083),s=t(s,h,e,o,f[c+15],14,-660478335),o=t(o,s,h,e,f[c+4],20,-405537848),e=t(e,o,s,h,f[c+9],5,568446438),h=t(h,e,o,s,f[c+14],9,-1019803690),s=t(s,h,e,o,f[c+3],14,-187363961),o=t(o,s,h,e,f[c+8],20,1163531501),e=t(e,o,s,h,f[c+13],5,-1444681467),h=t(h,e,o,s,f[c+2],9,-51403784),s=t(s,h,e,o,f[c+7],14,1735328473),o=t(o,s,h,e,f[c+12],20,-1926607734),e=i(e,o,s,h,f[c+5],4,-378558),h=i(h,e,o,s,f[c+8],11,-2022574463),s=i(s,h,e,o,f[c+11],16,1839030562),o=i(o,s,h,e,f[c+14],23,-35309556),e=i(e,o,s,h,f[c+1],4,-1530992060),h=i(h,e,o,s,f[c+4],11,1272893353),s=i(s,h,e,o,f[c+7],16,-155497632),o=i(o,s,h,e,f[c+10],23,-1094730640),e=i(e,o,s,h,f[c+13],4,681279174),h=i(h,e,o,s,f[c+0],11,-358537222),s=i(s,h,e,o,f[c+3],16,-722521979),o=i(o,s,h,e,f[c+6],23,76029189),e=i(e,o,s,h,f[c+9],4,-640364487),h=i(h,e,o,s,f[c+12],11,-421815835),s=i(s,h,e,o,f[c+15],16,530742520),o=i(o,s,h,e,f[c+2],23,-995338651),e=r(e,o,s,h,f[c+0],6,-198630844),h=r(h,e,o,s,f[c+7],10,1126891415),s=r(s,h,e,o,f[c+14],15,-1416354905),o=r(o,s,h,e,f[c+5],21,-57434055),e=r(e,o,s,h,f[c+12],6,1700485571),h=r(h,e,o,s,f[c+3],10,-1894986606),s=r(s,h,e,o,f[c+10],15,-1051523),o=r(o,s,h,e,f[c+1],21,-2054922799),e=r(e,o,s,h,f[c+8],6,1873313359),h=r(h,e,o,s,f[c+15],10,-30611744),s=r(s,h,e,o,f[c+6],15,-1560198380),o=r(o,s,h,e,f[c+13],21,1309151649),e=r(e,o,s,h,f[c+4],6,-145523070),h=r(h,e,o,s,f[c+11],10,-1120210379),s=r(s,h,e,o,f[c+2],15,718787259),o=r(o,s,h,e,f[c+9],21,-343485551),e=u(e,l),o=u(o,a),s=u(s,v),h=u(h,y);return[e,o,s,h]},s=function(n){for(var i="0123456789abcdef",r="",u=n.length*4,t=0;t<u;t++)r+=i.charAt(n[t>>2]>>t%4*8+4&15)+i.charAt(n[t>>2]>>t%4*8&15);return r},h=function(n){for(var u=(n.length+8>>6)+1,i=[],e=u*16,t,f=n.length,r=0;r<e;r++)i.push(0);for(t=0;t<f;t++)i[t>>2]|=(n.charCodeAt(t)&255)<<t%4*8;return i[t>>2]|=128<<t%4*8,i[u*16-2]=f*8,i};return s(o(h(this)))};\r
diff --git a/sources/plugins/oembed/plugin.js b/sources/plugins/oembed/plugin.js
new file mode 100644 (file)
index 0000000..9ad1ead
--- /dev/null
@@ -0,0 +1,446 @@
+/**\r
+* oEmbed Plugin plugin\r
+* Licensed under the MIT license\r
+* jQuery Embed Plugin: http://code.google.com/p/jquery-oembed/ (MIT License)\r
+* Plugin for: http://ckeditor.com/license (GPL/LGPL/MPL: http://ckeditor.com/license)\r
+*/\r
+\r
+(function() {\r
+        CKEDITOR.plugins.add('oembed', {\r
+            icons: 'oembed',\r
+            hidpi: true,\r
+            requires: 'widget,dialog',\r
+            lang: 'de,en,fr,nl,pl,pt-br,ru,tr', // %REMOVE_LINE_CORE%\r
+            version: 1.17,\r
+            init: function(editor) {\r
+                // Load jquery?\r
+                loadjQueryLibaries();\r
+\r
+                CKEDITOR.tools.extend(CKEDITOR.editor.prototype, {\r
+                    oEmbed: function(url, maxWidth, maxHeight, responsiveResize) {\r
+\r
+                        if (url.length < 1 || url.indexOf('http') < 0) {\r
+                            alert(editor.lang.oembed.invalidUrl);\r
+                            return false;\r
+                        }\r
+\r
+                        function embed() {\r
+                            if (maxWidth == null || maxWidth == 'undefined') {\r
+                                maxWidth = null;\r
+                            }\r
+\r
+                            if (maxHeight == null || maxHeight == 'undefined') {\r
+                                maxHeight = null;\r
+                            }\r
+\r
+                            if (responsiveResize == null || responsiveResize == 'undefined') {\r
+                                responsiveResize = false;\r
+                            }\r
+\r
+                            embedCode(url, editor, false, maxWidth, maxHeight, responsiveResize);\r
+                        }\r
+\r
+                        if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+                            CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js'), function() {\r
+                                embed();\r
+                            });\r
+                        } else {\r
+                            embed();\r
+                        }\r
+\r
+                        return true;\r
+                    }\r
+                });\r
+\r
+                editor.widgets.add('oembed', {\r
+                    draggable: false,\r
+                    mask: true,\r
+                    dialog: 'oembed',\r
+                    allowedContent: {\r
+                        div: {\r
+                            styles: 'text-align,float',\r
+                            attributes: '*',\r
+                            classes: editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent"\r
+                        },\r
+                        'div(embeddedContent,oembed-provider-*) iframe': {\r
+                            attributes: '*'\r
+                        },\r
+                        'div(embeddedContent,oembed-provider-*) blockquote': {\r
+                            attributes: '*'\r
+                        },\r
+                        'div(embeddedContent,oembed-provider-*) script': {\r
+                            attributes: '*'\r
+                        }\r
+                    },\r
+                    template:\r
+                        '<div class="' + (editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent") + '">' +\r
+                            '</div>',\r
+                    upcast: function(element) {\r
+                        return element.name == 'div' && element.hasClass(editor.config.oembed_WrapperClass != null ? editor.config.oembed_WrapperClass : "embeddedContent");\r
+                    },\r
+                    init: function() {\r
+                        var data = {\r
+                            oembed: this.element.data('oembed') || '',\r
+                            resizeType: this.element.data('resizeType') || 'noresize',\r
+                            maxWidth: this.element.data('maxWidth') || 560,\r
+                            maxHeight: this.element.data('maxHeight') || 315,\r
+                            align: this.element.data('align') || 'none',\r
+                            oembed_provider: this.element.data('oembed_provider') || ''\r
+                        };\r
+\r
+                        this.setData(data);\r
+                        this.element.addClass('oembed-provider-' + data.oembed_provider);\r
+\r
+                        this.on('dialog', function(evt) {\r
+                            evt.data.widget = this;\r
+                        }, this);\r
+                    }\r
+                });\r
+\r
+                editor.ui.addButton('oembed', {\r
+                    label: editor.lang.oembed.button,\r
+                    command: 'oembed',\r
+                    toolbar: 'insert,10',\r
+                    icon: this.path + "icons/" + (CKEDITOR.env.hidpi ? "hidpi/" : "") + "oembed.png"\r
+                });\r
+\r
+                var resizeTypeChanged = function() {\r
+                    var dialog = this.getDialog(),\r
+                        resizetype = this.getValue(),\r
+                        maxSizeBox = dialog.getContentElement('general', 'maxSizeBox').getElement(),\r
+                        sizeBox = dialog.getContentElement('general', 'sizeBox').getElement();\r
+\r
+                    if (resizetype == 'noresize') {\r
+                        maxSizeBox.hide();\r
+\r
+                        sizeBox.hide();\r
+                    } else if (resizetype == "custom") {\r
+                        maxSizeBox.hide();\r
+\r
+                        sizeBox.show();\r
+                    } else {\r
+                        maxSizeBox.show();\r
+\r
+                        sizeBox.hide();\r
+                    }\r
+\r
+                };\r
+\r
+                String.prototype.beginsWith = function(string) {\r
+                    return (this.indexOf(string) === 0);\r
+                };\r
+\r
+                function loadjQueryLibaries() {\r
+                    if (typeof(jQuery) === 'undefined') {\r
+                        CKEDITOR.scriptLoader.load('//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', function() {\r
+                            jQuery.noConflict();\r
+                            if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+                                CKEDITOR.scriptLoader.load(\r
+                                    CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js')\r
+                                );\r
+                            }\r
+                        });\r
+\r
+                    } else if (typeof(jQuery.fn.oembed) === 'undefined') {\r
+                        CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(CKEDITOR.plugins.getPath('oembed') + 'libs/jquery.oembed.min.js'));\r
+                    }\r
+                }\r
+\r
+                function embedCode(url, instance, maxWidth, maxHeight, responsiveResize, resizeType, align, widget) {\r
+                    jQuery('body').oembed(url, {\r
+                        onEmbed: function(e) {\r
+                            var elementAdded = false,\r
+                                provider = jQuery.fn.oembed.getOEmbedProvider(url);\r
+\r
+                            widget.element.data('resizeType', resizeType);\r
+                            if (resizeType == "responsive" || resizeType == "custom") {\r
+                                widget.element.data('maxWidth', maxWidth);\r
+                                widget.element.data('maxHeight', maxHeight);\r
+                            }\r
+\r
+                            widget.element.data('align', align);\r
+\r
+                            // TODO handle align\r
+                            if (align == 'center') {\r
+                                if (!widget.inline)\r
+                                    widget.element.setStyle('text-align', 'center');\r
+\r
+                                widget.element.removeStyle('float');\r
+                            } else {\r
+                                if (!widget.inline)\r
+                                    widget.element.removeStyle('text-align');\r
+\r
+                                if (align == 'none')\r
+                                    widget.element.removeStyle('float');\r
+                                else\r
+                                    widget.element.setStyle('float', align);\r
+                            }\r
+\r
+                            if (typeof e.code === 'string') {\r
+                                if (widget.element.$.firstChild) {\r
+                                    widget.element.$.removeChild(widget.element.$.firstChild);\r
+                                }\r
+\r
+                                widget.element.appendHtml(e.code);\r
+                                widget.element.data('oembed', url);\r
+                                widget.element.data('oembed_provider', provider.name);\r
+                                widget.element.addClass('oembed-provider-' + provider.name);\r
+\r
+                                elementAdded = true;\r
+                            } else if (typeof e.code[0].outerHTML === 'string') {\r
+\r
+                                if (widget.element.$.firstChild) {\r
+                                    widget.element.$.removeChild(widget.element.$.firstChild);\r
+                                }\r
+\r
+                                widget.element.appendHtml(e.code[0].outerHTML);\r
+                                widget.element.data('oembed', url);\r
+                                widget.element.data('oembed_provider', provider.name);\r
+                                widget.element.addClass('oembed-provider-' + provider.name);\r
+\r
+                                elementAdded = true;\r
+                            } else {\r
+                                alert(editor.lang.oembed.noEmbedCode);\r
+                            }\r
+                        },\r
+                        onError: function(externalUrl) {\r
+                            if (externalUrl.indexOf("vimeo.com") > 0) {\r
+                                alert(editor.lang.oembed.noVimeo);\r
+                            } else {\r
+                                alert(editor.lang.oembed.Error);\r
+                            }\r
+\r
+                        },\r
+                        maxHeight: maxHeight,\r
+                        maxWidth: maxWidth,\r
+                        useResponsiveResize: responsiveResize,\r
+                        embedMethod: 'editor'\r
+                    });\r
+                }\r
+\r
+                CKEDITOR.dialog.add('oembed', function(editor) {\r
+                    return {\r
+                        title: editor.lang.oembed.title,\r
+                        minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 568 : 550,\r
+                        minHeight: 155,\r
+                        onShow: function() {\r
+                            var data = {\r
+                                oembed: this.widget.element.data('oembed') || '',\r
+                                resizeType: this.widget.element.data('resizeType') || 'noresize',\r
+                                maxWidth: this.widget.element.data('maxWidth'),\r
+                                maxHeight: this.widget.element.data('maxHeight'),\r
+                                align: this.widget.element.data('align') || 'none'\r
+                            };\r
+\r
+                            this.widget.setData(data);\r
+\r
+                            this.getContentElement('general', 'resizeType').setValue(data.resizeType);\r
+\r
+                            this.getContentElement('general', 'align').setValue(data.align);\r
+\r
+                            var resizetype = this.getContentElement('general', 'resizeType').getValue(),\r
+                                maxSizeBox = this.getContentElement('general', 'maxSizeBox').getElement(),\r
+                                sizeBox = this.getContentElement('general', 'sizeBox').getElement();\r
+\r
+                            if (resizetype == 'noresize') {\r
+                                maxSizeBox.hide();\r
+                                sizeBox.hide();\r
+                            } else if (resizetype == "custom") {\r
+                                maxSizeBox.hide();\r
+\r
+                                sizeBox.show();\r
+                            } else {\r
+                                maxSizeBox.show();\r
+\r
+                                sizeBox.hide();\r
+                            }\r
+                        },\r
+\r
+                        onOk: function() {\r
+                        },\r
+                        contents: [\r
+                            {\r
+                                label: editor.lang.common.generalTab,\r
+                                id: 'general',\r
+                                elements: [\r
+                                    {\r
+                                        type: 'html',\r
+                                        id: 'oembedHeader',\r
+                                        html: '<div style="white-space:normal;width:500px;padding-bottom:10px">' + editor.lang.oembed.pasteUrl + '</div>'\r
+                                    }, {\r
+                                        type: 'text',\r
+                                        id: 'embedCode',\r
+                                        focus: function() {\r
+                                            this.getElement().focus();\r
+                                        },\r
+                                        label: editor.lang.oembed.url,\r
+                                        title: editor.lang.oembed.pasteUrl,\r
+                                        setup: function(widget) {\r
+                                            if (widget.data.oembed) {\r
+                                                this.setValue(widget.data.oembed);\r
+                                            }\r
+                                        },\r
+                                        commit: function(widget) {\r
+                                            var dialog = CKEDITOR.dialog.getCurrent(),\r
+                                                inputCode = dialog.getValueOf('general', 'embedCode').replace(/\s/g, ""),\r
+                                                resizeType = dialog.getContentElement('general', 'resizeType').\r
+                                                    getValue(),\r
+                                                align = dialog.getContentElement('general', 'align').\r
+                                                    getValue(),\r
+                                                maxWidth = null,\r
+                                                maxHeight = null,\r
+                                                responsiveResize = false,\r
+                                                editorInstance = dialog.getParentEditor();\r
+\r
+                                            if (inputCode.length < 1 || inputCode.indexOf('http') < 0) {\r
+                                                alert(editor.lang.oembed.invalidUrl);\r
+                                                return false;\r
+                                            }\r
+\r
+                                            if (resizeType == "noresize") {\r
+                                                responsiveResize = false;\r
+                                                maxWidth = null;\r
+                                                maxHeight = null;\r
+                                            } else if (resizeType == "responsive") {\r
+                                                maxWidth = dialog.getContentElement('general', 'maxWidth').\r
+                                                    getInputElement().\r
+                                                    getValue();\r
+                                                maxHeight = dialog.getContentElement('general', 'maxHeight').\r
+                                                    getInputElement().\r
+                                                    getValue();\r
+\r
+                                                responsiveResize = true;\r
+                                            } else if (resizeType == "custom") {\r
+                                                maxWidth = dialog.getContentElement('general', 'width').\r
+                                                    getInputElement().\r
+                                                    getValue();\r
+                                                maxHeight = dialog.getContentElement('general', 'height').\r
+                                                    getInputElement().\r
+                                                    getValue();\r
+\r
+                                                responsiveResize = false;\r
+                                            }\r
+\r
+                                            embedCode(inputCode, editorInstance, maxWidth, maxHeight, responsiveResize, resizeType, align, widget);\r
+\r
+                                            widget.setData('oembed', inputCode);\r
+                                            widget.setData('resizeType', resizeType);\r
+                                            widget.setData('align', align);\r
+                                            widget.setData('maxWidth', maxWidth);\r
+                                            widget.setData('maxHeight', maxHeight);\r
+                                        }\r
+                                    }, {\r
+                                        type: 'hbox',\r
+                                        widths: ['50%', '50%'],\r
+                                        children: [\r
+                                            {\r
+                                                id: 'resizeType',\r
+                                                type: 'select',\r
+                                                label: editor.lang.oembed.resizeType,\r
+                                                'default': 'noresize',\r
+                                                setup: function(widget) {\r
+                                                    if (widget.data.resizeType) {\r
+                                                        this.setValue(widget.data.resizeType);\r
+                                                    }\r
+                                                },\r
+                                                items: [\r
+                                                    [editor.lang.oembed.noresize, 'noresize'],\r
+                                                    [editor.lang.oembed.responsive, 'responsive'],\r
+                                                    [editor.lang.oembed.custom, 'custom']\r
+                                                ],\r
+                                                onChange: resizeTypeChanged\r
+                                            }, {\r
+                                                type: 'hbox',\r
+                                                id: 'maxSizeBox',\r
+                                                widths: ['120px', '120px'],\r
+                                                style: 'float:left;position:absolute;left:58%;width:200px',\r
+                                                children: [\r
+                                                    {\r
+                                                        type: 'text',\r
+                                                        width: '100px',\r
+                                                        id: 'maxWidth',\r
+                                                        'default': editor.config.oembed_maxWidth != null ? editor.config.oembed_maxWidth : '560',\r
+                                                        label: editor.lang.oembed.maxWidth,\r
+                                                        title: editor.lang.oembed.maxWidthTitle,\r
+                                                        setup: function(widget) {\r
+                                                            if (widget.data.maxWidth) {\r
+                                                                this.setValue(widget.data.maxWidth);\r
+                                                            }\r
+                                                        }\r
+                                                    }, {\r
+                                                        type: 'text',\r
+                                                        id: 'maxHeight',\r
+                                                        width: '120px',\r
+                                                        'default': editor.config.oembed_maxHeight != null ? editor.config.oembed_maxHeight : '315',\r
+                                                        label: editor.lang.oembed.maxHeight,\r
+                                                        title: editor.lang.oembed.maxHeightTitle,\r
+                                                        setup: function(widget) {\r
+                                                            if (widget.data.maxHeight) {\r
+                                                                this.setValue(widget.data.maxHeight);\r
+                                                            }\r
+                                                        }\r
+                                                    }\r
+                                                ]\r
+                                            }, {\r
+                                                type: 'hbox',\r
+                                                id: 'sizeBox',\r
+                                                widths: ['120px', '120px'],\r
+                                                style: 'float:left;position:absolute;left:58%;width:200px',\r
+                                                children: [\r
+                                                    {\r
+                                                        type: 'text',\r
+                                                        id: 'width',\r
+                                                        width: '100px',\r
+                                                        'default': editor.config.oembed_maxWidth != null ? editor.config.oembed_maxWidth : '560',\r
+                                                        label: editor.lang.oembed.width,\r
+                                                        title: editor.lang.oembed.widthTitle,\r
+                                                        setup: function(widget) {\r
+                                                            if (widget.data.maxWidth) {\r
+                                                                this.setValue(widget.data.maxWidth);\r
+                                                            }\r
+                                                        }\r
+                                                    }, {\r
+                                                        type: 'text',\r
+                                                        id: 'height',\r
+                                                        width: '120px',\r
+                                                        'default': editor.config.oembed_maxHeight != null ? editor.config.oembed_maxHeight : '315',\r
+                                                        label: editor.lang.oembed.height,\r
+                                                        title: editor.lang.oembed.heightTitle,\r
+                                                        setup: function(widget) {\r
+                                                            if (widget.data.maxHeight) {\r
+                                                                this.setValue(widget.data.maxHeight);\r
+                                                            }\r
+                                                        }\r
+                                                    }\r
+                                                ]\r
+                                            }\r
+                                        ]\r
+                                    }, {\r
+                                        type: 'hbox',\r
+                                        id: 'alignment',\r
+                                        children: [\r
+                                            {\r
+                                                id: 'align',\r
+                                                type: 'radio',\r
+                                                items: [\r
+                                                    [editor.lang.oembed.none, 'none'],\r
+                                                    [editor.lang.common.alignLeft, 'left'],\r
+                                                    [editor.lang.common.alignCenter, 'center'],\r
+                                                    [editor.lang.common.alignRight, 'right']\r
+                                                ],\r
+                                                label: editor.lang.common.align,\r
+                                                setup: function(widget) {\r
+                                                    this.setValue(widget.data.align);\r
+                                                }\r
+                                            }\r
+                                        ]\r
+                                    }\r
+                                ]\r
+                            }\r
+                        ]\r
+                    };\r
+                });\r
+            }\r
+        });\r
+    }\r
+)();\r
index 44129a9881a12ade0ca1777cac5612febd862ab6..816ccc48b2ae4d2fd1710626172b5dd47030d7b6 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -99,7 +99,7 @@
                                                        parentDiv = iframe.getParent(),\r
                                                        doc = iframe.getFrameDocument();\r
 \r
-                                               // Make it scrollable on iOS. (#8308)\r
+                                               // Make it scrollable on iOS. (http://dev.ckeditor.com/ticket/8308)\r
                                                CKEDITOR.env.iOS && parentDiv.setStyles( {\r
                                                        'overflow': 'scroll',\r
                                                        '-webkit-overflow-scrolling': 'touch'\r
                                                // Register the CKEDITOR global.\r
                                                win.$.CKEDITOR = CKEDITOR;\r
 \r
-                                               // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (#4534).\r
+                                               // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (http://dev.ckeditor.com/ticket/4534).\r
                                                doc.on( 'keydown', function( evt ) {\r
                                                        var keystroke = evt.data.getKeystroke(),\r
                                                                dir = this.document.getById( this.id ).getAttribute( 'dir' );\r
                                current = this._.currentBlock;\r
 \r
                        // ARIA role works better in IE on the body element, while on the iframe\r
-                       // for FF. (#8864)\r
+                       // for FF. (http://dev.ckeditor.com/ticket/8864)\r
                        var holder = !this.forceIFrame || CKEDITOR.env.ie ? this._.holder : this.document.getById( this.id + '_frame' );\r
 \r
                        if ( current )\r
                                var links = this.element.getElementsByTag( 'a' );\r
                                var item = links.getItem( this._.focusIndex = index );\r
 \r
-                               // Safari need focus on the iframe window first(#3389), but we need\r
+                               // Safari need focus on the iframe window first(http://dev.ckeditor.com/ticket/3389), but we need\r
                                // lock the blur to avoid hiding the panel.\r
                                if ( CKEDITOR.env.webkit )\r
                                        item.getDocument().getWindow().focus();\r
                                item.focus();\r
 \r
                                this.onMark && this.onMark( item );\r
+                       },\r
+\r
+                       /**\r
+                        * Marks the first visible item or the one whose `aria-selected` attribute is set to `true`.\r
+                        * The latter has priority over the former.\r
+                        *\r
+                        * @private\r
+                        * @param beforeMark function to be executed just before marking.\r
+                        * Used in cases when any preparatory cleanup (like unmarking all items) would simultaneously\r
+                        * destroy the information that is needed to determine the focused item.\r
+                        */\r
+                       markFirstDisplayed: function( beforeMark ) {\r
+                               var notDisplayed = function( element ) {\r
+                                               return element.type == CKEDITOR.NODE_ELEMENT && element.getStyle( 'display' ) == 'none';\r
+                                       },\r
+                                       links = this._.getItems(),\r
+                                       item, focused;\r
+\r
+                               for ( var i = links.count() - 1; i >= 0; i-- ) {\r
+                                       item = links.getItem( i );\r
+\r
+                                       if ( !item.getAscendant( notDisplayed ) ) {\r
+                                               focused = item;\r
+                                               this._.focusIndex = i;\r
+                                       }\r
+\r
+                                       if ( item.getAttribute( 'aria-selected' ) == 'true' ) {\r
+                                               focused = item;\r
+                                               this._.focusIndex = i;\r
+                                               break;\r
+                                       }\r
+                               }\r
+\r
+                               if ( !focused ) {\r
+                                       return;\r
+                               }\r
+\r
+                               if ( beforeMark ) {\r
+                                       beforeMark();\r
+                               }\r
+\r
+                               if ( CKEDITOR.env.webkit )\r
+                                       focused.getDocument().getWindow().focus();\r
+                               focused.focus();\r
+\r
+                               this.onMark && this.onMark( focused );\r
+                       },\r
+\r
+                       /**\r
+                        * Returns a `CKEDITOR.dom.nodeList` of block items.\r
+                        *\r
+                        * @returns {*|CKEDITOR.dom.nodeList}\r
+                        */\r
+                       getItems: function() {\r
+                               return this.element.getElementsByTag( 'a' );\r
                        }\r
                },\r
 \r
                                                        }\r
                                                }\r
 \r
-                                               // If no link was found, cycle and restart from the top. (#11125)\r
+                                               // If no link was found, cycle and restart from the top. (http://dev.ckeditor.com/ticket/11125)\r
                                                if ( !link && !noCycle ) {\r
                                                        this._.focusIndex = -1;\r
                                                        return this.onKeyDown( keystroke, 1 );\r
                                                        }\r
 \r
                                                        // Make sure link is null when the loop ends and nothing was\r
-                                                       // found (#11125).\r
+                                                       // found (http://dev.ckeditor.com/ticket/11125).\r
                                                        link = null;\r
                                                }\r
 \r
-                                               // If no link was found, cycle and restart from the bottom. (#11125)\r
+                                               // If no link was found, cycle and restart from the bottom. (http://dev.ckeditor.com/ticket/11125)\r
                                                if ( !link && !noCycle ) {\r
                                                        this._.focusIndex = links.count();\r
                                                        return this.onKeyDown( keystroke, 1 );\r
index 8f6bd5f8f3b4fe98b3a944d4709aa21ffe46d28e..89b6201d0d66251c41e2057254ef557eb70ecab8 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -48,7 +48,7 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
                        return false;\r
 \r
                try {\r
-                       // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (#8855).\r
+                       // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (http://dev.ckeditor.com/ticket/8855).\r
                        var ua = navigator.userAgent.toLowerCase();\r
                        if ( ua.indexOf( ' chrome/' ) == -1 ) {\r
                                popupWindow.moveTo( left, top );\r
index 910b0a3c8f529b16e788fd2a9cc5edb2aae18854..069587874b1f4e49fc0905ead042c9ef329f41d9 100644 (file)
Binary files a/sources/plugins/removeformat/icons/hidpi/removeformat.png and b/sources/plugins/removeformat/icons/hidpi/removeformat.png differ
index 1bc9b38601a9bf1b0c43c81aaed50c507826cf9e..f4597bfecf246f4f3a7da4d4961e9218f6533692 100644 (file)
Binary files a/sources/plugins/removeformat/icons/removeformat.png and b/sources/plugins/removeformat/icons/removeformat.png differ
index f4aad8d61fbf66f4233fed29a2048701e5e2bbde..490494556a5ac845ea9c096ea8ef51b3c7840ab4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'af', {\r
index fc430021cd1fba9ea5664c2b65bb1e7df3d11934..661e8518a85656c8796da6b44b0cc671804d091e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ar', {\r
diff --git a/sources/plugins/removeformat/lang/az.js b/sources/plugins/removeformat/lang/az.js
new file mode 100644 (file)
index 0000000..948837e
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'az', {\r
+       toolbar: 'Formatı sil'\r
+} );\r
index bc24b704450499093860bf372341d34c6d54d610..a96dc60ce623fd27aa99afdc1fbb69d53e64b4cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'bg', {\r
index 40bf380ad0411fe4ec87268268bb637bdc9c6c13..0c59c81cf67c48375b86937b354185a2fdeb5504 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'bn', {\r
-       toolbar: 'ফরমà§\87à¦\9f à¦¸à¦°à¦¾à¦\93'\r
+       toolbar: 'ধরন-পà§\8dরà¦\95à§\83তি à¦\85পসারণ à¦\95রি'\r
 } );\r
index ee03684ba049a216b236918c0711488626f1a8ab..83fd72353d397cb876a8bf1e1edaef2ad4ca8472 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'bs', {\r
index 0b94ce4f9df1bc8a5ade79af1c12fcd0948e8571..01ead3bc270b701dbd6d32f9501266ee7df46595 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ca', {\r
index ce05801303856a832abadaad54e77030d289d7a2..cab8cfc85b898bd1bd8a87e28e4a433125920519 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'cs', {\r
index 14372a1bf9f04ff96ba6e757306fbbe4300e7492..7908104be2c72443b0cc930307504e47f55ea7c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'cy', {\r
index d1705849ee51ff425f62f6d12c1c38be37055d23..6f35909b7cee6988a9ce5350bea88b45f7590b9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'da', {\r
index 48daf26d076e0374aa4639ea5b3ef04651233f1f..37d1ccd176bcb01d34589d35ca65c04c961b3774 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'de-ch', {\r
index 08ad55c5c39275de4818d65fefa4f5874dd7a59f..5d8901bf6894041595ba0d0da1a8e2a2f2e27bcb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'de', {\r
index d48c8ab28f06aa46f93dac30b4e838bc7f1aaa48..e0da8c613dc3b3725f8e1516ef0bfdd153581a37 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'el', {\r
index 426d6d1be5ce5148f6a7b95f75140c326e414d45..4d98f6d139bb8d63a9e79a1b654f14e8dfafd956 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'en-au', {\r
index 1cc2963b9de09bef749c6f05aaef1fee61082d80..998eb01f25bc8f9994df9816662e87d483f6d8a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'en-ca', {\r
index 65af6167206b02e9a1d2558dc2430d96ee75b639..f40ca1846b0af69b9658c95a688bf6d44fb86ea3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'en-gb', {\r
index 55600fc368fed4f4a693345837aa6c92338d69a7..ed263434ae8729d7bdceab07e4ed304d16881f8b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'en', {\r
index c4f04e3c76891ba6ae0ecffceb248450847241fb..bb25f96d316f0fea2d8daa4bbc291207121b05a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'eo', {\r
diff --git a/sources/plugins/removeformat/lang/es-mx.js b/sources/plugins/removeformat/lang/es-mx.js
new file mode 100644 (file)
index 0000000..dda30c5
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'es-mx', {\r
+       toolbar: 'Remover formato'\r
+} );\r
index dc48200bc027ae6a47e21b4527cd3ca1433d90ad..d097bdbe9296dd4d66c0c1256a3ab50291975052 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'es', {\r
index 2938e78c3eff37094cbface7da7ac7615becc8ea..823749d343e3e3fd7aa7a1f399120697472f71bc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'et', {\r
index ff16de304fdca37c116034ddc1345ccac473fd10..bc487f7db039f71bc76ebf47d96ac5aa7c3dcd83 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'eu', {\r
index 40e8a1d02c12f60a3dd994266dc456ab33da0dca..8fc6b93c8c980e45b25047ebc4a7041fa6e060cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'fa', {\r
index 90f2f546439ac8aa0e48e22dbc6af9ec5fc80fa2..c61a093ad4a422bf7b355143a9d1d0c758fcf91d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'fi', {\r
index 68fbb29bbbb42710e7b2152ce326178abf123b7a..b80c158c0c3a38139a4e15c8789bb7ee843a413d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'fo', {\r
index 67709de194b1146ea725c826ead27184907144c2..fe3534d3d342c71f7fca638c154c427f7ba69954 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'fr-ca', {\r
index 0ccb8ed69deea768852d329b527cbd5dcefcc159..e18fd832d8b63dacefeaee7c679855f875c18124 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'fr', {\r
index 8ed13d3940ad4a35f459b2af2bfd7807d18fa074..8190cca3506a315dbfa5fa2e2c4d4ee01f0649bb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'gl', {\r
index 7d31531e237ba5934bfbeb40baecace4852607bc..621ad9d131dff40d483e3471ac025db2ac072891 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'gu', {\r
index 1073e391b3ac6c0602da396f6e4f7e949a50cf8c..bcdc1bd695f798ef02af8a76341b8b01d29ac7a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'he', {\r
index 952feac4ff9ed6a299fa6b9afdc2b2e5e5bd9bb7..ab15f5dc9c6da5eb134a4487684382ce0a468b94 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'hi', {\r
index 9332057b3df388804d56ca7dd2a5ad0550761f15..c0614008acff17b5dd31ebe6e4ea1d135af4f2c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'hr', {\r
index a7cabfcaae4a6a51d7aed69553afc9ec60cd3a52..fe1c099a6ee7f066a9f4ce362ff1abf8d8689e45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'hu', {\r
index f677a05c56ea73e17f782f05eff77a5f8eeddfb2..e7eded016661620376bd4ebabe84fc888909e94b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'id', {\r
index 5f7c53f037b858428e2ca92af6bcedad86fcb414..98b9b4d71189f5e07c3d881f0e391cf7ed5efbdf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'is', {\r
index 840d043bc67a4e703b51615c74655c5ceb701f6f..0ea8fb97694a703d2f6049a7218ab38e2f046fa0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'it', {\r
index acc74518a0e6213024563ca0acdc761b6a847b69..ca0970fb94aef5323a96678721ddf5055cde24c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ja', {\r
index a455c35a6c7c173aba21b8e4a8c1d73ca873ff41..b624c5d60685b531c2ba8c1303eba04fd93bfcf0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ka', {\r
index b20d6acde10b0018b6e79734167570f9ff3567b8..cacd321309a2a62310ef38847e37c86c3b35eb53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'km', {\r
index 60df7aa289206efd5fa0ed9cf0b254c3adb70a91..a594cccafeff889a8ada62932aef428a1f30bd81 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ko', {\r
index 5b84310f393dac4721a077b34a59e51d6f82ff3b..51ae15ae6d20a06716f149520603be2a1a9b9c69 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ku', {\r
index 88be97ef4c08a7567c26e9506c08915b5b808939..1e7f2df7d426276bfb0587d206339720bb50a617 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'lt', {\r
index 946e6d9deca95b6c1f7da1c2f4e5487a28db86af..f382171d38226538af46612f69f3ed61f212ecba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'lv', {\r
index 4fcbf8ded5d8213b8cde7109d373fb412919952f..be04ba4566c2a9975b546d3947a9e7eacc7daa36 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'mk', {\r
index e504411a048bd437259c54bdd6dea3d45c944668..378a8987b7c3f869224ecc32858baab40145bfc7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'mn', {\r
index bb6951b325f3254257f8beee81d43ec89349ef5f..ee81ba143e10f4375ffcfe11238dbe383bf9cd14 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ms', {\r
index 461d140dfe812415056c96b4cb7114ac224f743a..19f093d1f9e25e019e122384ebcf67d798bd3099 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'nb', {\r
index cbbe0b1038ec75196002d66a20bb1588f8a6f893..46be61be32976273e03d7e8755923833f710be97 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'nl', {\r
index d067249ff3fb834a688e8c361f5b19b1cd6edad9..84d38afdb50cdcc6148299ee8fef37a2135f7929 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'no', {\r
diff --git a/sources/plugins/removeformat/lang/oc.js b/sources/plugins/removeformat/lang/oc.js
new file mode 100644 (file)
index 0000000..7dda966
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'removeformat', 'oc', {\r
+       toolbar: 'Suprimir la mesa en forma'\r
+} );\r
index 5b1bddbccdd8e55e3b9c34d6893065d37f0c90b9..41e7034d391fe51deb6e46a8874225fc7ff348c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'pl', {\r
index fb05dceb618618dd1d6901d658075c01c6135182..61b44c0049415a19c9d4190934db9ef2ee85655e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'pt-br', {\r
index c3e5d97841df6ae7f99a0dbf7ec4eac4e5ece7b3..b54dbce1cfea20d7a241d04ce580d6219266552b 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'pt', {\r
-       toolbar: 'Eliminar Formato'\r
+       toolbar: 'Limpar formatação'\r
 } );\r
index 1c045c74ef0322f7b52cb337ebad9965d51d3d76..649bced6b37da23c7f34116b3112496e8f452a47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ro', {\r
index baaa2fbea0cf8a33ae4cbc1452ecbaebf227d692..ea05d6eeace761074d7cab1dfe2d2899c0b4de0f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ru', {\r
index 7a8674778ea1fcf3eb246151ecb4e1be2dd078c1..db5d7159657dfa45aa97035b9b7fa1d2ff77aeb8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'si', {\r
index 77651f27e53acaf4db9fb378730523db31f6192c..625c8d634dda80a8532413d3e1e85374c458477a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sk', {\r
index a717049db42d2f502d730477a55d84e2e985c99b..895c1e74a849bb75e286daa5abbeb1fa652ae28d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sl', {\r
index 73c8419da319c9c3fa93ff06671f0e414ab8ae34..45f455ae9892a8fd677d5d01c233f3db68326c4b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sq', {\r
index 9e9110577918050e260db6a30949974c0f2d0f7e..51f34a78a9a4556737e84a798e3e370429f745bb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sr-latn', {\r
index fd720a9430cc9980345b1b6d500b7657ac55ddb4..c6080dd40cab90f7be41ebd35fef3e8c42e0f28b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sr', {\r
index ebb4aedfaff2c9a9acbb4582ff351a3e770db892..2dd7edcd394a8fd9a1d0b7a7601dfc686c427b9a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'sv', {\r
index d521c58d91c2c7b3c1ed0819d7096dd75aab650c..0bc74e25d54588298d4197acb902ecb37dda0d37 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'th', {\r
index 2d4097c1210ea45eb46dd5e11fce0adcf2911d5b..2c961c563e32ca0e0e9eb00c717f9f0b6b045365 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'tr', {\r
index 4fa55700641ddebd6b0395a4e076de996494d761..b3afbda1b72fb281bde339634763581556f52a60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'tt', {\r
index 7d9ec298aa916b11d73fbf38b0a1a5c2f2b140d7..07e5daf2aae5c2e56ff534d6f64fe19865f01adb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'ug', {\r
index 1dea8661849186fc79d956903aa641ae294e09dd..7ef1f1c5437084f95d6c36a456f4418b86c18dde 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'uk', {\r
index 2aaadc248e6f790cb142f3b8dd30f1799b060f9c..38316bf6e56880a17afe7bb388f27f46380d567c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'vi', {\r
index 6efbf358ff031af32ae7d3d47d1cf64ddd39344b..ec833f1063b5c4d1e28b4128ac691d5b22b8f7c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'zh-cn', {\r
index 6ce2ef01f1196e272bbb528c8e78fc4c4dddf541..dd23488fe7bfeeb946dab3b2496f6ee09d413995 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'removeformat', 'zh', {\r
index 044f54a98c4c278d3169ff77098ad4bd2de0cd0a..94360eed3eff2686b4f2fb4790a2d4a2408dc073 100644 (file)
@@ -1,11 +1,11 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
 CKEDITOR.plugins.add( 'removeformat', {\r
        // jscs:disable maximumLineLength\r
-       lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+       lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
        // jscs:enable maximumLineLength\r
        icons: 'removeformat', // %REMOVE_LINE_CORE%\r
        hidpi: true, // %REMOVE_LINE_CORE%\r
@@ -120,7 +120,7 @@ CKEDITOR.plugins.removeformat = {
                                }\r
 \r
                                // The selection path may not changed, but we should force a selection\r
-                               // change event to refresh command states, due to the above attribution change. (#9238)\r
+                               // change event to refresh command states, due to the above attribution change. (http://dev.ckeditor.com/ticket/9238)\r
                                editor.forceNextSelectionCheck();\r
                                editor.getSelection().selectRanges( ranges );\r
                        }\r
index be9673dfc24035bf3e053b00e89b3916ebef4c6e..123dd2d9714a57b7b660275c2e99f26f9a2b708e 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -19,7 +19,7 @@ CKEDITOR.plugins.add( 'resize', {
                        if ( resizeVertical )\r
                                height = Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) );\r
 \r
-                       // DO NOT impose fixed size with single direction resize. (#6308)\r
+                       // DO NOT impose fixed size with single direction resize. (http://dev.ckeditor.com/ticket/6308)\r
                        editor.resize( resizeHorizontal ? width : null, height );\r
                }\r
 \r
@@ -37,7 +37,7 @@ CKEDITOR.plugins.add( 'resize', {
                var spaceId = editor.ui.spaceId( 'resizer' );\r
 \r
                // Resize in the same direction of chrome,\r
-               // which is identical to dir of editor element. (#6614)\r
+               // which is identical to dir of editor element. (http://dev.ckeditor.com/ticket/6614)\r
                var resizeDir = editor.element ? editor.element.getDirection( 1 ) : 'ltr';\r
 \r
                !config.resize_dir && ( config.resize_dir = 'vertical' );\r
index 67ccc8e15f667522ceec941cd34c7350610c937a..15b04b181bab53bc1358ffd0df8d6c1f721bcd18 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -37,7 +37,7 @@ CKEDITOR.plugins.add( 'richcombo', {
        template +=\r
                ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);"' +\r
                ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +\r
-                       ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188\r
+                       ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // http://dev.ckeditor.com/ticket/188\r
                                '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +\r
                        '<span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span>' +\r
                        '<span class="cke_combo_open">' +\r
@@ -160,7 +160,7 @@ CKEDITOR.plugins.add( 'richcombo', {
                                };\r
 \r
                                function updateState() {\r
-                                       // Don't change state while richcombo is active (#11793).\r
+                                       // Don't change state while richcombo is active (http://dev.ckeditor.com/ticket/11793).\r
                                        if ( this.getState() == CKEDITOR.TRISTATE_ON )\r
                                                return;\r
 \r
@@ -189,15 +189,6 @@ CKEDITOR.plugins.add( 'richcombo', {
 \r
                                        var keystroke = ev.getKeystroke();\r
 \r
-                                       // ARROW-DOWN\r
-                                       // This call is duplicated in plugins/toolbar/plugin.js in itemKeystroke().\r
-                                       // Move focus to the first element after drop down was opened by the arrow down key.\r
-                                       if ( keystroke == 40 ) {\r
-                                               editor.once( 'panelShow', function( evt ) {\r
-                                                       evt.data._.panel._.currentBlock.onKeyDown( 40 );\r
-                                               } );\r
-                                       }\r
-\r
                                        switch ( keystroke ) {\r
                                                case 13: // ENTER\r
                                                case 32: // SPACE\r
@@ -266,12 +257,6 @@ CKEDITOR.plugins.add( 'richcombo', {
 \r
                                        if ( me.onOpen )\r
                                                me.onOpen();\r
-\r
-                                       // The "panelShow" event is fired assinchronously, after the\r
-                                       // onShow method call.\r
-                                       editor.once( 'panelShow', function() {\r
-                                               list.focus( !list.multiSelect && me.getValue() );\r
-                                       } );\r
                                };\r
 \r
                                panel.onHide = function( preventOnClose ) {\r
index e9140f9aa4db0abc8fe11f30a519c7bf503e1272..7dbfb59afa9a6278b3c6a0158c9a73d1ca17a38d 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index adf4af3c984eb6549af7e35b4abcbe40275e9d1e..c95da32d352df28f89fe96c15b00946292c5e91c 100644 (file)
Binary files a/sources/plugins/sourcearea/icons/hidpi/source-rtl.png and b/sources/plugins/sourcearea/icons/hidpi/source-rtl.png differ
index b4d0a15a4d8804205f51ea3e2313e31913264c26..2f3eae1a636b518ac8c706e9b20ef96272d8963f 100644 (file)
Binary files a/sources/plugins/sourcearea/icons/hidpi/source.png and b/sources/plugins/sourcearea/icons/hidpi/source.png differ
index 27d1ba8819842924df2d3e40fd5484ac1e9e8c41..5353eee7e8092521fdba6b836843034356b06923 100644 (file)
Binary files a/sources/plugins/sourcearea/icons/source-rtl.png and b/sources/plugins/sourcearea/icons/source-rtl.png differ
index e44db37985a9161f30484ad1df82dc3b3245ca3a..0783e85c6f4aa582ae8dd3a26eb5c72119c441ae 100644 (file)
Binary files a/sources/plugins/sourcearea/icons/source.png and b/sources/plugins/sourcearea/icons/source.png differ
index 18cd8fd606d4a83de566ca7007559c2a64da49b6..a5a499eb0be62ef070e8f654aebfb0241955cb34 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'af', {\r
index 75a8912197b110d8df81524d6c4fd42214282e61..40808ac3d0f7a7e7649ec08b4c5bc4a694ebde7a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ar', {\r
diff --git a/sources/plugins/sourcearea/lang/az.js b/sources/plugins/sourcearea/lang/az.js
new file mode 100644 (file)
index 0000000..9aeff4b
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'az', {\r
+       toolbar: 'HTML mənbəyini göstər'\r
+} );\r
index 7c87fc8a68e4f3d6ba7edeecc22097a254d89299..49026352a014a280af263643ffba4140a825e8de 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'bg', {\r
index d09d00ffe1c761af1b86b5e96a91ede834704bcb..b050458043345f78928a74a01dfbd4cd2798d593 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'bn', {\r
-       toolbar: 'সà§\8bরà§\8dস'\r
+       toolbar: 'à¦\89à§\8eস'\r
 } );\r
index a422d37b6021a8b93287e74e6f0b5ba56dce0885..c0b5e092805de94b37ca80fd0dd0d0a34e09fa36 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'bs', {\r
index 791ca1627ee60fbd0970d313916767d74f691154..c958e9b30640ad92b232fbdef52b304083df933a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ca', {\r
index acbd886eb43a4fb2144d8d07284d7f54e4b81c3a..dccf57451a76bc95b410de840ab543f7a2b59c01 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'cs', {\r
index 4d2cd74b33cd770e5f3aa06b5e64f528756f1a64..b8ce201bc80c69feea7ae3b15a26d3165b50ebe7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'cy', {\r
index e0a2dfd2ba26348881ebc6e678212cd6eeb90941..bf02c14ee2a9bbddec3bac103bc9ef2c07ecaa28 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'da', {\r
index 37a859d177c00a32737f7defad2351efe6e09603..c039623fb072b0ab7fce623fe7a9f0fa5bc3ecfb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'de-ch', {\r
index 102461e396f6918aef916be2d5212003a5dd3473..dfa995fa125902a6fc20f6a56c79ad37dfc28f8e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'de', {\r
index e830f320a1d1dfa3491f55e1cbf629c5a6aef4f4..0a8d8a8a1d19d35342923599e617246036960975 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'el', {\r
index ce7ac136be18d7cc3be63a923d547af74fe366e9..10e78438e86b47ed4f606d8d09c65dca61f12327 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'en-au', {\r
index 302baa0b0974a667763023df11804088ac335f11..f5e61daef3073831f16725710f416bfd1b233cf0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'en-ca', {\r
index a42e762659c53d1d9fe645068ea5623f095e2c31..5d876aa9cbfb08bd3713effe01223d5a1d972c3e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'en-gb', {\r
index fdf25a1c83b2be2efdb2c2d5cdb429ca5aad20ca..90a24e914be05a19fb2a4d963ac435290fa9c871 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'en', {\r
index 704bf6ad6946560850ec6d10ba8906bc14daa77b..613de63563a46a6b89c7acf12b4520a177cf1f13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'eo', {\r
diff --git a/sources/plugins/sourcearea/lang/es-mx.js b/sources/plugins/sourcearea/lang/es-mx.js
new file mode 100644 (file)
index 0000000..6dc6469
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'es-mx', {\r
+       toolbar: 'Fuente'\r
+} );\r
index ccca6acfbbffe2a8804d290313b6ec802aac166a..014a967709d0b3c4f491dbec077c69e06100e77a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'es', {\r
index c892cc3cf7a23af3827b16a0128d8c81a13f84cc..9a73ece23b28014f39b838bcdd0d170a7dc194bf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'et', {\r
index 95f2de6110765ea599236f67ab3705aae3e35681..350b3e2b698c82878c9bcd145a45547d65ddf37d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'eu', {\r
index c5e78386605f53f77d4a82cb4d9f10c9fd37062a..40757c0c0ab617af10678f18b7f0375650684d69 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'fa', {\r
index 6d0ef2f6b78dbef881027c5e9f1ce5642aa089cf..fba260e260c0614218d6a3c1a35a33fd0e3a87b2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'fi', {\r
index 7dc96c9a3640f144daf03252ea1434a6aa0b19a7..f384c4063eec219d4629e011a05b9b9a08565b89 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'fo', {\r
index 7e1f9167ff9fe3dc0d2d4d8a82372bf5cb487b2f..707686fa9d59f3f27c65c8fa7c6bf8a735f69172 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'fr-ca', {\r
index 4aafaddcb061e9a40b9200db2a91b1e9e3e280b9..57d4f5f14982e96a889d81ac443c87f288b0b972 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'fr', {\r
index bebc3808e97028368c5e928c01a78c189f678e8c..c68a1da981d6c859814ab28f6150132923a91b99 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'gl', {\r
index 890c949d3f273c0405c650c76615678b4a41741e..a1c9b660f4de3cc02abff0b3e96f536da36efdd9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'gu', {\r
index 6012fa2892f78af4ca32f3436e5b844ccba72ff7..8b0f28d0cc5a288958e247addc37412ee07cb4ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'he', {\r
index a60ec4f7322ab90f55ed40e8374f6fad1c646425..0d8cc1bb572c8bcdb3d7f2d0e49c8775bc147ef2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'hi', {\r
index a33e9e72e3017a19c43ae882eac0bdba8701c5e9..dca220278d6cc65aafbe8dad9269bc2a6fea4fa2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'hr', {\r
index 91772685f748a88a19dc4c25d9587faa16c57c4f..9628fe443bbe2ade0e244cc8b710f3fe701d94dd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'hu', {\r
index ba31a81f060b47448356ad60efeadfe8d2fde4e7..f8e25c5d9b85c7a2cbd2ba0ed93ce3906a716d6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'id', {\r
index 66b58bbac1fc0d1db44396cc678beead0cb60edf..a90207d409dbbd5086512053d001b2c286da964f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'is', {\r
index b6815daa82c86245b8f3848ecc3bb18fa24a850f..b445a215a7ba4ce4b5ef510b7d79be9ce54302e0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'it', {\r
index 195730aacdb9f19b4d485bf05548ccd9edf4ff8f..3f026b6ee3407171a12226432a18c18ba2e1e1db 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ja', {\r
index 255951b547698f378f44dd8da687f2cec4fc1430..f06b1307806777d192d9bd03d42ee74e521a5e16 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ka', {\r
index 05630c01b36c6df048c4533c5ed9c5d185da885e..9cd476914a26e12fe3e70840125656bc02c2be09 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'km', {\r
index 535f6a16a0c3fd7d9f3b952809887b6d2dd5791a..26fe7ff86f091b092bbdb9335020c1bcbf4300b4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ko', {\r
index 21c6ace808ff8d31b46579b6ab88f4d84755cb33..a3f12638f9baa8fa4db3c5cd6b97510a67986c54 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ku', {\r
index 99f4ef66a4c2590b7dd9133505e4f481d3e59f2f..c3304dc4276e1714fb287112f3c4a028595b3118 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'lt', {\r
index fb155cd9593b89451c00754c6f36a8d8732c4310..c3ef246bf58688c5a6e05bc710812d70e2b53dd7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'lv', {\r
index 37135a173596176638cbe4da6857ec24ab3e9736..eeccabd4bbb4b019a249ea94472ec9cca7a214b6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'mk', {\r
index 72c0b389917044602e63947a1ba7afb0e2e219fd..a7c128839425ab4c8900062e6d2a17d1dbbe36d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'mn', {\r
index 1ef521be3606e6197a88ad399790d9f218436755..f09ac53a907fc4ac121c2d8c4af157ae64d605d0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ms', {\r
index 66182bfe82532bb9b04ab3622afd08a3d5021b74..87b75a8ab68074a839ed0237c9195b23bf08f7f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'nb', {\r
index 89d2d3cb5fe09ffd08e2deb59b2af953f2bbbc45..dc61f34c23a71154c23888d1d74db8df2c8ba411 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'nl', {\r
index 81db8ceacd0c981586a643eab977d61877ee6738..86f386d0cbbfb13541a6aaba2ea019b21951ba9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'no', {\r
diff --git a/sources/plugins/sourcearea/lang/oc.js b/sources/plugins/sourcearea/lang/oc.js
new file mode 100644 (file)
index 0000000..90f418f
--- /dev/null
@@ -0,0 +1,7 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'sourcearea', 'oc', {\r
+       toolbar: 'Font'\r
+} );\r
index 05bebe8d7c3c24885ebd5d4a1d86996c4135c1c6..48734a8cae3c5eacbe38a8aad4b05179936ba473 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'pl', {\r
index 663f25b880ca936feb90474057a2bf4995786ba0..54e3ce1140f5c5c585d99566f7f1f2ca5d317735 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'pt-br', {\r
index 9d97358222e52f9e5a2d1166e50a54ad9688e076..7fd6c2317b95c10a16b68c0c72a67c4495d34fe2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'pt', {\r
index f8e347938794b64b524601dc954d0527dc5c3625..5eb00c4a36e30229c85d51c39fb141c1477b89a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ro', {\r
index 2f4299f0c0f8045acbe1bf8357802f63a1db3ce1..304695ca3c2d12c4f14e18ed1ba1b4adae9963cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ru', {\r
index 30dc6aabcdc12208bac30423e3fb43865c505e26..22996eb5d3e55cca72c53024d42140a6b2eaf29d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'si', {\r
index 7b487a302c12a91564776389e0c3a4c06a3f4c44..aed1c619ff2aa63863e169f89b4476ce05ed2aec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sk', {\r
index 05a9539da3d07918d0ab3b8c5a82b2c2a5fc6c7a..b9a2b5f5ad654ec416749e6f463434ec285a52f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sl', {\r
index 989267da6a4aa2c199a6406e2495d105928153e5..f4512ce008a762ba23236b665c756142168ef0f2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sq', {\r
index 6084786ad26865db2ea05371e5d280069d9362a7..0d8ebd7b756d7e0a1ad506bfe7352ab01c8628e5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sr-latn', {\r
index 78599cb403127759fe8053ed4af4c46bd406f105..a8725569709d7dc631e095d1248b152dc6498350 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sr', {\r
index 571cf076c877c807ffa05839520f1df3a98b05a4..a05d49ddeabbca60ea3b7f00a356d3df72a51a47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'sv', {\r
index aa6427d6d16a47d03e74fbd61a865c0e68bec6ed..4afb9bc9004baff8bac99176f07e7c44354e934e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'th', {\r
index 54cc744219c39c6cbc3f767b7215ff3d18685b56..7a9f70aa3dccc0bf5766a6bdff71cfc2e519854d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'tr', {\r
index 964102f8c2ba259270594ad7b9a312e5d560d0c0..ca05df1716319498cc8030279118fee54b44a491 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'tt', {\r
index de3043515daf19eaa07d2b6a5a929f2ecd7126bc..791c5960d0b2ef72d4ae828bdb9e72f801371640 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'ug', {\r
index f9eea57487cee08d78dfbfd792ba2a0dbbafa692..905af475e7f5fbdc90c748645ebf6fc18c0d8797 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'uk', {\r
index 23f8bef5baeafc28ae108109c0dcba431f373e25..df7eb93e0a6c33df227c9f7c1e8f8368131a6463 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'vi', {\r
index 1bff53397ae48bdd55758f3cb6c693d4b7aab88b..a98c8698131be1225cda54a709d3450d55557fe7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'zh-cn', {\r
index 2268151d7ad991c583c624326aa0b8c09b578dd8..043dd115ce0ef1d131698432cc20aeada9f580f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'sourcearea', 'zh', {\r
index 7c9ac886350fb1308837d82ebf8f7e46919a21ee..09745be6cc943fa8e6e65183a307dd323b8f09c9 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -11,7 +11,7 @@
 ( function() {\r
        CKEDITOR.plugins.add( 'sourcearea', {\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
                icons: 'source,source-rtl', // %REMOVE_LINE_CORE%\r
                hidpi: true, // %REMOVE_LINE_CORE%\r
@@ -38,7 +38,7 @@
                                        CKEDITOR.tools.cssVendorPrefix( 'tab-size', editor.config.sourceAreaTabSize || 4 ) ) );\r
 \r
                                // Make sure that source code is always displayed LTR,\r
-                               // regardless of editor language (#10105).\r
+                               // regardless of editor language (http://dev.ckeditor.com/ticket/10105).\r
                                textarea.setAttribute( 'dir', 'ltr' );\r
 \r
                                textarea.addClass( 'cke_source' ).addClass( 'cke_reset' ).addClass( 'cke_enable_context_menu' );\r
@@ -53,7 +53,7 @@
                                // Having to make <textarea> fixed sized to conquer the following bugs:\r
                                // 1. The textarea height/width='100%' doesn't constraint to the 'td' in IE6/7.\r
                                // 2. Unexpected vertical-scrolling behavior happens whenever focus is moving out of editor\r
-                               // if text content within it has overflowed. (#4762)\r
+                               // if text content within it has overflowed. (http://dev.ckeditor.com/ticket/4762)\r
                                if ( CKEDITOR.env.ie ) {\r
                                        editable.attachListener( editor, 'resize', onResize, editable );\r
                                        editable.attachListener( CKEDITOR.document.getWindow(), 'resize', onResize, editable );\r
@@ -83,7 +83,7 @@
 \r
                        function onResize() {\r
                                // We have to do something with focus on IE9, because if sourcearea had focus\r
-                               // before being resized, the caret ends somewhere in the editor UI (#11839).\r
+                               // before being resized, the caret ends somewhere in the editor UI (http://dev.ckeditor.com/ticket/11839).\r
                                var wasActive = needsFocusHack && this.equals( CKEDITOR.document.getActive() );\r
 \r
                                // Holder rectange size is stretched by textarea,\r
index cd61b9774722b5aa4e7ab8e1d89515f0cd84aeb9..98acb2e0213c9bd6d706161d887ed7050f1e93c4 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
index 370cf6b067692b0920c14a8d5356136782c291cc..8a3b1cded7c6e8399843b7903013f441ab90f457 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'af', {\r
index ecced64b34d28bb7993df6aa063d32643f109c28..8cef5e762d94d9245709c6f707dabf3339b3a1a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ar', {\r
diff --git a/sources/plugins/toolbar/lang/az.js b/sources/plugins/toolbar/lang/az.js
new file mode 100644 (file)
index 0000000..25c4a53
--- /dev/null
@@ -0,0 +1,22 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'az', {\r
+       toolbarCollapse: 'Paneli gizlət',\r
+       toolbarExpand: 'Paneli göstər',\r
+       toolbarGroups: {\r
+               document: 'Mətn',\r
+               clipboard: 'Mübadilə buferi/İmtina et',\r
+               editing: 'Redaktə edilməsi',\r
+               forms: 'Formalar',\r
+               basicstyles: 'Əsas üslublar',\r
+               paragraph: 'Abzas',\r
+               links: 'Link',\r
+               insert: 'Əlavə et',\r
+               styles: 'Üslublar',\r
+               colors: 'Rənqlər',\r
+               tools: 'Alətləri'\r
+       },\r
+       toolbars: 'Redaktorun panelləri'\r
+} );\r
index f256ca95fa98fcb449acadc1dbc983b41d40f9f7..0fb4384e7a0694e4eeb3a15231d0b5bbec7ac398 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'bg', {\r
index c59c2ed8b3c19d3df15c02dffdc3881d9796428b..dc9697e9c4c7011b370b73eafd00c36819cbc951 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'bn', {\r
index db3f43b6fe6938c5d5313ad6a3faf6c64214c320..00f46d094d29bf04455b94c4f0f7761d245ebb60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'bs', {\r
index 45cef50aa2d0d4b2780f570682423e9d7671cae9..82e44130293a9bd867714222c0925f12ca5d5aa0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ca', {\r
index 1e92738bfe3055eb0ec1470b2993e75ec3f6cf3f..f8e650f376ac9a553c8a7089c7ae2a9a614ce04c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'cs', {\r
index 2ce92fafdf5eb4a029acb4d676ff5b26f89a3d95..faebd1b9e4ac0b6eafa34a4d610ece23c24288ce 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'cy', {\r
index a36a1a500a033208582f4586304e274854db439a..750bc6485919c41c25f6b24e8180b46e3e7688f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'da', {\r
index 1f23f24885f6a4b69d14cf2c5b71771fab71d25b..399aa631f56be2a0ab71932523d05d1220c06dca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'de-ch', {\r
index 0b1d4ba3e7204f87a8b21c23aa0faf1979b45a8b..fab73aa05b1736b7d628460deed5ab8c6a565eee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'de', {\r
index b5bd212540d0549c91a1ab8148c484a016765407..ce46898418bc903a95c4b7d0cfeeb6bc5e0c9852 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'el', {\r
index afa15d10571875e7fc117354504a7ad39e1334c3..8517e624f1d49470d743ad1011171e1603d97987 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'en-au', {\r
index 4dc04a80cc84ebaee2556df2e32e5063225637eb..fb2049ae609ad8165c38880f96be0da40b064a47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'en-ca', {\r
index 14993a5421f2a0a1c5d84dbf60e10dc108497fc1..df7198e4cd6d56c26806ce186d759de6185bebc7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'en-gb', {\r
index eeacf38ef9a680bd0cc00fc40f3c13b3bd13f47a..263ac0ec6f11f69a5e2d2ccce4e609a1f5f34755 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'en', {\r
index 53f24394b06a92d2b4f604f272a400c97a2390da..902a613e807dee7c07be15cca0464c5419586376 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'eo', {\r
diff --git a/sources/plugins/toolbar/lang/es-mx.js b/sources/plugins/toolbar/lang/es-mx.js
new file mode 100644 (file)
index 0000000..4af52fe
--- /dev/null
@@ -0,0 +1,22 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'es-mx', {\r
+       toolbarCollapse: 'Colapsar barra de herramientas',\r
+       toolbarExpand: 'Expandir barra de herramientas',\r
+       toolbarGroups: {\r
+               document: 'Documento',\r
+               clipboard: 'Portapapeles/deshacer',\r
+               editing: 'Editando',\r
+               forms: 'Formularios',\r
+               basicstyles: 'Estilo básico',\r
+               paragraph: 'Párrafo',\r
+               links: 'Enlaces',\r
+               insert: 'Insertar',\r
+               styles: 'Estilos',\r
+               colors: 'Colores',\r
+               tools: 'Herramientas'\r
+       },\r
+       toolbars: 'Editor de barra de herramientas'\r
+} );\r
index d00ca66a43d90faf09d5f29e2ffbf22ff47eadd4..bf5b457828b8ddeb8ba25272bf39b6a6246b640d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'es', {\r
index 034aac3853cda5bde07b50f0a3f5fe4ca68932b7..b83473ffe8c6beb48d61c615539e340bce2a7295 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'et', {\r
index 6ab39736b20bb33c675a1d6b66991e31c9515f94..831d285078a83a1dcb964c4d5652b102de11a61a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'eu', {\r
index 30d302c4d039e64660b91055f51687f59c40b892..2d1bc5d8922b5bd85909170fed04da07a35abdb1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'fa', {\r
index 2eb42bd2a841c8816b0281203e8813229a1dc55e..9e12ad4ea9a307841b5be2fbeff0a56453a16ffb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'fi', {\r
index 93c859ddab4e082fb7d0fe01d3b001dcefd3c10d..4628b5d7074e13d51fa6befcecf627e46c685525 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'fo', {\r
index 06baacf1272e24bb0ec0aaef3b980bc3c3295d74..4aae86379c99ed17dfe5c4412427682922ee6854 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'fr-ca', {\r
index ec8a2aaa4677a26c72fbfc119bddd1fcaf50bdae..986186694b9ab4a9db3514b614354d73a13798ef 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'fr', {\r
@@ -8,7 +8,7 @@ CKEDITOR.plugins.setLang( 'toolbar', 'fr', {
        toolbarGroups: {\r
                document: 'Document',\r
                clipboard: 'Presse-papier/Défaire',\r
-               editing: 'Editer',\r
+               editing: 'Édition',\r
                forms: 'Formulaires',\r
                basicstyles: 'Styles de base',\r
                paragraph: 'Paragraphe',\r
@@ -18,5 +18,5 @@ CKEDITOR.plugins.setLang( 'toolbar', 'fr', {
                colors: 'Couleurs',\r
                tools: 'Outils'\r
        },\r
-       toolbars: 'Barre d\'outils de l\'éditeur'\r
+       toolbars: 'Barres d\'outils de l\'éditeur'\r
 } );\r
index a9517be09339badc6445680833fdef004910b212..f81c10a7d675240f82a9c1ec9e6fb8ab09987d3f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'gl', {\r
index 65df6468f785b9733699187423a97b32fada0413..f34879b6f26aadb9c3820db55767f46cec6457d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'gu', {\r
index 2de8d23aa8890b5792e484532de7268daebdbf80..8e6f34311aefdf683ba6a4dace25beab43917e27 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'he', {\r
index 99a601f3dd8ddccd6db0e7d526578e13716ffe3e..7693fa15403fb0b707b47e15251b80caa8592ad6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'hi', {\r
index b6364150ec897805dbb119cace98d5ecaa4eafca..1928251d2300e6464009ab081fc580fb7adf127d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'hr', {\r
index e40d853b5b802650e3ead9d4393991e32ee2c22f..fb67175b534123f3b6d58738d62d961b49b64a3f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'hu', {\r
index fc56bba22a78016b6d15fc9b6b7329d22d98b923..c993a72af730df0486e52db7bace5390640eb8ed 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'id', {\r
index da0617a0110cf025e87a294b4210dada72df8cab..a5fc159219009e85bb9b658077c37a8b46fe17af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'is', {\r
index e5e5a0feb416fefc6752ca969e3d8bd20d59f422..42099cdb491ef5eac412244ede7c86de8ba9ce3d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'it', {\r
index 03591993d00265530393f7412d21a6287be547ba..49bfcd047e3bff7525f780a770f286981e66cac0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ja', {\r
index 48ef4a45db9a01a40ecf47cab3e75f72c36e9277..f1a46cbdc3b89bbbd22f7e44d1cfbc34d2476b9a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ka', {\r
index 4ceb278211ef29092ef01f42d47cb30c8bd20a6c..3b0eb0575cce2f5397a944088222800717285be5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'km', {\r
index 323b9b303acfff0006b480e7eee37d8553f3e0df..dc5a674de0b2ccf7e1716a0b85bd683c5d251f63 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ko', {\r
index 4b7cfec7ff96d94ea31ecda0a82fbfb845cad1bb..02f8f918ea87eae534aa5b018960ef003e256835 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ku', {\r
index 2950ff2776b83b6923ed9e4f61e25d1d156f5bf3..b705d6f8795bede9f912a0771494f8bcd07f1409 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'lt', {\r
index a57a31e0960e24102ce1ff46041213c8c978ac43..20dd34502ddc7107bab616bfe09cbd5e59dd26ed 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'lv', {\r
index 9c5eeaaea3545662a4679f95c2cb5b87efa5e013..e85581d13b9833b46d2efc09ddb1903214fba1cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'mk', {\r
index b3f42e207732fb9a22950eade3a826207cb0aff2..5aeb46b35ceb2cec7673b51630fe447a7d9cfe83 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'mn', {\r
index 3f095cf5f3c4755f8d2b67dce488ab585f6c40c4..7b78dc67311e3c0a7dccebeb1d4930b957668197 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ms', {\r
index 54d47ee4e7e7026036322df1649817d77b9296bb..830143ae32f9848d55fd118122a16702b7df6606 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'nb', {\r
index f5e821f2924ff594c8c367ec742ecea8315de908..84ac14752f66a8f0cde6d1da9a86c8eb5021de02 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'nl', {\r
index 64a9cb964a708b86613be552e3be757761e8f774..c1a3445e52a2d570870988a78dbd3038bbc78afd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'no', {\r
diff --git a/sources/plugins/toolbar/lang/oc.js b/sources/plugins/toolbar/lang/oc.js
new file mode 100644 (file)
index 0000000..bfd8044
--- /dev/null
@@ -0,0 +1,22 @@
+/*\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+*/\r
+CKEDITOR.plugins.setLang( 'toolbar', 'oc', {\r
+       toolbarCollapse: 'Enrotlar la barra d\'aisinas',\r
+       toolbarExpand: 'Desenrotlar la barra d\'aisinas',\r
+       toolbarGroups: {\r
+               document: 'Document',\r
+               clipboard: 'Quichapapièr/Desfar',\r
+               editing: 'Edicion',\r
+               forms: 'Formularis',\r
+               basicstyles: 'Estils de basa',\r
+               paragraph: 'Paragraf',\r
+               links: 'Ligams',\r
+               insert: 'Inserir',\r
+               styles: 'Estils',\r
+               colors: 'Colors',\r
+               tools: 'Aisinas'\r
+       },\r
+       toolbars: 'Barras d\'aisinas de l\'editor'\r
+} );\r
index 036f13104c89570c48f3c14eff43bf1b61cf43bd..07571c97b440063652a35cb503c446e63c62921e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'pl', {\r
index 1f31a78fe68318ac91bdd3085b46d95e42d7c67b..c897bef875e792c8a6782b0e8e025c720748c43a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'pt-br', {\r
index 2406f60126708b9075d5bec552305884fe1952aa..d684edeb14d13db397c16c4d985c78aef167897d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'pt', {\r
@@ -10,7 +10,7 @@ CKEDITOR.plugins.setLang( 'toolbar', 'pt', {
                clipboard: 'Área de transferência/Anular',\r
                editing: 'Edição',\r
                forms: 'Formulários',\r
-               basicstyles: 'Estilos Básicos',\r
+               basicstyles: 'Estilos básicos',\r
                paragraph: 'Parágrafo',\r
                links: 'Hiperligações',\r
                insert: 'Inserir',\r
@@ -18,5 +18,5 @@ CKEDITOR.plugins.setLang( 'toolbar', 'pt', {
                colors: 'Cores',\r
                tools: 'Ferramentas'\r
        },\r
-       toolbars: 'Editor de Barras de Ferramentas'\r
+       toolbars: 'Editor de barras de ferramentas'\r
 } );\r
index 4d3b395deaca7b4835ceff64747e9d2b56faaf7c..cb1b1e1b6f5a28b16211def1b06b463eeb70d4cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ro', {\r
index 2f384c6d2f36ea7a75df60184f3c4bad01af5888..88f94622cf5167f52fdc3d558cbd05d9bbaacb1d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ru', {\r
index e74adbb0e04786c99633cdc68faf7e2050477917..b57a0885244cfc417e4b8d0fdf6eafd5cccc8c3f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'si', {\r
index d1b78cf16225828eec93c5db6a2cecc553dd8425..fc9f3db161ef2159e9039972f753767a2bf257bc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sk', {\r
index 5bf0e3527b1fec74549ef932e6cef937ce6f47d7..b17eee40c60516bd479a5634d971a437bf81ad26 100644 (file)
@@ -1,22 +1,22 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sl', {\r
-       toolbarCollapse: 'Skrči Orodno Vrstico',\r
-       toolbarExpand: 'Razširi Orodno Vrstico',\r
+       toolbarCollapse: 'Skrči orodno vrstico',\r
+       toolbarExpand: 'Razširi orodno vrstico',\r
        toolbarGroups: {\r
-               document: 'Document',\r
-               clipboard: 'Clipboard/Undo',\r
-               editing: 'Editing',\r
-               forms: 'Forms',\r
-               basicstyles: 'Basic Styles',\r
-               paragraph: 'Paragraph',\r
-               links: 'Links',\r
-               insert: 'Insert',\r
-               styles: 'Styles',\r
-               colors: 'Colors',\r
-               tools: 'Tools'\r
+               document: 'Dokument',\r
+               clipboard: 'Odložišče/Razveljavi',\r
+               editing: 'Urejanje',\r
+               forms: 'Obrazci',\r
+               basicstyles: 'Osnovni slogi',\r
+               paragraph: 'Odstavek',\r
+               links: 'Povezave',\r
+               insert: 'Vstavi',\r
+               styles: 'Slogi',\r
+               colors: 'Barve',\r
+               tools: 'Orodja'\r
        },\r
-       toolbars: 'Urejevalnik orodne vrstice'\r
+       toolbars: 'Orodne vrstice urejevalnika'\r
 } );\r
index 1616bdda9f6eaf4c8efc4aed5d4f0ce7a98aecb9..0ca8add9ab3b948e84b5eeaecf4803e794c01736 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sq', {\r
index 4cb758d1c3c68a1dbf45f036acb7e1f61322d4cd..d746aace7500bdce7d6f1da0899478beb3ff8f4f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sr-latn', {\r
index 498eebff431c444ce136a7fe97ff9a443bd1c939..d02f20fbf221b4357f85458ff4e0c8eea256ba76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sr', {\r
index 5a5d1b97560a5610ff2a0bdd1dd6f43b1381ca23..0a45e881acbf5b6c750c30bce27f992bc4d441c5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'sv', {\r
@@ -18,5 +18,5 @@ CKEDITOR.plugins.setLang( 'toolbar', 'sv', {
                colors: 'Färger',\r
                tools: 'Verktyg'\r
        },\r
-       toolbars: 'Redigera verktygsfält'\r
+       toolbars: 'Editorns verktygsfält'\r
 } );\r
index 3aaa7a592f90e9f2f9b3ac6904f39482b71a4838..c4ae55ea088c72ec46f9c71c6663916d6b2f8bba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'th', {\r
index e2a757bc0e77f400a7440d0f8a481777798576ba..cf7f944cf6847edabd3dc4733dafce57e4243e5f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'tr', {\r
index 25df66c0f9549bcd5346d35ce10f07363164bad5..8eb05424eedb8ad58f7e6920678770348125bf8a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'tt', {\r
index 057552e38cb2735e357f16d4a1f65790640c82c9..95c7c1ba90e781917b18e464f60cec85372b523e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'ug', {\r
index c46d1222b7bb945188afbda2077089bd79e41e2b..3f1f1c79ba48a9d8682455f3ad92f0e0e3d26e9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'uk', {\r
index ff56d9c3d6453f4300719f414d9b9d6d338a8ece..8ff76fdd433ca3899e27c9882570c9230eb59511 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'vi', {\r
index 2b69e32c10daa5105b55433ca9e4c85a4a612d4f..6c3a5ed98fd26e4900bcb6e67f8e7a1cf8665e04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'zh-cn', {\r
index 285122b2c3c51eefb0b9c41a5cc3c00fa1f32ea9..0a9f5de1c4bf2308d43f724fab40726c353d2ffa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 CKEDITOR.plugins.setLang( 'toolbar', 'zh', {\r
index 93e6e35baf7cb0547eb2d0150bc9972755baf669..fc19359ecb8312162b8bd5349507c3092084159a 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -34,7 +34,7 @@
                                if ( editor.toolbox ) {\r
                                        editor.toolbox.focusCommandExecuted = true;\r
 \r
-                                       // Make the first button focus accessible for IE. (#3417)\r
+                                       // Make the first button focus accessible for IE. (http://dev.ckeditor.com/ticket/3417)\r
                                        // Adobe AIR instead need while of delay.\r
                                        if ( CKEDITOR.env.ie || CKEDITOR.env.air ) {\r
                                                setTimeout( function() {\r
@@ -51,7 +51,7 @@
        CKEDITOR.plugins.add( 'toolbar', {\r
                requires: 'button',\r
                // jscs:disable maximumLineLength\r
-               lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               lang: 'af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
                // jscs:enable maximumLineLength\r
 \r
                init: function( editor ) {\r
                                                        return false;\r
                                                case 40: // DOWN-ARROW\r
                                                        if ( item.button && item.button.hasArrow ) {\r
-                                                               // Note: code is duplicated in plugins\richcombo\plugin.js in keyDownFn().\r
-                                                               editor.once( 'panelShow', function( evt ) {\r
-                                                                       evt.data._.panel._.currentBlock.onKeyDown( 40 );\r
-                                                               } );\r
                                                                item.execute();\r
                                                        } else {\r
                                                                // Send left arrow key.\r
                                        output.push( '<span class="cke_toolbox_main"' + ( expanded ? '>' : ' style="display:none">' ) );\r
 \r
                                var toolbars = editor.toolbox.toolbars,\r
-                                       toolbar = getToolbarConfig( editor );\r
+                                       toolbar = getToolbarConfig( editor ),\r
+                                       toolbarLength = toolbar.length;\r
 \r
-                               for ( var r = 0; r < toolbar.length; r++ ) {\r
+                               for ( var r = 0; r < toolbarLength; r++ ) {\r
                                        var toolbarId,\r
                                                toolbarObj = 0,\r
                                                toolbarName,\r
                                                row = toolbar[ r ],\r
+                                               lastToolbarInRow = row !== '/' && ( toolbar[ r + 1 ] === '/' || r == toolbarLength - 1 ),\r
                                                items;\r
 \r
                                        // It's better to check if the row object is really\r
                                        // available because it's a common mistake to leave\r
                                        // an extra comma in the toolbar definition\r
                                        // settings, which leads on the editor not loading\r
-                                       // at all in IE. (#3983)\r
+                                       // at all in IE. (http://dev.ckeditor.com/ticket/3983)\r
                                        if ( !row )\r
                                                continue;\r
 \r
                                                                toolbarName = row.name && ( editor.lang.toolbar.toolbarGroups[ row.name ] || row.name );\r
 \r
                                                                // Output the toolbar opener.\r
-                                                               output.push( '<span id="', toolbarId, '" class="cke_toolbar"', ( toolbarName ? ' aria-labelledby="' + toolbarId + '_label"' : '' ), ' role="toolbar">' );\r
+                                                               output.push( '<span id="', toolbarId, '" class="cke_toolbar' + ( lastToolbarInRow ? ' cke_toolbar_last"' : '"' ),\r
+                                                                       ( toolbarName ? ' aria-labelledby="' + toolbarId + '_label"' : '' ), ' role="toolbar">' );\r
 \r
                                                                // If a toolbar name is available, send the voice label.\r
                                                                toolbarName && output.push( '<span id="', toolbarId, '_label" class="cke_voice_label">', toolbarName, '</span>' );\r
                                                                itemObj.toolbar = toolbarObj;\r
                                                                itemObj.onkey = itemKeystroke;\r
 \r
-                                                               // Fix for #3052:\r
+                                                               // Fix for http://dev.ckeditor.com/ticket/3052:\r
                                                                // Prevent JAWS from focusing the toolbar after document load.\r
                                                                itemObj.onfocus = function() {\r
                                                                        if ( !editor.toolbox.focusCommandExecuted )\r
index 2d3d25fed1343944311f88899c16f88f94631c69..e40d2a19441cf228b9e93759b3da50220d95e723 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -227,7 +227,7 @@ CKEDITOR.replace( <em>'textarea_id'</em>, {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
diff --git a/sources/plugins/widget/dev/assets/contents.css b/sources/plugins/widget/dev/assets/contents.css
new file mode 100644 (file)
index 0000000..2cff316
--- /dev/null
@@ -0,0 +1,23 @@
+.mediumBorder {\r
+       border-width: 2px;\r
+}\r
+.thickBorder {\r
+       border-width: 5px;\r
+}\r
+img.thickBorder, img.mediumBorder {\r
+       border-style: solid;\r
+       border-color: #CCC;\r
+}\r
+.important.soMuch {\r
+       margin: 25px;\r
+       padding: 25px;\r
+       background: red;\r
+       border: none;\r
+}\r
+\r
+span.redMarker {\r
+       background-color: red;\r
+}\r
+.invisible {\r
+       opacity: 0.1;\r
+}\r
diff --git a/sources/plugins/widget/dev/assets/sample.jpg b/sources/plugins/widget/dev/assets/sample.jpg
new file mode 100644 (file)
index 0000000..a4a77fa
Binary files /dev/null and b/sources/plugins/widget/dev/assets/sample.jpg differ
diff --git a/sources/plugins/widget/dev/assets/simplebox/contents.css b/sources/plugins/widget/dev/assets/simplebox/contents.css
new file mode 100644 (file)
index 0000000..ddf3675
--- /dev/null
@@ -0,0 +1,36 @@
+.simplebox {\r
+       padding: 8px;\r
+       margin: 10px;\r
+       background: #eee;\r
+       border-radius: 8px;\r
+       border: 1px solid #ddd;\r
+       box-shadow: 0 1px 1px #fff inset, 0 -1px 0px #ccc inset;\r
+}\r
+.simplebox-title, .simplebox-content {\r
+       box-shadow: 0 1px 1px #ddd inset;\r
+       border: 1px solid #cccccc;\r
+       border-radius: 5px;\r
+       background: #fff;\r
+}\r
+.simplebox-title {\r
+       margin: 0 0 8px;\r
+       padding: 5px 8px;\r
+}\r
+.simplebox-content {\r
+       padding: 0 8px;\r
+}\r
+.simplebox-content::after {\r
+       content: '';\r
+       display: block;\r
+       clear: both;\r
+}\r
+.simplebox.align-right {\r
+       float: right;\r
+}\r
+.simplebox.align-left {\r
+       float: left;\r
+}\r
+.simplebox.align-center {\r
+       margin-left: auto;\r
+       margin-right: auto;\r
+}\r
diff --git a/sources/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js b/sources/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js
new file mode 100644 (file)
index 0000000..45a150c
--- /dev/null
@@ -0,0 +1,51 @@
+// Note: This automatic widget to dialog window binding (the fact that every field is set up from the widget\r
+// and is committed to the widget) is only possible when the dialog is opened by the Widgets System\r
+// (i.e. the widgetDef.dialog property is set).\r
+// When you are opening the dialog window by yourself, you need to take care of this by yourself too.\r
+\r
+CKEDITOR.dialog.add( 'simplebox', function( editor ) {\r
+       return {\r
+               title: 'Edit Simple Box',\r
+               minWidth: 200,\r
+               minHeight: 100,\r
+               contents: [\r
+                       {\r
+                               id: 'info',\r
+                               elements: [\r
+                                       {\r
+                                               id: 'align',\r
+                                               type: 'select',\r
+                                               label: 'Align',\r
+                                               items: [\r
+                                                       [ editor.lang.common.notSet, '' ],\r
+                                                       [ editor.lang.common.alignLeft, 'left' ],\r
+                                                       [ editor.lang.common.alignRight, 'right' ],\r
+                                                       [ editor.lang.common.alignCenter, 'center' ]\r
+                                               ],\r
+                                               // When setting up this field, set its value to the "align" value from widget data.\r
+                                               // Note: Align values used in the widget need to be the same as those defined in the "items" array above.\r
+                                               setup: function( widget ) {\r
+                                                       this.setValue( widget.data.align );\r
+                                               },\r
+                                               // When committing (saving) this field, set its value to the widget data.\r
+                                               commit: function( widget ) {\r
+                                                       widget.setData( 'align', this.getValue() );\r
+                                               }\r
+                                       },\r
+                                       {\r
+                                               id: 'width',\r
+                                               type: 'text',\r
+                                               label: 'Width',\r
+                                               width: '50px',\r
+                                               setup: function( widget ) {\r
+                                                       this.setValue( widget.data.width );\r
+                                               },\r
+                                               commit: function( widget ) {\r
+                                                       widget.setData( 'width', this.getValue() );\r
+                                               }\r
+                                       }\r
+                               ]\r
+                       }\r
+               ]\r
+       };\r
+} );\r
diff --git a/sources/plugins/widget/dev/assets/simplebox/icons/simplebox.png b/sources/plugins/widget/dev/assets/simplebox/icons/simplebox.png
new file mode 100644 (file)
index 0000000..6a5e313
Binary files /dev/null and b/sources/plugins/widget/dev/assets/simplebox/icons/simplebox.png differ
diff --git a/sources/plugins/widget/dev/assets/simplebox/plugin.js b/sources/plugins/widget/dev/assets/simplebox/plugin.js
new file mode 100644 (file)
index 0000000..4c22d0d
--- /dev/null
@@ -0,0 +1,114 @@
+'use strict';\r
+\r
+// Register the plugin within the editor.\r
+CKEDITOR.plugins.add( 'simplebox', {\r
+       // This plugin requires the Widgets System defined in the 'widget' plugin.\r
+       requires: 'widget,dialog',\r
+\r
+       // Register the icon used for the toolbar button. It must be the same\r
+       // as the name of the widget.\r
+       icons: 'simplebox',\r
+\r
+       // The plugin initialization logic goes inside this method.\r
+       init: function( editor ) {\r
+               // Register the editing dialog.\r
+               CKEDITOR.dialog.add( 'simplebox', this.path + 'dialogs/simplebox.js' );\r
+\r
+               // Register the simplebox widget.\r
+               editor.widgets.add( 'simplebox', {\r
+                       // Allow all HTML elements, classes, and styles that this widget requires.\r
+                       // Read more about the Advanced Content Filter here:\r
+                       // * http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter\r
+                       // * http://docs.ckeditor.com/#!/guide/plugin_sdk_integration_with_acf\r
+                       allowedContent:\r
+                               'div(!simplebox,align-left,align-right,align-center){width};' +\r
+                               'div(!simplebox-content); h2(!simplebox-title)',\r
+\r
+                       // Minimum HTML which is required by this widget to work.\r
+                       requiredContent: 'div(simplebox)',\r
+\r
+                       // Define two nested editable areas.\r
+                       editables: {\r
+                               title: {\r
+                                       // Define CSS selector used for finding the element inside widget element.\r
+                                       selector: '.simplebox-title',\r
+                                       // Define content allowed in this nested editable. Its content will be\r
+                                       // filtered accordingly and the toolbar will be adjusted when this editable\r
+                                       // is focused.\r
+                                       allowedContent: 'br strong em'\r
+                               },\r
+                               content: {\r
+                                       selector: '.simplebox-content'\r
+                               }\r
+                       },\r
+\r
+                       // Define the template of a new Simple Box widget.\r
+                       // The template will be used when creating new instances of the Simple Box widget.\r
+                       template:\r
+                               '<div class="simplebox">' +\r
+                                       '<h2 class="simplebox-title">Title</h2>' +\r
+                                       '<div class="simplebox-content"><p>Content...</p></div>' +\r
+                               '</div>',\r
+\r
+                       // Define the label for a widget toolbar button which will be automatically\r
+                       // created by the Widgets System. This button will insert a new widget instance\r
+                       // created from the template defined above, or will edit selected widget\r
+                       // (see second part of this tutorial to learn about editing widgets).\r
+                       //\r
+                       // Note: In order to be able to translate your widget you should use the\r
+                       // editor.lang.simplebox.* property. A string was used directly here to simplify this tutorial.\r
+                       button: 'Create a simple box',\r
+\r
+                       // Set the widget dialog window name. This enables the automatic widget-dialog binding.\r
+                       // This dialog window will be opened when creating a new widget or editing an existing one.\r
+                       dialog: 'simplebox',\r
+\r
+                       // Check the elements that need to be converted to widgets.\r
+                       //\r
+                       // Note: The "element" argument is an instance of http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element\r
+                       // so it is not a real DOM element yet. This is caused by the fact that upcasting is performed\r
+                       // during data processing which is done on DOM represented by JavaScript objects.\r
+                       upcast: function( element ) {\r
+                               // Return "true" (that element needs to converted to a Simple Box widget)\r
+                               // for all <div> elements with a "simplebox" class.\r
+                               return element.name == 'div' && element.hasClass( 'simplebox' );\r
+                       },\r
+\r
+                       // When a widget is being initialized, we need to read the data ("align" and "width")\r
+                       // from DOM and set it by using the widget.setData() method.\r
+                       // More code which needs to be executed when DOM is available may go here.\r
+                       init: function() {\r
+                               var width = this.element.getStyle( 'width' );\r
+                               if ( width )\r
+                                       this.setData( 'width', width );\r
+\r
+                               if ( this.element.hasClass( 'align-left' ) )\r
+                                       this.setData( 'align', 'left' );\r
+                               if ( this.element.hasClass( 'align-right' ) )\r
+                                       this.setData( 'align', 'right' );\r
+                               if ( this.element.hasClass( 'align-center' ) )\r
+                                       this.setData( 'align', 'center' );\r
+                       },\r
+\r
+                       // Listen on the widget#data event which is fired every time the widget data changes\r
+                       // and updates the widget's view.\r
+                       // Data may be changed by using the widget.setData() method, which we use in the\r
+                       // Simple Box dialog window.\r
+                       data: function() {\r
+                               // Check whether "width" widget data is set and remove or set "width" CSS style.\r
+                               // The style is set on widget main element (div.simplebox).\r
+                               if ( !this.data.width )\r
+                                       this.element.removeStyle( 'width' );\r
+                               else\r
+                                       this.element.setStyle( 'width', this.data.width );\r
+\r
+                               // Brutally remove all align classes and set a new one if "align" widget data is set.\r
+                               this.element.removeClass( 'align-left' );\r
+                               this.element.removeClass( 'align-right' );\r
+                               this.element.removeClass( 'align-center' );\r
+                               if ( this.data.align )\r
+                                       this.element.addClass( 'align-' + this.data.align );\r
+                       }\r
+               } );\r
+       }\r
+} );\r
diff --git a/sources/plugins/widget/dev/console.js b/sources/plugins/widget/dev/console.js
new file mode 100644 (file)
index 0000000..78db0d0
--- /dev/null
@@ -0,0 +1,131 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/* global CKCONSOLE */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+\r
+       CKCONSOLE.add( 'widget', {\r
+               panels: [\r
+                       {\r
+                               type: 'box',\r
+                               content: '<ul class="ckconsole_list ckconsole_value" data-value="instances"></ul>',\r
+\r
+                               refresh: function( editor ) {\r
+                                       var instances = obj2Array( editor.widgets.instances );\r
+\r
+                                       return {\r
+                                               header: 'Instances (' + instances.length + ')',\r
+                                               instances: generateInstancesList( instances )\r
+                                       };\r
+                               },\r
+\r
+                               refreshOn: function( editor, refresh ) {\r
+                                       editor.widgets.on( 'instanceCreated', function( evt ) {\r
+                                               refresh();\r
+\r
+                                               evt.data.on( 'data', refresh );\r
+                                       } );\r
+\r
+                                       editor.widgets.on( 'instanceDestroyed', refresh );\r
+                               }\r
+                       },\r
+\r
+                       {\r
+                               type: 'box',\r
+                               content:\r
+                                       '<ul class="ckconsole_list">' +\r
+                                               '<li>focused: <span class="ckconsole_value" data-value="focused"></span></li>' +\r
+                                               '<li>selected: <span class="ckconsole_value" data-value="selected"></span></li>' +\r
+                                       '</ul>',\r
+\r
+                               refresh: function( editor ) {\r
+                                       var focused = editor.widgets.focused,\r
+                                               selected = editor.widgets.selected,\r
+                                               selectedIds = [];\r
+\r
+                                       for ( var i = 0; i < selected.length; ++i )\r
+                                               selectedIds.push( selected[ i ].id );\r
+\r
+                                       return {\r
+                                               header: 'Focus &amp; selection',\r
+                                               focused: focused ? 'id: ' + focused.id : '-',\r
+                                               selected: selectedIds.length ? 'id: ' + selectedIds.join( ', id: ' ) : '-'\r
+                                       };\r
+                               },\r
+\r
+                               refreshOn: function( editor, refresh ) {\r
+                                       editor.on( 'selectionCheck', refresh, null, null, 999 );\r
+                               }\r
+                       },\r
+\r
+                       {\r
+                               type: 'log',\r
+\r
+                               on: function( editor, log, logFn ) {\r
+                                       // Add all listeners with high priorities to log\r
+                                       // messages in the correct order when one event depends on another.\r
+                                       // E.g. selectionChange triggers widget selection - if this listener\r
+                                       // for selectionChange will be executed later than that one, then order\r
+                                       // will be incorrect.\r
+\r
+                                       editor.on( 'selectionChange', function( evt ) {\r
+                                               var msg = 'selection change',\r
+                                                       sel = evt.data.selection,\r
+                                                       el = sel.getSelectedElement(),\r
+                                                       widget;\r
+\r
+                                               if ( el && ( widget = editor.widgets.getByElement( el, true ) ) )\r
+                                                       msg += ' (id: ' + widget.id + ')';\r
+\r
+                                               log( msg );\r
+                                       }, null, null, 1 );\r
+\r
+                                       editor.widgets.on( 'instanceDestroyed', function( evt ) {\r
+                                               log( 'instance destroyed (id: ' + evt.data.id + ')' );\r
+                                       }, null, null, 1 );\r
+\r
+                                       editor.widgets.on( 'instanceCreated', function( evt ) {\r
+                                               log( 'instance created (id: ' + evt.data.id + ')' );\r
+                                       }, null, null, 1 );\r
+\r
+                                       editor.widgets.on( 'widgetFocused', function( evt ) {\r
+                                               log( 'widget focused (id: ' + evt.data.widget.id + ')' );\r
+                                       }, null, null, 1 );\r
+\r
+                                       editor.widgets.on( 'widgetBlurred', function( evt ) {\r
+                                               log( 'widget blurred (id: ' + evt.data.widget.id + ')' );\r
+                                       }, null, null, 1 );\r
+\r
+                                       editor.widgets.on( 'checkWidgets', logFn( 'checking widgets' ), null, null, 1 );\r
+                                       editor.widgets.on( 'checkSelection', logFn( 'checking selection' ), null, null, 1 );\r
+                               }\r
+                       }\r
+               ]\r
+       } );\r
+\r
+       function generateInstancesList( instances ) {\r
+               var html = '',\r
+                       instance;\r
+\r
+               for ( var i = 0; i < instances.length; ++i ) {\r
+                       instance = instances[ i ];\r
+                       html += itemTpl.output( { id: instance.id, name: instance.name, data: JSON.stringify( instance.data ) } );\r
+               }\r
+               return html;\r
+       }\r
+\r
+       function obj2Array( obj ) {\r
+               var arr = [];\r
+               for ( var id in obj )\r
+                       arr.push( obj[ id ] );\r
+\r
+               return arr;\r
+       }\r
+\r
+       var itemTpl = new CKEDITOR.template( '<li>id: <code>{id}</code>, name: <code>{name}</code>, data: <code>{data}</code></li>' );\r
+} )();\r
diff --git a/sources/plugins/widget/dev/nestedwidgets.html b/sources/plugins/widget/dev/nestedwidgets.html
new file mode 100644 (file)
index 0000000..0686d2c
--- /dev/null
@@ -0,0 +1,134 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Nested widgets &mdash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <script src="../../../dev/console/console.js"></script>\r
+       <script src="../../../dev/console/focusconsole.js"></script>\r
+       <script src="console.js"></script>\r
+       <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+       <link rel="stylesheet" href="../../../contents.css">\r
+       <link rel="stylesheet" href="assets/simplebox/contents.css">\r
+</head>\r
+<body>\r
+       <h1 class="samples">Nested widgets</h1>\r
+\r
+       <h2>Classic (iframe-based) Sample</h2>\r
+       <textarea cols="80" id="editor1" name="editor1" rows="10">\r
+               <h1>Simple Box Sample</h1>\r
+\r
+               <div class="simplebox align-right" style="width: 60%">\r
+                       <h2 class="simplebox-title">Title</h2>\r
+                       <div class="simplebox-content">\r
+                               <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+                               <figure class="image" style="float: right">\r
+                                       <img alt="The Eagle" src="assets/sample.jpg" width="150" />\r
+                                       <figcaption>The Eagle in lunar orbit</figcaption>\r
+                               </figure>\r
+\r
+                               <ul>\r
+                                       <li>Foo!</li>\r
+                                       <li>Bar!</li>\r
+                               </ul>\r
+\r
+                               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+                       </div>\r
+               </div>\r
+\r
+               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+               <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p>\r
+\r
+               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+               <div class="simplebox align-center" style="width: 750px">\r
+                       <h2 class="simplebox-title">Title</h2>\r
+                       <div class="simplebox-content">\r
+                               <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+                               <ul>\r
+                                       <li>Foo!</li>\r
+                                       <li>Bar!</li>\r
+                               </ul>\r
+                       </div>\r
+               </div>\r
+\r
+               <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p>\r
+       </textarea>\r
+\r
+       <h2>Inline Sample</h2>\r
+       <div id="editor2" contenteditable="true">\r
+               <h1>Simple Box Sample</h1>\r
+\r
+               <div class="simplebox align-right" style="width: 60%">\r
+                       <h2 class="simplebox-title">Title</h2>\r
+                       <div class="simplebox-content">\r
+                               <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+                               <figure class="image" style="float: right">\r
+                                       <img alt="The Eagle" src="assets/sample.jpg" width="150" />\r
+                                       <figcaption>The Eagle in lunar orbit</figcaption>\r
+                               </figure>\r
+\r
+                               <ul>\r
+                                       <li>Foo!</li>\r
+                                       <li>Bar!</li>\r
+                               </ul>\r
+\r
+                               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+                       </div>\r
+               </div>\r
+\r
+               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+               <p>Pellentesque vitae eleifend nisl, non accumsan tellus. Maecenas nec libero non tellus tincidunt mollis porttitor sed arcu. Donec ultricies nulla vitae eros lacinia, vel congue sem auctor. Vivamus convallis, urna ac tincidunt malesuada, lectus erat convallis metus, a hendrerit massa augue accumsan magna. Nulla mattis tellus elit, nec congue magna scelerisque eget. Aliquam posuere nisi augue, posuere sodales nisi iaculis eu. Donec fermentum urna id nibh sagittis fermentum sit amet sed enim. Aliquam neque elit, pretium elementum nunc a, faucibus accumsan lorem. Etiam pulvinar odio et hendrerit tincidunt. Suspendisse tempus eros lacus, in convallis velit mollis ut. Aenean congue, justo eleifend ultricies malesuada, nunc nunc molestie mauris, eget placerat libero eros vel nisi. Quisque diam arcu, mollis ac laoreet vitae, varius et sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis in vehicula sapien. Nunc feugiat porta elit nec volutpat.</p>\r
+\r
+               <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet orci ut nisi adipiscing ultrices. Sed pellentesque iaculis malesuada. Pellentesque scelerisque, purus non porta dictum, neque urna bibendum dolor, eget tristique ipsum metus fringilla dolor. Nullam sed accumsan sapien. Vestibulum in placerat magna. Sed justo lacus, volutpat rhoncus odio luctus, ornare adipiscing mauris. Vivamus erat sem, egestas et lectus eget, varius cursus odio. Duis posuere lacus sit amet urna bibendum, id iaculis eros ultrices. Vestibulum a ultrices ante.</p>\r
+\r
+               <div class="simplebox align-center" style="width: 750px">\r
+                       <h2 class="simplebox-title">Title</h2>\r
+                       <div class="simplebox-content">\r
+                               <p><img alt="The Eagle" src="assets/sample.jpg" width="150" style="float: left" /><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+                               <ul>\r
+                                       <li>Foo!</li>\r
+                                       <li>Bar!</li>\r
+                               </ul>\r
+                       </div>\r
+               </div>\r
+\r
+               <p>Ut eget ipsum a sapien porta ultrices. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus mi lacus, pharetra eu bibendum blandit, tristique sit amet leo. Integer eu nulla nec magna vulputate blandit. Praesent mattis quis ante eget adipiscing. Nulla vel tempus risus, in placerat velit. Mauris sed nibh at elit posuere laoreet. Morbi non sapien sed nunc fringilla imperdiet.</p>\r
+       </div>\r
+\r
+       <script>\r
+               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+                       CKEDITOR.tools.enableHtml5Elements( document );\r
+\r
+               CKEDITOR.plugins.addExternal( 'simplebox', 'plugins/widget/dev/assets/simplebox/' );\r
+\r
+               CKEDITOR.replace( 'editor1', {\r
+                       extraPlugins: 'simplebox,placeholder,image2',\r
+                       removePlugins: 'forms,bidi',\r
+                       contentsCss: [ '../../../contents.css', 'assets/simplebox/contents.css' ],\r
+                       height: 500\r
+               } );\r
+\r
+               CKEDITOR.inline( 'editor2', {\r
+                       extraPlugins: 'simplebox,placeholder,image2',\r
+                       removePlugins: 'forms,bidi'\r
+               } );\r
+\r
+               CKCONSOLE.create( 'widget', { editor: 'editor1' } );\r
+               CKCONSOLE.create( 'focus', { editor: 'editor1' } );\r
+               CKCONSOLE.create( 'widget', { editor: 'editor2', folded: true } );\r
+               CKCONSOLE.create( 'focus', { editor: 'editor2', folded: true } );\r
+\r
+       </script>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/widget/dev/widgetstyles.html b/sources/plugins/widget/dev/widgetstyles.html
new file mode 100644 (file)
index 0000000..8e54b8d
--- /dev/null
@@ -0,0 +1,144 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>Applying styles to widgets &mdash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <link rel="stylesheet" href="../../../samples/old/sample.css">\r
+       <link rel="stylesheet" href="../../../contents.css">\r
+       <link rel="stylesheet" href="assets/contents.css">\r
+</head>\r
+<body>\r
+       <h1 class="samples">Applying styles to widgets</h1>\r
+\r
+       <h2>Classic (iframe-based) Sample</h2>\r
+       <textarea cols="80" id="editor1" name="editor1" rows="10">\r
+               <h1>Apollo 11</h1>\r
+\r
+               <figure class="image" style="float: right">\r
+                       <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" />\r
+                       <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+               </figure>\r
+\r
+               <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+               <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+               <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+               <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+               <blockquote>\r
+               <p>One small step for [a] man, one giant leap for mankind.</p>\r
+               </blockquote>\r
+\r
+               <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p>\r
+\r
+               <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+               <blockquote>\r
+               <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+               </blockquote>\r
+\r
+               <figure class="image" style="float: right">\r
+                       <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" />\r
+                       <figcaption>The Eagle in lunar orbit</figcaption>\r
+               </figure>\r
+\r
+               <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+               <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+               <ol>\r
+                       <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+                       <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+                       <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+               </ol>\r
+\r
+               <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+       </textarea>\r
+\r
+       <h2>Inline Sample</h2>\r
+       <div id="editor2" contenteditable="true">\r
+               <h1>Apollo 11</h1>\r
+\r
+               <figure class="image" style="float: right">\r
+                       <img alt="Saturn V" src="../../../samples/assets/sample.jpg" width="150" />\r
+                       <figcaption>Roll out of Saturn V on launch pad</figcaption>\r
+               </figure>\r
+\r
+               <p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on [[July 20, 1969, at 20:18 UTC]]. Armstrong became the first to step onto the lunar surface 6 hours later on [[July 21 at 02:56 UTC]].</p>\r
+\r
+               <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p>\r
+\r
+               <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>\r
+\r
+               <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p>\r
+\r
+               <blockquote>\r
+               <p>One small step for [a] man, one giant leap for mankind.</p>\r
+               </blockquote>\r
+\r
+               <p><span class="math-tex">\( \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \)</span></p>\r
+\r
+               <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p>\r
+\r
+               <blockquote>\r
+               <p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p>\r
+               </blockquote>\r
+\r
+               <figure class="image" style="float: right">\r
+                       <img alt="The Eagle" src="../../../samples/assets/sample.jpg" width="150" />\r
+                       <figcaption>The Eagle in lunar orbit</figcaption>\r
+               </figure>\r
+\r
+               <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>\r
+\r
+               <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p>\r
+\r
+               <ol>\r
+                       <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>\r
+                       <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>\r
+                       <li><strong>Lunar Module</strong> for landing on the Moon.</li>\r
+               </ol>\r
+\r
+               <p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>\r
+       </div>\r
+\r
+       <script>\r
+               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )\r
+                       CKEDITOR.tools.enableHtml5Elements( document );\r
+\r
+               CKEDITOR.disableAutoInline = true;\r
+\r
+               var stylesSet = [\r
+                       { name: 'Medium border', type: 'widget', widget: 'image', attributes: { 'class': 'mediumBorder' } },\r
+                       { name: 'Thick border', type: 'widget', widget: 'image', attributes: { 'class': 'thickBorder' } },\r
+                       { name: 'So important', type: 'widget', widget: 'image', attributes: { 'class': 'important soMuch' } },\r
+\r
+                       { name: 'Red marker', type: 'widget', widget: 'placeholder', attributes: { 'class': 'redMarker' } },\r
+                       { name: 'Invisible Placeholder', type: 'widget', widget: 'placeholder', attributes: { 'class': 'invisible' } },\r
+\r
+                       { name: 'Invisible Mathjax', type: 'widget', widget: 'mathjax', attributes: { 'class': 'invisible' } }\r
+               ];\r
+\r
+               CKEDITOR.replace( 'editor1', {\r
+                       extraPlugins: 'placeholder,image2,mathjax',\r
+                       contentsCss: [ '../../../contents.css', 'assets/contents.css' ],\r
+                       stylesSet: stylesSet,\r
+                       height: 300\r
+               } );\r
+\r
+               CKEDITOR.inline( 'editor2', {\r
+                       extraPlugins: 'placeholder,image2,mathjax',\r
+                       stylesSet: stylesSet,\r
+                       height: 300\r
+               } );\r
+\r
+       </script>\r
+</body>\r
+</html>\r
diff --git a/sources/plugins/widget/images/handle.png b/sources/plugins/widget/images/handle.png
new file mode 100644 (file)
index 0000000..ba8cda5
Binary files /dev/null and b/sources/plugins/widget/images/handle.png differ
diff --git a/sources/plugins/widget/lang/af.js b/sources/plugins/widget/lang/af.js
new file mode 100644 (file)
index 0000000..e37c598
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'af', {\r
+       'move': 'Klik en trek on te beweeg',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/ar.js b/sources/plugins/widget/lang/ar.js
new file mode 100644 (file)
index 0000000..0a4f8eb
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ar', {\r
+       'move': 'إضغط و إسحب للتحريك',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/az.js b/sources/plugins/widget/lang/az.js
new file mode 100644 (file)
index 0000000..24ddaf3
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'az', {\r
+       'move': 'Tıklayın və aparın',\r
+       'label': '%1 vidjet'\r
+} );\r
diff --git a/sources/plugins/widget/lang/bg.js b/sources/plugins/widget/lang/bg.js
new file mode 100644 (file)
index 0000000..9b51458
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'bg', {\r
+       'move': 'Кликни и влачи, за да преместиш',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/ca.js b/sources/plugins/widget/lang/ca.js
new file mode 100644 (file)
index 0000000..f46a4f8
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ca', {\r
+       'move': 'Clicar i arrossegar per moure',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/cs.js b/sources/plugins/widget/lang/cs.js
new file mode 100644 (file)
index 0000000..5d9590b
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'cs', {\r
+       'move': 'Klepněte a táhněte pro přesunutí',\r
+       'label': 'Ovládací prvek %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/cy.js b/sources/plugins/widget/lang/cy.js
new file mode 100644 (file)
index 0000000..29dc110
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'cy', {\r
+       'move': 'Clcio a llusgo i symud',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/da.js b/sources/plugins/widget/lang/da.js
new file mode 100644 (file)
index 0000000..8dfe785
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'da', {\r
+       'move': 'Klik og træk for at flytte',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/de-ch.js b/sources/plugins/widget/lang/de-ch.js
new file mode 100644 (file)
index 0000000..a95febb
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'de-ch', {\r
+       'move': 'Zum Verschieben anwählen und ziehen',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/de.js b/sources/plugins/widget/lang/de.js
new file mode 100644 (file)
index 0000000..838ad89
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'de', {\r
+       'move': 'Zum Verschieben anwählen und ziehen',\r
+       'label': '%1 Steuerelement'\r
+} );\r
diff --git a/sources/plugins/widget/lang/el.js b/sources/plugins/widget/lang/el.js
new file mode 100644 (file)
index 0000000..863604a
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'el', {\r
+       'move': 'Κάνετε κλικ και σύρετε το ποντίκι για να μετακινήστε',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/en-gb.js b/sources/plugins/widget/lang/en-gb.js
new file mode 100644 (file)
index 0000000..ed09606
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'en-gb', {\r
+       'move': 'Click and drag to move',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/en.js b/sources/plugins/widget/lang/en.js
new file mode 100644 (file)
index 0000000..5967f4d
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'en', {\r
+       'move': 'Click and drag to move',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/eo.js b/sources/plugins/widget/lang/eo.js
new file mode 100644 (file)
index 0000000..381511a
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'eo', {\r
+       'move': 'klaki kaj treni por movi',\r
+       'label': '%1 fenestraĵo'\r
+} );\r
diff --git a/sources/plugins/widget/lang/es-mx.js b/sources/plugins/widget/lang/es-mx.js
new file mode 100644 (file)
index 0000000..279ea3e
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'es-mx', {\r
+       'move': 'Presiona y arrastra para mover',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/es.js b/sources/plugins/widget/lang/es.js
new file mode 100644 (file)
index 0000000..d8deb2c
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'es', {\r
+       'move': 'Dar clic y arrastrar para mover',\r
+       'label': 'reproductor %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/eu.js b/sources/plugins/widget/lang/eu.js
new file mode 100644 (file)
index 0000000..e128dfe
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'eu', {\r
+       'move': 'Klikatu eta arrastatu lekuz aldatzeko',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/fa.js b/sources/plugins/widget/lang/fa.js
new file mode 100644 (file)
index 0000000..57ea31f
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fa', {\r
+       'move': 'کلیک و کشیدن برای جابجایی',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/fi.js b/sources/plugins/widget/lang/fi.js
new file mode 100644 (file)
index 0000000..759b2cf
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fi', {\r
+       'move': 'Siirrä klikkaamalla ja raahaamalla',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/fr.js b/sources/plugins/widget/lang/fr.js
new file mode 100644 (file)
index 0000000..9decbf6
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'fr', {\r
+       'move': 'Cliquer et glisser pour déplacer',\r
+       'label': 'Élément %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/gl.js b/sources/plugins/widget/lang/gl.js
new file mode 100644 (file)
index 0000000..32f65d1
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'gl', {\r
+       'move': 'Prema e arrastre para mover',\r
+       'label': 'Trebello %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/he.js b/sources/plugins/widget/lang/he.js
new file mode 100644 (file)
index 0000000..b8dd2cb
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'he', {\r
+       'move': 'לחץ וגרור להזזה',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/hr.js b/sources/plugins/widget/lang/hr.js
new file mode 100644 (file)
index 0000000..6b47d95
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'hr', {\r
+       'move': 'Klikni i povuci za pomicanje',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/hu.js b/sources/plugins/widget/lang/hu.js
new file mode 100644 (file)
index 0000000..a06047f
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'hu', {\r
+       'move': 'Kattints és húzd a mozgatáshoz',\r
+       'label': '%1 modul'\r
+} );\r
diff --git a/sources/plugins/widget/lang/id.js b/sources/plugins/widget/lang/id.js
new file mode 100644 (file)
index 0000000..ef19392
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'id', {\r
+       'move': 'Tekan dan geser untuk memindahkan',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/it.js b/sources/plugins/widget/lang/it.js
new file mode 100644 (file)
index 0000000..59b43f6
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'it', {\r
+       'move': 'Fare clic e trascinare per spostare',\r
+       'label': 'Widget %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/ja.js b/sources/plugins/widget/lang/ja.js
new file mode 100644 (file)
index 0000000..a742718
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ja', {\r
+       'move': 'ドラッグして移動',\r
+       'label': '%1 ウィジェット'\r
+} );\r
diff --git a/sources/plugins/widget/lang/km.js b/sources/plugins/widget/lang/km.js
new file mode 100644 (file)
index 0000000..6c61c73
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'km', {\r
+       'move': 'ចុច​ហើយ​ទាញ​ដើម្បី​ផ្លាស់​ទី',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/ko.js b/sources/plugins/widget/lang/ko.js
new file mode 100644 (file)
index 0000000..03afb95
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ko', {\r
+       'move': '움직이려면 클릭 후 드래그 하세요',\r
+       'label': '%1 위젯'\r
+} );\r
diff --git a/sources/plugins/widget/lang/ku.js b/sources/plugins/widget/lang/ku.js
new file mode 100644 (file)
index 0000000..2af50cb
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ku', {\r
+       'move': 'کرتەبکە و ڕایبکێشە بۆ جوڵاندن',\r
+       'label': '%1 ویجێت'\r
+} );\r
diff --git a/sources/plugins/widget/lang/lv.js b/sources/plugins/widget/lang/lv.js
new file mode 100644 (file)
index 0000000..e5fc3ac
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'lv', {\r
+       'move': 'Klikšķina un velc, lai pārvietotu',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/nb.js b/sources/plugins/widget/lang/nb.js
new file mode 100644 (file)
index 0000000..af46bc9
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'nb', {\r
+       'move': 'Klikk og dra for å flytte',\r
+       'label': 'Widget %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/nl.js b/sources/plugins/widget/lang/nl.js
new file mode 100644 (file)
index 0000000..56b182c
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'nl', {\r
+       'move': 'Klik en sleep om te verplaatsen',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/no.js b/sources/plugins/widget/lang/no.js
new file mode 100644 (file)
index 0000000..b86bd7b
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'no', {\r
+       'move': 'Klikk og dra for å flytte',\r
+       'label': 'Widget %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/oc.js b/sources/plugins/widget/lang/oc.js
new file mode 100644 (file)
index 0000000..10ff842
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'oc', {\r
+       'move': 'Clicar e lisar per desplaçar',\r
+       'label': 'Element %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/pl.js b/sources/plugins/widget/lang/pl.js
new file mode 100644 (file)
index 0000000..2d90df8
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pl', {\r
+       'move': 'Kliknij i przeciągnij, by przenieść.',\r
+       'label': 'Widget %1'\r
+} );\r
diff --git a/sources/plugins/widget/lang/pt-br.js b/sources/plugins/widget/lang/pt-br.js
new file mode 100644 (file)
index 0000000..9ce9be4
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pt-br', {\r
+       'move': 'Click e arraste para mover',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/pt.js b/sources/plugins/widget/lang/pt.js
new file mode 100644 (file)
index 0000000..422ef93
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'pt', {\r
+       'move': 'Clique e arraste para mover',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/ru.js b/sources/plugins/widget/lang/ru.js
new file mode 100644 (file)
index 0000000..d6f36f5
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ru', {\r
+       'move': 'Нажмите и перетащите, чтобы переместить',\r
+       'label': '%1 виджет'\r
+} );\r
diff --git a/sources/plugins/widget/lang/sk.js b/sources/plugins/widget/lang/sk.js
new file mode 100644 (file)
index 0000000..5bf4cc0
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sk', {\r
+       'move': 'Kliknite a potiahnite pre presunutie',\r
+       'label': '%1 widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/sl.js b/sources/plugins/widget/lang/sl.js
new file mode 100644 (file)
index 0000000..96ffd1e
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sl', {\r
+       'move': 'Kliknite in povlecite, da premaknete',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/sq.js b/sources/plugins/widget/lang/sq.js
new file mode 100644 (file)
index 0000000..ad46c7d
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sq', {\r
+       'move': 'Kliko dhe tërhiqe për ta lëvizur',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/sv.js b/sources/plugins/widget/lang/sv.js
new file mode 100644 (file)
index 0000000..7faff37
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'sv', {\r
+       'move': 'Klicka och drag för att flytta',\r
+       'label': '%1-widget'\r
+} );\r
diff --git a/sources/plugins/widget/lang/tr.js b/sources/plugins/widget/lang/tr.js
new file mode 100644 (file)
index 0000000..92fa952
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'tr', {\r
+       'move': 'Taşımak için, tıklayın ve sürükleyin',\r
+       'label': '%1 Grafik Beleşeni'\r
+} );\r
diff --git a/sources/plugins/widget/lang/tt.js b/sources/plugins/widget/lang/tt.js
new file mode 100644 (file)
index 0000000..30fb31a
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'tt', {\r
+       'move': 'Күчереп куер өчен басып шудырыгыз',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/ug.js b/sources/plugins/widget/lang/ug.js
new file mode 100644 (file)
index 0000000..fc216c4
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'ug', {\r
+       'move': 'يۆتكەشتە چېكىپ سۆرەڭ',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/uk.js b/sources/plugins/widget/lang/uk.js
new file mode 100644 (file)
index 0000000..fab6d5d
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'uk', {\r
+       'move': 'Клікніть і потягніть для переміщення',\r
+       'label': '%1 віджет'\r
+} );\r
diff --git a/sources/plugins/widget/lang/vi.js b/sources/plugins/widget/lang/vi.js
new file mode 100644 (file)
index 0000000..2bbe246
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'vi', {\r
+       'move': 'Nhấp chuột và kéo để di chuyển',\r
+       'label': '%1 widget' // MISSING\r
+} );\r
diff --git a/sources/plugins/widget/lang/zh-cn.js b/sources/plugins/widget/lang/zh-cn.js
new file mode 100644 (file)
index 0000000..2381407
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'zh-cn', {\r
+       'move': '点击并拖拽以移动',\r
+       'label': '%1 小部件'\r
+} );\r
diff --git a/sources/plugins/widget/lang/zh.js b/sources/plugins/widget/lang/zh.js
new file mode 100644 (file)
index 0000000..b6e945b
--- /dev/null
@@ -0,0 +1,8 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+CKEDITOR.plugins.setLang( 'widget', 'zh', {\r
+       'move': '拖曳以移動',\r
+       'label': '%1 小工具'\r
+} );\r
diff --git a/sources/plugins/widget/plugin.js b/sources/plugins/widget/plugin.js
new file mode 100644 (file)
index 0000000..2708e09
--- /dev/null
@@ -0,0 +1,4147 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview [Widget](http://ckeditor.com/addon/widget) plugin.\r
+ */\r
+\r
+'use strict';\r
+\r
+( function() {\r
+       var DRAG_HANDLER_SIZE = 15;\r
+\r
+       CKEDITOR.plugins.add( 'widget', {\r
+               // jscs:disable maximumLineLength\r
+               lang: 'af,ar,az,bg,ca,cs,cy,da,de,de-ch,el,en,en-gb,eo,es,es-mx,eu,fa,fi,fr,gl,he,hr,hu,id,it,ja,km,ko,ku,lv,nb,nl,no,oc,pl,pt,pt-br,ru,sk,sl,sq,sv,tr,tt,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%\r
+               // jscs:enable maximumLineLength\r
+               requires: 'lineutils,clipboard,widgetselection',\r
+               onLoad: function() {\r
+                       CKEDITOR.addCss(\r
+                               '.cke_widget_wrapper{' +\r
+                                       'position:relative;' +\r
+                                       'outline:none' +\r
+                               '}' +\r
+                               '.cke_widget_inline{' +\r
+                                       'display:inline-block' +\r
+                               '}' +\r
+                               '.cke_widget_wrapper:hover>.cke_widget_element{' +\r
+                                       'outline:2px solid yellow;' +\r
+                                       'cursor:default' +\r
+                               '}' +\r
+                               '.cke_widget_wrapper:hover .cke_widget_editable{' +\r
+                                       'outline:2px solid yellow' +\r
+                               '}' +\r
+                               '.cke_widget_wrapper.cke_widget_focused>.cke_widget_element,' +\r
+                               // We need higher specificity than hover style.\r
+                               '.cke_widget_wrapper .cke_widget_editable.cke_widget_editable_focused{' +\r
+                                       'outline:2px solid #ace' +\r
+                               '}' +\r
+                               '.cke_widget_editable{' +\r
+                                       'cursor:text' +\r
+                               '}' +\r
+                               '.cke_widget_drag_handler_container{' +\r
+                                       'position:absolute;' +\r
+                                       'width:' + DRAG_HANDLER_SIZE + 'px;' +\r
+                                       'height:0;' +\r
+                                       // Initially drag handler should not be visible, until its position will be\r
+                                       // calculated (http://dev.ckeditor.com/ticket/11177).\r
+                                       // We need to hide unpositined handlers, so they don't extend\r
+                                       // widget's outline far to the left (http://dev.ckeditor.com/ticket/12024).\r
+                                       'display:none;' +\r
+                                       'opacity:0.75;' +\r
+                                       'transition:height 0s 0.2s;' + // Delay hiding drag handler.\r
+                                       // Prevent drag handler from being misplaced (http://dev.ckeditor.com/ticket/11198).\r
+                                       'line-height:0' +\r
+                               '}' +\r
+                               '.cke_widget_wrapper:hover>.cke_widget_drag_handler_container{' +\r
+                                       'height:' + DRAG_HANDLER_SIZE + 'px;' +\r
+                                       'transition:none' +\r
+                               '}' +\r
+                               '.cke_widget_drag_handler_container:hover{' +\r
+                                       'opacity:1' +\r
+                               '}' +\r
+                               'img.cke_widget_drag_handler{' +\r
+                                       'cursor:move;' +\r
+                                       'width:' + DRAG_HANDLER_SIZE + 'px;' +\r
+                                       'height:' + DRAG_HANDLER_SIZE + 'px;' +\r
+                                       'display:inline-block' +\r
+                               '}' +\r
+                               '.cke_widget_mask{' +\r
+                                       'position:absolute;' +\r
+                                       'top:0;' +\r
+                                       'left:0;' +\r
+                                       'width:100%;' +\r
+                                       'height:100%;' +\r
+                                       'display:block' +\r
+                               '}' +\r
+                               '.cke_editable.cke_widget_dragging, .cke_editable.cke_widget_dragging *{' +\r
+                                       'cursor:move !important' +\r
+                               '}'\r
+                       );\r
+               },\r
+\r
+               beforeInit: function( editor ) {\r
+                       /**\r
+                        * An instance of widget repository. It contains all\r
+                        * {@link CKEDITOR.plugins.widget.repository#registered registered widget definitions} and\r
+                        * {@link CKEDITOR.plugins.widget.repository#instances initialized instances}.\r
+                        *\r
+                        *              editor.widgets.add( 'someName', {\r
+                        *                      // Widget definition...\r
+                        *              } );\r
+                        *\r
+                        *              editor.widgets.registered.someName; // -> Widget definition\r
+                        *\r
+                        * @since 4.3\r
+                        * @readonly\r
+                        * @property {CKEDITOR.plugins.widget.repository} widgets\r
+                        * @member CKEDITOR.editor\r
+                        */\r
+                       editor.widgets = new Repository( editor );\r
+               },\r
+\r
+               afterInit: function( editor ) {\r
+                       addWidgetButtons( editor );\r
+                       setupContextMenu( editor );\r
+               }\r
+       } );\r
+\r
+       /**\r
+        * Widget repository. It keeps track of all {@link #registered registered widget definitions} and\r
+        * {@link #instances initialized instances}. An instance of the repository is available under\r
+        * the {@link CKEDITOR.editor#widgets} property.\r
+        *\r
+        * @class CKEDITOR.plugins.widget.repository\r
+        * @mixins CKEDITOR.event\r
+        * @constructor Creates a widget repository instance. Note that the widget plugin automatically\r
+        * creates a repository instance which is available under the {@link CKEDITOR.editor#widgets} property.\r
+        * @param {CKEDITOR.editor} editor The editor instance for which the repository will be created.\r
+        */\r
+       function Repository( editor ) {\r
+               /**\r
+                * The editor instance for which this repository was created.\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.editor} editor\r
+                */\r
+               this.editor = editor;\r
+\r
+               /**\r
+                * A hash of registered widget definitions (definition name => {@link CKEDITOR.plugins.widget.definition}).\r
+                *\r
+                * To register a definition use the {@link #add} method.\r
+                *\r
+                * @readonly\r
+                */\r
+               this.registered = {};\r
+\r
+               /**\r
+                * An object containing initialized widget instances (widget id => {@link CKEDITOR.plugins.widget}).\r
+                *\r
+                * @readonly\r
+                */\r
+               this.instances = {};\r
+\r
+               /**\r
+                * An array of selected widget instances.\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.plugins.widget[]} selected\r
+                */\r
+               this.selected = [];\r
+\r
+               /**\r
+                * The focused widget instance. See also {@link CKEDITOR.plugins.widget#event-focus}\r
+                * and {@link CKEDITOR.plugins.widget#event-blur} events.\r
+                *\r
+                *              editor.on( 'selectionChange', function() {\r
+                *                      if ( editor.widgets.focused ) {\r
+                *                              // Do something when a widget is focused...\r
+                *                      }\r
+                *              } );\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.plugins.widget} focused\r
+                */\r
+               this.focused = null;\r
+\r
+               /**\r
+                * The widget instance that contains the nested editable which is currently focused.\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.plugins.widget} widgetHoldingFocusedEditable\r
+                */\r
+               this.widgetHoldingFocusedEditable = null;\r
+\r
+               this._ = {\r
+                       nextId: 0,\r
+                       upcasts: [],\r
+                       upcastCallbacks: [],\r
+                       filters: {}\r
+               };\r
+\r
+               setupWidgetsLifecycle( this );\r
+               setupSelectionObserver( this );\r
+               setupMouseObserver( this );\r
+               setupKeyboardObserver( this );\r
+               setupDragAndDrop( this );\r
+               setupNativeCutAndCopy( this );\r
+       }\r
+\r
+       Repository.prototype = {\r
+               /**\r
+                * Minimum interval between selection checks.\r
+                *\r
+                * @private\r
+                */\r
+               MIN_SELECTION_CHECK_INTERVAL: 500,\r
+\r
+               /**\r
+                * Adds a widget definition to the repository. Fires the {@link CKEDITOR.editor#widgetDefinition} event\r
+                * which allows to modify the widget definition which is going to be registered.\r
+                *\r
+                * @param {String} name The name of the widget definition.\r
+                * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget definition.\r
+                * @returns {CKEDITOR.plugins.widget.definition}\r
+                */\r
+               add: function( name, widgetDef ) {\r
+                       // Create prototyped copy of original widget definition, so we won't modify it.\r
+                       widgetDef = CKEDITOR.tools.prototypedCopy( widgetDef );\r
+                       widgetDef.name = name;\r
+\r
+                       widgetDef._ = widgetDef._ || {};\r
+\r
+                       this.editor.fire( 'widgetDefinition', widgetDef );\r
+\r
+                       if ( widgetDef.template )\r
+                               widgetDef.template = new CKEDITOR.template( widgetDef.template );\r
+\r
+                       addWidgetCommand( this.editor, widgetDef );\r
+                       addWidgetProcessors( this, widgetDef );\r
+\r
+                       this.registered[ name ] = widgetDef;\r
+\r
+                       return widgetDef;\r
+               },\r
+\r
+               /**\r
+                * Adds a callback for element upcasting. Each callback will be executed\r
+                * for every element which is later tested by upcast methods. If a callback\r
+                * returns `false`, the element will not be upcasted.\r
+                *\r
+                *              // Images with the "banner" class will not be upcasted (e.g. to the image widget).\r
+                *              editor.widgets.addUpcastCallback( function( element ) {\r
+                *                      if ( element.name == 'img' && element.hasClass( 'banner' ) )\r
+                *                              return false;\r
+                *              } );\r
+                *\r
+                * @param {Function} callback\r
+                * @param {CKEDITOR.htmlParser.element} callback.element\r
+                */\r
+               addUpcastCallback: function( callback ) {\r
+                       this._.upcastCallbacks.push( callback );\r
+               },\r
+\r
+               /**\r
+                * Checks the selection to update widget states (selection and focus).\r
+                *\r
+                * This method is triggered by the {@link #event-checkSelection} event.\r
+                */\r
+               checkSelection: function() {\r
+                       var sel = this.editor.getSelection(),\r
+                               selectedElement = sel.getSelectedElement(),\r
+                               updater = stateUpdater( this ),\r
+                               widget;\r
+\r
+                       // Widget is focused so commit and finish checking.\r
+                       if ( selectedElement && ( widget = this.getByElement( selectedElement, true ) ) )\r
+                               return updater.focus( widget ).select( widget ).commit();\r
+\r
+                       var range = sel.getRanges()[ 0 ];\r
+\r
+                       // No ranges or collapsed range mean that nothing is selected, so commit and finish checking.\r
+                       if ( !range || range.collapsed )\r
+                               return updater.commit();\r
+\r
+                       // Range is not empty, so create walker checking for wrappers.\r
+                       var walker = new CKEDITOR.dom.walker( range ),\r
+                               wrapper;\r
+\r
+                       walker.evaluator = Widget.isDomWidgetWrapper;\r
+\r
+                       while ( ( wrapper = walker.next() ) )\r
+                               updater.select( this.getByElement( wrapper ) );\r
+\r
+                       updater.commit();\r
+               },\r
+\r
+               /**\r
+                * Checks if all widget instances are still present in the DOM.\r
+                * Destroys those instances that are not present.\r
+                * Reinitializes widgets on widget wrappers for which widget instances\r
+                * cannot be found. Takes nested widgets into account, too.\r
+                *\r
+                * This method triggers the {@link #event-checkWidgets} event whose listeners\r
+                * can cancel the method's execution or modify its options.\r
+                *\r
+                * @param [options] The options object.\r
+                * @param {Boolean} [options.initOnlyNew] Initializes widgets only on newly wrapped\r
+                * widget elements (those which still have the `cke_widget_new` class). When this option is\r
+                * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure)\r
+                * will not be reinitialized. This makes the check faster.\r
+                * @param {Boolean} [options.focusInited] If only one widget is initialized by\r
+                * the method, it will be focused.\r
+                */\r
+               checkWidgets: function( options ) {\r
+                       this.fire( 'checkWidgets', CKEDITOR.tools.copy( options || {} ) );\r
+               },\r
+\r
+               /**\r
+                * Removes the widget from the editor and moves the selection to the closest\r
+                * editable position if the widget was focused before.\r
+                *\r
+                * @param {CKEDITOR.plugins.widget} widget The widget instance to be deleted.\r
+                */\r
+               del: function( widget ) {\r
+                       if ( this.focused === widget ) {\r
+                               var editor = widget.editor,\r
+                                       range = editor.createRange(),\r
+                                       found;\r
+\r
+                               // If haven't found place for caret on the default side,\r
+                               // try to find it on the other side.\r
+                               if ( !( found = range.moveToClosestEditablePosition( widget.wrapper, true ) ) )\r
+                                       found = range.moveToClosestEditablePosition( widget.wrapper, false );\r
+\r
+                               if ( found )\r
+                                       editor.getSelection().selectRanges( [ range ] );\r
+                       }\r
+\r
+                       widget.wrapper.remove();\r
+                       this.destroy( widget, true );\r
+               },\r
+\r
+               /**\r
+                * Destroys the widget instance and all its nested widgets (widgets inside its nested editables).\r
+                *\r
+                * @param {CKEDITOR.plugins.widget} widget The widget instance to be destroyed.\r
+                * @param {Boolean} [offline] Whether the widget is offline (detached from the DOM tree) &mdash;\r
+                * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+                */\r
+               destroy: function( widget, offline ) {\r
+                       if ( this.widgetHoldingFocusedEditable === widget )\r
+                               setFocusedEditable( this, widget, null, offline );\r
+\r
+                       widget.destroy( offline );\r
+                       delete this.instances[ widget.id ];\r
+                       this.fire( 'instanceDestroyed', widget );\r
+               },\r
+\r
+               /**\r
+                * Destroys all widget instances.\r
+                *\r
+                * @param {Boolean} [offline] Whether the widgets are offline (detached from the DOM tree) &mdash;\r
+                * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+                * @param {CKEDITOR.dom.element} [container] The container within widgets will be destroyed.\r
+                * This option will be ignored if the `offline` flag was set to `true`, because in such case\r
+                * it is not possible to find widgets within the passed block.\r
+                */\r
+               destroyAll: function( offline, container ) {\r
+                       var widget,\r
+                               id,\r
+                               instances = this.instances;\r
+\r
+                       if ( container && !offline ) {\r
+                               var wrappers = container.find( '.cke_widget_wrapper' ),\r
+                                       l = wrappers.count(),\r
+                                       i = 0;\r
+\r
+                               // Length is constant, because this is not a live node list.\r
+                               // Note: since querySelectorAll returns nodes in document order,\r
+                               // outer widgets are always placed before their nested widgets and therefore\r
+                               // are destroyed before them.\r
+                               for ( ; i < l; ++i ) {\r
+                                       widget = this.getByElement( wrappers.getItem( i ), true );\r
+                                       // Widget might not be found, because it could be a nested widget,\r
+                                       // which would be destroyed when destroying its parent.\r
+                                       if ( widget )\r
+                                               this.destroy( widget );\r
+                               }\r
+\r
+                               return;\r
+                       }\r
+\r
+                       for ( id in instances ) {\r
+                               widget = instances[ id ];\r
+                               this.destroy( widget, offline );\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Finalizes a process of widget creation. This includes:\r
+                *\r
+                * * inserting widget element into editor,\r
+                * * marking widget instance as ready (see {@link CKEDITOR.plugins.widget#event-ready}),\r
+                * * focusing widget instance.\r
+                *\r
+                * This method is used by the default widget's command and is called\r
+                * after widget's dialog (if set) is closed. It may also be used in a\r
+                * customized process of widget creation and insertion.\r
+                *\r
+                *              widget.once( 'edit', function() {\r
+                *                      // Finalize creation only of not ready widgets.\r
+                *                      if ( widget.isReady() )\r
+                *                              return;\r
+                *\r
+                *                      // Cancel edit event to prevent automatic widget insertion.\r
+                *                      evt.cancel();\r
+                *\r
+                *                      CustomDialog.open( widget.data, function saveCallback( savedData ) {\r
+                *                              // Cache the container, because widget may be destroyed while saving data,\r
+                *                              // if this process will require some deep transformations.\r
+                *                              var container = widget.wrapper.getParent();\r
+                *\r
+                *                              widget.setData( savedData );\r
+                *\r
+                *                              // Widget will be retrieved from container and inserted into editor.\r
+                *                              editor.widgets.finalizeCreation( container );\r
+                *                      } );\r
+                *              } );\r
+                *\r
+                * @param {CKEDITOR.dom.element/CKEDITOR.dom.documentFragment} container The element\r
+                * or document fragment which contains widget wrapper. The container is used, so before\r
+                * finalizing creation the widget can be freely transformed (even destroyed and reinitialized).\r
+                */\r
+               finalizeCreation: function( container ) {\r
+                       var wrapper = container.getFirst();\r
+                       if ( wrapper && Widget.isDomWidgetWrapper( wrapper ) ) {\r
+                               this.editor.insertElement( wrapper );\r
+\r
+                               var widget = this.getByElement( wrapper );\r
+                               // Fire postponed #ready event.\r
+                               widget.ready = true;\r
+                               widget.fire( 'ready' );\r
+                               widget.focus();\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Finds a widget instance which contains a given element. The element will be the {@link CKEDITOR.plugins.widget#wrapper wrapper}\r
+                * of the returned widget or a descendant of this {@link CKEDITOR.plugins.widget#wrapper wrapper}.\r
+                *\r
+                *              editor.widgets.getByElement( someWidget.wrapper ); // -> someWidget\r
+                *              editor.widgets.getByElement( someWidget.parts.caption ); // -> someWidget\r
+                *\r
+                *              // Check wrapper only:\r
+                *              editor.widgets.getByElement( someWidget.wrapper, true ); // -> someWidget\r
+                *              editor.widgets.getByElement( someWidget.parts.caption, true ); // -> null\r
+                *\r
+                * @param {CKEDITOR.dom.element} element The element to be checked.\r
+                * @param {Boolean} [checkWrapperOnly] If set to `true`, the method will not check wrappers' descendants.\r
+                * @returns {CKEDITOR.plugins.widget} The widget instance or `null`.\r
+                */\r
+               getByElement: ( function() {\r
+                       var validWrapperElements = { div: 1, span: 1 };\r
+                       function getWidgetId( element ) {\r
+                               return element.is( validWrapperElements ) && element.data( 'cke-widget-id' );\r
+                       }\r
+\r
+                       return function( element, checkWrapperOnly ) {\r
+                               if ( !element )\r
+                                       return null;\r
+\r
+                               var id = getWidgetId( element );\r
+\r
+                               // There's no need to check element parents if element is a wrapper.\r
+                               if ( !checkWrapperOnly && !id ) {\r
+                                       var limit = this.editor.editable();\r
+\r
+                                       // Try to find a closest ascendant which is a widget wrapper.\r
+                                       do {\r
+                                               element = element.getParent();\r
+                                       } while ( element && !element.equals( limit ) && !( id = getWidgetId( element ) ) );\r
+                               }\r
+\r
+                               return this.instances[ id ] || null;\r
+                       };\r
+               } )(),\r
+\r
+               /**\r
+                * Initializes a widget on a given element if the widget has not been initialized on it yet.\r
+                *\r
+                * @param {CKEDITOR.dom.element} element The future widget element.\r
+                * @param {String/CKEDITOR.plugins.widget.definition} [widgetDef] Name of a widget or a widget definition.\r
+                * The widget definition should be previously registered by using the\r
+                * {@link CKEDITOR.plugins.widget.repository#add} method.\r
+                * @param [startupData] Widget startup data (has precedence over default one).\r
+                * @returns {CKEDITOR.plugins.widget} The widget instance or `null` if a widget could not be initialized on\r
+                * a given element.\r
+                */\r
+               initOn: function( element, widgetDef, startupData ) {\r
+                       if ( !widgetDef )\r
+                               widgetDef = this.registered[ element.data( 'widget' ) ];\r
+                       else if ( typeof widgetDef == 'string' )\r
+                               widgetDef = this.registered[ widgetDef ];\r
+\r
+                       if ( !widgetDef )\r
+                               return null;\r
+\r
+                       // Wrap element if still wasn't wrapped (was added during runtime by method that skips dataProcessor).\r
+                       var wrapper = this.wrapElement( element, widgetDef.name );\r
+\r
+                       if ( wrapper ) {\r
+                               // Check if widget wrapper is new (widget hasn't been initialized on it yet).\r
+                               // This class will be removed by widget constructor to avoid locking snapshot twice.\r
+                               if ( wrapper.hasClass( 'cke_widget_new' ) ) {\r
+                                       var widget = new Widget( this, this._.nextId++, element, widgetDef, startupData );\r
+\r
+                                       // Widget could be destroyed when initializing it.\r
+                                       if ( widget.isInited() ) {\r
+                                               this.instances[ widget.id ] = widget;\r
+\r
+                                               return widget;\r
+                                       } else {\r
+                                               return null;\r
+                                       }\r
+                               }\r
+\r
+                               // Widget already has been initialized, so try to get widget by element.\r
+                               // Note - it may happen that other instance will returned than the one created above,\r
+                               // if for example widget was destroyed and reinitialized.\r
+                               return this.getByElement( element );\r
+                       }\r
+\r
+                       // No wrapper means that there's no widget for this element.\r
+                       return null;\r
+               },\r
+\r
+               /**\r
+                * Initializes widgets on all elements which were wrapped by {@link #wrapElement} and\r
+                * have not been initialized yet.\r
+                *\r
+                * @param {CKEDITOR.dom.element} [container=editor.editable()] The container which will be checked for not\r
+                * initialized widgets. Defaults to editor's {@link CKEDITOR.editor#editable editable} element.\r
+                * @returns {CKEDITOR.plugins.widget[]} Array of widget instances which have been initialized.\r
+                * Note: Only first-level widgets are returned &mdash; without nested widgets.\r
+                */\r
+               initOnAll: function( container ) {\r
+                       var newWidgets = ( container || this.editor.editable() ).find( '.cke_widget_new' ),\r
+                               newInstances = [],\r
+                               instance;\r
+\r
+                       for ( var i = newWidgets.count(); i--; ) {\r
+                               instance = this.initOn( newWidgets.getItem( i ).getFirst( Widget.isDomWidgetElement ) );\r
+                               if ( instance )\r
+                                       newInstances.push( instance );\r
+                       }\r
+\r
+                       return newInstances;\r
+               },\r
+\r
+               /**\r
+                * Allows to listen to events on specific types of widgets, even if they are not created yet.\r
+                *\r
+                * Please note that this method inherits parameters from the {@link CKEDITOR.event#method-on} method with one\r
+                * extra parameter at the beginning which is the widget name.\r
+                *\r
+                *              editor.widgets.onWidget( 'image', 'action', function( evt ) {\r
+                *                      // Event `action` occurs on `image` widget.\r
+                *              } );\r
+                *\r
+                * @since 4.5\r
+                * @param {String} widgetName\r
+                * @param {String} eventName\r
+                * @param {Function} listenerFunction\r
+                * @param {Object} [scopeObj]\r
+                * @param {Object} [listenerData]\r
+                * @param {Number} [priority=10]\r
+                */\r
+               onWidget: function( widgetName ) {\r
+                       var args = Array.prototype.slice.call( arguments );\r
+\r
+                       args.shift();\r
+\r
+                       for ( var i in this.instances ) {\r
+                               var instance = this.instances[ i ];\r
+\r
+                               if ( instance.name == widgetName ) {\r
+                                       instance.on.apply( instance, args );\r
+                               }\r
+                       }\r
+\r
+                       this.on( 'instanceCreated', function( evt ) {\r
+                               var widget = evt.data;\r
+\r
+                               if ( widget.name == widgetName ) {\r
+                                       widget.on.apply( widget, args );\r
+                               }\r
+                       } );\r
+               },\r
+\r
+               /**\r
+                * Parses element classes string and returns an object\r
+                * whose keys contain class names. Skips all `cke_*` classes.\r
+                *\r
+                * This method is used by the {@link CKEDITOR.plugins.widget#getClasses} method and\r
+                * may be used when overriding that method.\r
+                *\r
+                * @since 4.4\r
+                * @param {String} classes String (value of `class` attribute).\r
+                * @returns {Object} Object containing classes or `null` if no classes found.\r
+                */\r
+               parseElementClasses: function( classes ) {\r
+                       if ( !classes )\r
+                               return null;\r
+\r
+                       classes = CKEDITOR.tools.trim( classes ).split( /\s+/ );\r
+\r
+                       var cl,\r
+                               obj = {},\r
+                               hasClasses = 0;\r
+\r
+                       while ( ( cl = classes.pop() ) ) {\r
+                               if ( cl.indexOf( 'cke_' ) == -1 )\r
+                                       obj[ cl ] = hasClasses = 1;\r
+                       }\r
+\r
+                       return hasClasses ? obj : null;\r
+               },\r
+\r
+               /**\r
+                * Wraps an element with a widget's non-editable container.\r
+                *\r
+                * If this method is called on an {@link CKEDITOR.htmlParser.element}, then it will\r
+                * also take care of fixing the DOM after wrapping (the wrapper may not be allowed in element's parent).\r
+                *\r
+                * @param {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} element The widget element to be wrapped.\r
+                * @param {String} [widgetName] The name of the widget definition. Defaults to element's `data-widget`\r
+                * attribute value.\r
+                * @returns {CKEDITOR.dom.element/CKEDITOR.htmlParser.element} The wrapper element or `null` if\r
+                * the widget definition of this name is not registered.\r
+                */\r
+               wrapElement: function( element, widgetName ) {\r
+                       var wrapper = null,\r
+                               widgetDef,\r
+                               isInline;\r
+\r
+                       if ( element instanceof CKEDITOR.dom.element ) {\r
+                               widgetName = widgetName || element.data( 'widget' );\r
+                               widgetDef = this.registered[ widgetName ];\r
+\r
+                               if ( !widgetDef )\r
+                                       return null;\r
+\r
+                               // Do not wrap already wrapped element.\r
+                               wrapper = element.getParent();\r
+                               if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.data( 'cke-widget-wrapper' ) )\r
+                                       return wrapper;\r
+\r
+                               // If attribute isn't already set (e.g. for pasted widget), set it.\r
+                               if ( !element.hasAttribute( 'data-cke-widget-keep-attr' ) )\r
+                                       element.data( 'cke-widget-keep-attr', element.data( 'widget' ) ? 1 : 0 );\r
+\r
+                               element.data( 'widget', widgetName );\r
+\r
+                               isInline = isWidgetInline( widgetDef, element.getName() );\r
+\r
+                               wrapper = new CKEDITOR.dom.element( isInline ? 'span' : 'div' );\r
+                               wrapper.setAttributes( getWrapperAttributes( isInline, widgetName ) );\r
+\r
+                               wrapper.data( 'cke-display-name', widgetDef.pathName ? widgetDef.pathName : element.getName() );\r
+\r
+                               // Replace element unless it is a detached one.\r
+                               if ( element.getParent( true ) )\r
+                                       wrapper.replace( element );\r
+                               element.appendTo( wrapper );\r
+                       }\r
+                       else if ( element instanceof CKEDITOR.htmlParser.element ) {\r
+                               widgetName = widgetName || element.attributes[ 'data-widget' ];\r
+                               widgetDef = this.registered[ widgetName ];\r
+\r
+                               if ( !widgetDef )\r
+                                       return null;\r
+\r
+                               wrapper = element.parent;\r
+                               if ( wrapper && wrapper.type == CKEDITOR.NODE_ELEMENT && wrapper.attributes[ 'data-cke-widget-wrapper' ] )\r
+                                       return wrapper;\r
+\r
+                               // If attribute isn't already set (e.g. for pasted widget), set it.\r
+                               if ( !( 'data-cke-widget-keep-attr' in element.attributes ) )\r
+                                       element.attributes[ 'data-cke-widget-keep-attr' ] = element.attributes[ 'data-widget' ] ? 1 : 0;\r
+                               if ( widgetName )\r
+                                       element.attributes[ 'data-widget' ] = widgetName;\r
+\r
+                               isInline = isWidgetInline( widgetDef, element.name );\r
+\r
+                               wrapper = new CKEDITOR.htmlParser.element( isInline ? 'span' : 'div', getWrapperAttributes( isInline, widgetName ) );\r
+                               wrapper.attributes[ 'data-cke-display-name' ] = widgetDef.pathName ? widgetDef.pathName : element.name;\r
+\r
+                               var parent = element.parent,\r
+                                       index;\r
+\r
+                               // Don't detach already detached element.\r
+                               if ( parent ) {\r
+                                       index = element.getIndex();\r
+                                       element.remove();\r
+                               }\r
+\r
+                               wrapper.add( element );\r
+\r
+                               // Insert wrapper fixing DOM (splitting parents if wrapper is not allowed inside them).\r
+                               parent && insertElement( parent, index, wrapper );\r
+                       }\r
+\r
+                       return wrapper;\r
+               },\r
+\r
+               // Expose for tests.\r
+               _tests_createEditableFilter: createEditableFilter\r
+       };\r
+\r
+       CKEDITOR.event.implementOn( Repository.prototype );\r
+\r
+       /**\r
+        * An event fired when a widget instance is created, but before it is fully initialized.\r
+        *\r
+        * @event instanceCreated\r
+        * @param {CKEDITOR.plugins.widget} data The widget instance.\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget instance was destroyed.\r
+        *\r
+        * See also {@link CKEDITOR.plugins.widget#event-destroy}.\r
+        *\r
+        * @event instanceDestroyed\r
+        * @param {CKEDITOR.plugins.widget} data The widget instance.\r
+        */\r
+\r
+       /**\r
+        * An event fired to trigger the selection check.\r
+        *\r
+        * See the {@link #method-checkSelection} method.\r
+        *\r
+        * @event checkSelection\r
+        */\r
+\r
+       /**\r
+        * An event fired by the the {@link #method-checkWidgets} method.\r
+        *\r
+        * It can be canceled in order to stop the {@link #method-checkWidgets}\r
+        * method execution or the event listener can modify the method's options.\r
+        *\r
+        * @event checkWidgets\r
+        * @param [data]\r
+        * @param {Boolean} [data.initOnlyNew] Initialize widgets only on newly wrapped\r
+        * widget elements (those which still have the `cke_widget_new` class). When this option is\r
+        * set to `true`, widgets which were invalidated (e.g. by replacing with a cloned DOM structure)\r
+        * will not be reinitialized. This makes the check faster.\r
+        * @param {Boolean} [data.focusInited] If only one widget is initialized by\r
+        * the method, it will be focused.\r
+        */\r
+\r
+\r
+       /**\r
+        * An instance of a widget. Together with {@link CKEDITOR.plugins.widget.repository} these\r
+        * two classes constitute the core of the Widget System.\r
+        *\r
+        * Note that neither the repository nor the widget instances can be created by using their constructors.\r
+        * A repository instance is automatically set up by the Widget plugin and is accessible under\r
+        * {@link CKEDITOR.editor#widgets}, while widget instances are created and destroyed by the repository.\r
+        *\r
+        * To create a widget, first you need to {@link CKEDITOR.plugins.widget.repository#add register} its\r
+        * {@link CKEDITOR.plugins.widget.definition definition}:\r
+        *\r
+        *              editor.widgets.add( 'simplebox', {\r
+        *                      upcast: function( element ) {\r
+        *                              // Defines which elements will become widgets.\r
+        *                              if ( element.hasClass( 'simplebox' ) )\r
+        *                                      return true;\r
+        *                      },\r
+        *                      init: function() {\r
+        *                              // ...\r
+        *                      }\r
+        *              } );\r
+        *\r
+        * Once the widget definition is registered, widgets will be automatically\r
+        * created when loading data:\r
+        *\r
+        *              editor.setData( '<div class="simplebox">foo</div>', function() {\r
+        *                      console.log( editor.widgets.instances ); // -> An object containing one instance.\r
+        *              } );\r
+        *\r
+        * It is also possible to create instances during runtime by using a command\r
+        * (if a {@link CKEDITOR.plugins.widget.definition#template} property was defined):\r
+        *\r
+        *              // You can execute an automatically defined command to\r
+        *              // insert a new simplebox widget or edit the one currently focused.\r
+        *              editor.execCommand( 'simplebox' );\r
+        *\r
+        * Note: Since CKEditor 4.5 widget's `startupData` can be passed as the command argument:\r
+        *\r
+        *              editor.execCommand( 'simplebox', {\r
+        *                      startupData: {\r
+        *                              align: 'left'\r
+        *                      }\r
+        *              } );\r
+        *\r
+        * A widget can also be created in a completely custom way:\r
+        *\r
+        *              var element = editor.document.createElement( 'div' );\r
+        *              editor.insertElement( element );\r
+        *              var widget = editor.widgets.initOn( element, 'simplebox' );\r
+        *\r
+        * @since 4.3\r
+        * @class CKEDITOR.plugins.widget\r
+        * @mixins CKEDITOR.event\r
+        * @extends CKEDITOR.plugins.widget.definition\r
+        * @constructor Creates an instance of the widget class. Do not use it directly, but instead initialize widgets\r
+        * by using the {@link CKEDITOR.plugins.widget.repository#initOn} method or by the upcasting system.\r
+        * @param {CKEDITOR.plugins.widget.repository} widgetsRepo\r
+        * @param {Number} id Unique ID of this widget instance.\r
+        * @param {CKEDITOR.dom.element} element The widget element.\r
+        * @param {CKEDITOR.plugins.widget.definition} widgetDef Widget's registered definition.\r
+        * @param [startupData] Initial widget data. This data object will overwrite the default data and\r
+        * the data loaded from the DOM.\r
+        */\r
+       function Widget( widgetsRepo, id, element, widgetDef, startupData ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               // Extend this widget with widgetDef-specific methods and properties.\r
+               CKEDITOR.tools.extend( this, widgetDef, {\r
+                       /**\r
+                        * The editor instance.\r
+                        *\r
+                        * @readonly\r
+                        * @property {CKEDITOR.editor}\r
+                        */\r
+                       editor: editor,\r
+\r
+                       /**\r
+                        * This widget's unique (per editor instance) ID.\r
+                        *\r
+                        * @readonly\r
+                        * @property {Number}\r
+                        */\r
+                       id: id,\r
+\r
+                       /**\r
+                        * Whether this widget is an inline widget (based on an inline element unless\r
+                        * forced otherwise by {@link CKEDITOR.plugins.widget.definition#inline}).\r
+                        *\r
+                        * **Note:** This option does not allow to turn a block element into an inline widget.\r
+                        * However, it makes it possible to turn an inline element into a block widget or to\r
+                        * force a correct type in case when automatic recognition fails.\r
+                        *\r
+                        * @readonly\r
+                        * @property {Boolean}\r
+                        */\r
+                       inline: element.getParent().getName() == 'span',\r
+\r
+                       /**\r
+                        * The widget element &mdash; the element on which the widget was initialized.\r
+                        *\r
+                        * @readonly\r
+                        * @property {CKEDITOR.dom.element} element\r
+                        */\r
+                       element: element,\r
+\r
+                       /**\r
+                        * Widget's data object.\r
+                        *\r
+                        * The data can only be set by using the {@link #setData} method.\r
+                        * Changes made to the data fire the {@link #event-data} event.\r
+                        *\r
+                        * @readonly\r
+                        */\r
+                       data: CKEDITOR.tools.extend( {}, typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults ),\r
+\r
+                       /**\r
+                        * Indicates if a widget is data-ready. Set to `true` when data from all sources\r
+                        * ({@link CKEDITOR.plugins.widget.definition#defaults}, set in the\r
+                        * {@link #init} method, loaded from the widget's element and startup data coming from the constructor)\r
+                        * are finally loaded. This is immediately followed by the first {@link #event-data}.\r
+                        *\r
+                        * @readonly\r
+                        */\r
+                       dataReady: false,\r
+\r
+                       /**\r
+                        * Whether a widget instance was initialized. This means that:\r
+                        *\r
+                        * * An instance was created,\r
+                        * * Its properties were set,\r
+                        * * The `init` method was executed.\r
+                        *\r
+                        * **Note**: The first {@link #event-data} event could not be fired yet which\r
+                        * means that the widget's DOM has not been set up yet. Wait for the {@link #event-ready}\r
+                        * event to be notified when a widget is fully initialized and ready.\r
+                        *\r
+                        * **Note**: Use the {@link #isInited} method to check whether a widget is initialized and\r
+                        * has not been destroyed.\r
+                        *\r
+                        * @readonly\r
+                        */\r
+                       inited: false,\r
+\r
+                       /**\r
+                        * Whether a widget instance is ready. This means that the widget is {@link #inited} and\r
+                        * that its DOM was finally set up.\r
+                        *\r
+                        * **Note:** Use the {@link #isReady} method to check whether a widget is ready and\r
+                        * has not been destroyed.\r
+                        *\r
+                        * @readonly\r
+                        */\r
+                       ready: false,\r
+\r
+                       // Revert what widgetDef could override (automatic #edit listener).\r
+                       edit: Widget.prototype.edit,\r
+\r
+                       /**\r
+                        * The nested editable element which is currently focused.\r
+                        *\r
+                        * @readonly\r
+                        * @property {CKEDITOR.plugins.widget.nestedEditable}\r
+                        */\r
+                       focusedEditable: null,\r
+\r
+                       /**\r
+                        * The widget definition from which this instance was created.\r
+                        *\r
+                        * @readonly\r
+                        * @property {CKEDITOR.plugins.widget.definition} definition\r
+                        */\r
+                       definition: widgetDef,\r
+\r
+                       /**\r
+                        * Link to the widget repository which created this instance.\r
+                        *\r
+                        * @readonly\r
+                        * @property {CKEDITOR.plugins.widget.repository} repository\r
+                        */\r
+                       repository: widgetsRepo,\r
+\r
+                       draggable: widgetDef.draggable !== false,\r
+\r
+                       // WAAARNING: Overwrite widgetDef's priv object, because otherwise violent unicorn's gonna visit you.\r
+                       _: {\r
+                               downcastFn: ( widgetDef.downcast && typeof widgetDef.downcast == 'string' ) ?\r
+                                       widgetDef.downcasts[ widgetDef.downcast ] : widgetDef.downcast\r
+                       }\r
+               }, true );\r
+\r
+               /**\r
+                * An object of widget component elements.\r
+                *\r
+                * For every `partName => selector` pair in {@link CKEDITOR.plugins.widget.definition#parts},\r
+                * one `partName => element` pair is added to this object during the widget initialization.\r
+                *\r
+                * @readonly\r
+                * @property {Object} parts\r
+                */\r
+\r
+               /**\r
+                * The template which will be used to create a new widget element (when the widget's command is executed).\r
+                * It will be populated with {@link #defaults default values}.\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.template} template\r
+                */\r
+\r
+               /**\r
+                * The widget wrapper &mdash; a non-editable `div` or `span` element (depending on {@link #inline})\r
+                * which is a parent of the {@link #element} and widget compontents like the drag handler and the {@link #mask}.\r
+                * It is the outermost widget element.\r
+                *\r
+                * @readonly\r
+                * @property {CKEDITOR.dom.element} wrapper\r
+                */\r
+\r
+               widgetsRepo.fire( 'instanceCreated', this );\r
+\r
+               setupWidget( this, widgetDef );\r
+\r
+               this.init && this.init();\r
+\r
+               // Finally mark widget as inited.\r
+               this.inited = true;\r
+\r
+               setupWidgetData( this, startupData );\r
+\r
+               // If at some point (e.g. in #data listener) widget hasn't been destroyed\r
+               // and widget is already attached to document then fire #ready.\r
+               if ( this.isInited() && editor.editable().contains( this.wrapper ) ) {\r
+                       this.ready = true;\r
+                       this.fire( 'ready' );\r
+               }\r
+       }\r
+\r
+       Widget.prototype = {\r
+               /**\r
+                * Adds a class to the widget element. This method is used by\r
+                * the {@link #applyStyle} method and should be overridden by widgets\r
+                * which should handle classes differently (e.g. add them to other elements).\r
+                *\r
+                * Since 4.6.0 this method also adds a corresponding class prefixed with {@link #WRAPPER_CLASS_PREFIX}\r
+                * to the widget wrapper element.\r
+                *\r
+                * **Note**: This method should not be used directly. Use the {@link #setData} method to\r
+                * set the `classes` property. Read more in the {@link #setData} documentation.\r
+                *\r
+                * See also: {@link #removeClass}, {@link #hasClass}, {@link #getClasses}.\r
+                *\r
+                * @since 4.4\r
+                * @param {String} className The class name to be added.\r
+                */\r
+               addClass: function( className ) {\r
+                       this.element.addClass( className );\r
+                       this.wrapper.addClass( Widget.WRAPPER_CLASS_PREFIX + className );\r
+               },\r
+\r
+               /**\r
+                * Applies the specified style to the widget. It is highly recommended to use the\r
+                * {@link CKEDITOR.editor#applyStyle} or {@link CKEDITOR.style#apply} methods instead of\r
+                * using this method directly, because unlike editor's and style's methods, this one\r
+                * does not perform any checks.\r
+                *\r
+                * By default this method handles only classes defined in the style. It clones existing\r
+                * classes which are stored in the {@link #property-data widget data}'s `classes` property,\r
+                * adds new classes, and calls the {@link #setData} method if at least one new class was added.\r
+                * Then, using the {@link #event-data} event listener widget applies modifications passing\r
+                * new classes to the {@link #addClass} method.\r
+                *\r
+                * If you need to handle classes differently than in the default way, you can override the\r
+                * {@link #addClass} and related methods. You can also handle other style properties than `classes`\r
+                * by overriding this method.\r
+                *\r
+                * See also: {@link #checkStyleActive}, {@link #removeStyle}.\r
+                *\r
+                * @since 4.4\r
+                * @param {CKEDITOR.style} style The custom widget style to be applied.\r
+                */\r
+               applyStyle: function( style ) {\r
+                       applyRemoveStyle( this, style, 1 );\r
+               },\r
+\r
+               /**\r
+                * Checks if the specified style is applied to this widget. It is highly recommended to use the\r
+                * {@link CKEDITOR.style#checkActive} method instead of using this method directly,\r
+                * because unlike style's method, this one does not perform any checks.\r
+                *\r
+                * By default this method handles only classes defined in the style and passes\r
+                * them to the {@link #hasClass} method. You can override these methods to handle classes\r
+                * differently or to handle more of the style properties.\r
+                *\r
+                * See also: {@link #applyStyle}, {@link #removeStyle}.\r
+                *\r
+                * @since 4.4\r
+                * @param {CKEDITOR.style} style The custom widget style to be checked.\r
+                * @returns {Boolean} Whether the style is applied to this widget.\r
+                */\r
+               checkStyleActive: function( style ) {\r
+                       var classes = getStyleClasses( style ),\r
+                               cl;\r
+\r
+                       if ( !classes )\r
+                               return false;\r
+\r
+                       while ( ( cl = classes.pop() ) ) {\r
+                               if ( !this.hasClass( cl ) )\r
+                                       return false;\r
+                       }\r
+                       return true;\r
+               },\r
+\r
+               /**\r
+                * Destroys this widget instance.\r
+                *\r
+                * Use {@link CKEDITOR.plugins.widget.repository#destroy} when possible instead of this method.\r
+                *\r
+                * This method fires the {#event-destroy} event.\r
+                *\r
+                * @param {Boolean} [offline] Whether a widget is offline (detached from the DOM tree) &mdash;\r
+                * in this case the DOM (attributes, classes, etc.) will not be cleaned up.\r
+                */\r
+               destroy: function( offline ) {\r
+                       this.fire( 'destroy' );\r
+\r
+                       if ( this.editables ) {\r
+                               for ( var name in this.editables )\r
+                                       this.destroyEditable( name, offline );\r
+                       }\r
+\r
+                       if ( !offline ) {\r
+                               if ( this.element.data( 'cke-widget-keep-attr' ) == '0' )\r
+                                       this.element.removeAttribute( 'data-widget' );\r
+                               this.element.removeAttributes( [ 'data-cke-widget-data', 'data-cke-widget-keep-attr' ] );\r
+                               this.element.removeClass( 'cke_widget_element' );\r
+                               this.element.replace( this.wrapper );\r
+                       }\r
+\r
+                       this.wrapper = null;\r
+               },\r
+\r
+               /**\r
+                * Destroys a nested editable and all nested widgets.\r
+                *\r
+                * @param {String} editableName Nested editable name.\r
+                * @param {Boolean} [offline] See {@link #method-destroy} method.\r
+                */\r
+               destroyEditable: function( editableName, offline ) {\r
+                       var editable = this.editables[ editableName ];\r
+\r
+                       editable.removeListener( 'focus', onEditableFocus );\r
+                       editable.removeListener( 'blur', onEditableBlur );\r
+                       this.editor.focusManager.remove( editable );\r
+\r
+                       if ( !offline ) {\r
+                               this.repository.destroyAll( false, editable );\r
+                               editable.removeClass( 'cke_widget_editable' );\r
+                               editable.removeClass( 'cke_widget_editable_focused' );\r
+                               editable.removeAttributes( [ 'contenteditable', 'data-cke-widget-editable', 'data-cke-enter-mode' ] );\r
+                       }\r
+\r
+                       delete this.editables[ editableName ];\r
+               },\r
+\r
+               /**\r
+                * Starts widget editing.\r
+                *\r
+                * This method fires the {@link CKEDITOR.plugins.widget#event-edit} event\r
+                * which may be canceled in order to prevent it from opening a dialog window.\r
+                *\r
+                * The dialog window name is obtained from the event's data `dialog` property or\r
+                * from {@link CKEDITOR.plugins.widget.definition#dialog}.\r
+                *\r
+                * @returns {Boolean} Returns `true` if a dialog window was opened.\r
+                */\r
+               edit: function() {\r
+                       var evtData = { dialog: this.dialog },\r
+                               that = this;\r
+\r
+                       // Edit event was blocked or there's no dialog to be automatically opened.\r
+                       if ( this.fire( 'edit', evtData ) === false || !evtData.dialog )\r
+                               return false;\r
+\r
+                       this.editor.openDialog( evtData.dialog, function( dialog ) {\r
+                               var showListener,\r
+                                       okListener;\r
+\r
+                               // Allow to add a custom dialog handler.\r
+                               if ( that.fire( 'dialog', dialog ) === false )\r
+                                       return;\r
+\r
+                               showListener = dialog.on( 'show', function() {\r
+                                       dialog.setupContent( that );\r
+                               } );\r
+\r
+                               okListener = dialog.on( 'ok', function() {\r
+                                       // Commit dialog's fields, but prevent from\r
+                                       // firing data event for every field. Fire only one,\r
+                                       // bulk event at the end.\r
+                                       var dataChanged,\r
+                                               dataListener = that.on( 'data', function( evt ) {\r
+                                                       dataChanged = 1;\r
+                                                       evt.cancel();\r
+                                               }, null, null, 0 );\r
+\r
+                                       // Create snapshot preceeding snapshot with changed widget...\r
+                                       // TODO it should not be required, but it is and I found similar\r
+                                       // code in dialog#ok listener in dialog/plugin.js.\r
+                                       that.editor.fire( 'saveSnapshot' );\r
+                                       dialog.commitContent( that );\r
+\r
+                                       dataListener.removeListener();\r
+                                       if ( dataChanged ) {\r
+                                               that.fire( 'data', that.data );\r
+                                               that.editor.fire( 'saveSnapshot' );\r
+                                       }\r
+                               } );\r
+\r
+                               dialog.once( 'hide', function() {\r
+                                       showListener.removeListener();\r
+                                       okListener.removeListener();\r
+                               } );\r
+                       } );\r
+\r
+                       return true;\r
+               },\r
+\r
+               /**\r
+                * Returns widget element classes parsed to an object. This method\r
+                * is used to populate the `classes` property of widget's {@link #property-data}.\r
+                *\r
+                * This method reuses {@link CKEDITOR.plugins.widget.repository#parseElementClasses}.\r
+                * It should be overriden if a widget should handle classes differently (e.g. on other elements).\r
+                *\r
+                * See also: {@link #removeClass}, {@link #addClass}, {@link #hasClass}.\r
+                *\r
+                * @since 4.4\r
+                * @returns {Object}\r
+                */\r
+               getClasses: function() {\r
+                       return this.repository.parseElementClasses( this.element.getAttribute( 'class' ) );\r
+               },\r
+\r
+               /**\r
+                * Checks if the widget element has specified class. This method is used by\r
+                * the {@link #checkStyleActive} method and should be overriden by widgets\r
+                * which should handle classes differently (e.g. on other elements).\r
+                *\r
+                * See also: {@link #removeClass}, {@link #addClass}, {@link #getClasses}.\r
+                *\r
+                * @since 4.4\r
+                * @param {String} className The class to be checked.\r
+                * @param {Boolean} Whether a widget has specified class.\r
+                */\r
+               hasClass: function( className ) {\r
+                       return this.element.hasClass( className );\r
+               },\r
+\r
+               /**\r
+                * Initializes a nested editable.\r
+                *\r
+                * **Note**: Only elements from {@link CKEDITOR.dtd#$editable} may become editables.\r
+                *\r
+                * @param {String} editableName The nested editable name.\r
+                * @param {CKEDITOR.plugins.widget.nestedEditable.definition} definition The definition of the nested editable.\r
+                * @returns {Boolean} Whether an editable was successfully initialized.\r
+                */\r
+               initEditable: function( editableName, definition ) {\r
+                       // Don't fetch just first element which matched selector but look for a correct one. (http://dev.ckeditor.com/ticket/13334)\r
+                       var editable = this._findOneNotNested( definition.selector );\r
+\r
+                       if ( editable && editable.is( CKEDITOR.dtd.$editable ) ) {\r
+                               editable = new NestedEditable( this.editor, editable, {\r
+                                       filter: createEditableFilter.call( this.repository, this.name, editableName, definition )\r
+                               } );\r
+                               this.editables[ editableName ] = editable;\r
+\r
+                               editable.setAttributes( {\r
+                                       contenteditable: 'true',\r
+                                       'data-cke-widget-editable': editableName,\r
+                                       'data-cke-enter-mode': editable.enterMode\r
+                               } );\r
+\r
+                               if ( editable.filter )\r
+                                       editable.data( 'cke-filter', editable.filter.id );\r
+\r
+                               editable.addClass( 'cke_widget_editable' );\r
+                               // This class may be left when d&ding widget which\r
+                               // had focused editable. Clean this class here, not in\r
+                               // cleanUpWidgetElement for performance and code size reasons.\r
+                               editable.removeClass( 'cke_widget_editable_focused' );\r
+\r
+                               if ( definition.pathName )\r
+                                       editable.data( 'cke-display-name', definition.pathName );\r
+\r
+                               this.editor.focusManager.add( editable );\r
+                               editable.on( 'focus', onEditableFocus, this );\r
+                               CKEDITOR.env.ie && editable.on( 'blur', onEditableBlur, this );\r
+\r
+                               // Finally, process editable's data. This data wasn't processed when loading\r
+                               // editor's data, becuase they need to be processed separately, with its own filters and settings.\r
+                               editable._.initialSetData = true;\r
+                               editable.setData( editable.getHtml() );\r
+\r
+                               return true;\r
+                       }\r
+\r
+                       return false;\r
+               },\r
+\r
+               /**\r
+                * Looks inside wrapper element to find a node that\r
+                * matches given selector and is not nested in other widget. (http://dev.ckeditor.com/ticket/13334)\r
+                *\r
+                * @since 4.5\r
+                * @private\r
+                * @param {String} selector Selector to match.\r
+                * @returns {CKEDITOR.dom.element} Matched element or `null` if a node has not been found.\r
+                */\r
+               _findOneNotNested: function( selector ) {\r
+                       var matchedElements = this.wrapper.find( selector ),\r
+                               match,\r
+                               closestWrapper;\r
+\r
+                       for ( var i = 0; i < matchedElements.count(); i++ ) {\r
+                               match = matchedElements.getItem( i );\r
+                               closestWrapper = match.getAscendant( Widget.isDomWidgetWrapper );\r
+\r
+                               // The closest ascendant-wrapper of this match defines to which widget\r
+                               // this match belongs. If the ascendant is this widget's wrapper\r
+                               // it means that the match is not nested in other widget.\r
+                               if ( this.wrapper.equals( closestWrapper ) ) {\r
+                                       return match;\r
+                               }\r
+                       }\r
+\r
+                       return null;\r
+               },\r
+\r
+               /**\r
+                * Checks if a widget has already been initialized and has not been destroyed yet.\r
+                *\r
+                * See {@link #inited} for more details.\r
+                *\r
+                * @returns {Boolean}\r
+                */\r
+               isInited: function() {\r
+                       return !!( this.wrapper && this.inited );\r
+               },\r
+\r
+               /**\r
+                * Checks if a widget is ready and has not been destroyed yet.\r
+                *\r
+                * See {@link #property-ready} for more details.\r
+                *\r
+                * @returns {Boolean}\r
+                */\r
+               isReady: function() {\r
+                       return this.isInited() && this.ready;\r
+               },\r
+\r
+               /**\r
+                * Focuses a widget by selecting it.\r
+                */\r
+               focus: function() {\r
+                       var sel = this.editor.getSelection();\r
+\r
+                       // Fake the selection before focusing editor, to avoid unpreventable viewports scrolling\r
+                       // on Webkit/Blink/IE which is done because there's no selection or selection was somewhere else than widget.\r
+                       if ( sel ) {\r
+                               var isDirty = this.editor.checkDirty();\r
+\r
+                               sel.fake( this.wrapper );\r
+\r
+                               !isDirty && this.editor.resetDirty();\r
+                       }\r
+\r
+                       // Always focus editor (not only when focusManger.hasFocus is false) (because of http://dev.ckeditor.com/ticket/10483).\r
+                       this.editor.focus();\r
+               },\r
+\r
+               /**\r
+                * Removes a class from the widget element. This method is used by\r
+                * the {@link #removeStyle} method and should be overriden by widgets\r
+                * which should handle classes differently (e.g. on other elements).\r
+                *\r
+                * **Note**: This method should not be used directly. Use the {@link #setData} method to\r
+                * set the `classes` property. Read more in the {@link #setData} documentation.\r
+                *\r
+                * See also: {@link #hasClass}, {@link #addClass}.\r
+                *\r
+                * @since 4.4\r
+                * @param {String} className The class to be removed.\r
+                */\r
+               removeClass: function( className ) {\r
+                       this.element.removeClass( className );\r
+                       this.wrapper.removeClass( Widget.WRAPPER_CLASS_PREFIX + className );\r
+               },\r
+\r
+               /**\r
+                * Removes the specified style from the widget. It is highly recommended to use the\r
+                * {@link CKEDITOR.editor#removeStyle} or {@link CKEDITOR.style#remove} methods instead of\r
+                * using this method directly, because unlike editor's and style's methods, this one\r
+                * does not perform any checks.\r
+                *\r
+                * Read more about how applying/removing styles works in the {@link #applyStyle} method documentation.\r
+                *\r
+                * See also {@link #checkStyleActive}, {@link #applyStyle}, {@link #getClasses}.\r
+                *\r
+                * @since 4.4\r
+                * @param {CKEDITOR.style} style The custom widget style to be removed.\r
+                */\r
+               removeStyle: function( style ) {\r
+                       applyRemoveStyle( this, style, 0 );\r
+               },\r
+\r
+               /**\r
+                * Sets widget value(s) in the {@link #property-data} object.\r
+                * If the given value(s) modifies current ones, the {@link #event-data} event is fired.\r
+                *\r
+                *              this.setData( 'align', 'left' );\r
+                *              this.data.align; // -> 'left'\r
+                *\r
+                *              this.setData( { align: 'right', opened: false } );\r
+                *              this.data.align; // -> 'right'\r
+                *              this.data.opened; // -> false\r
+                *\r
+                * Set values are stored in {@link #element}'s attribute (`data-cke-widget-data`),\r
+                * in a JSON string, therefore {@link #property-data} should contain\r
+                * only serializable data.\r
+                *\r
+                * **Note:** A special data property, `classes`, exists. It contains an object with\r
+                * classes which were returned by the {@link #getClasses} method during the widget initialization.\r
+                * This property is then used by the {@link #applyStyle} and {@link #removeStyle} methods.\r
+                * When it is changed (the reference to object must be changed!), the widget updates its classes by\r
+                * using the {@link #addClass} and {@link #removeClass} methods.\r
+                *\r
+                *              // Adding a new class.\r
+                *              var classes = CKEDITOR.tools.clone( widget.data.classes );\r
+                *              classes.newClass = 1;\r
+                *              widget.setData( 'classes', classes );\r
+                *\r
+                *              // Removing a class.\r
+                *              var classes = CKEDITOR.tools.clone( widget.data.classes );\r
+                *              delete classes.newClass;\r
+                *              widget.setData( 'classes', classes );\r
+                *\r
+                * @param {String/Object} keyOrData\r
+                * @param {Object} value\r
+                * @chainable\r
+                */\r
+               setData: function( key, value ) {\r
+                       var data = this.data,\r
+                               modified = 0;\r
+\r
+                       if ( typeof key == 'string' ) {\r
+                               if ( data[ key ] !== value ) {\r
+                                       data[ key ] = value;\r
+                                       modified = 1;\r
+                               }\r
+                       }\r
+                       else {\r
+                               var newData = key;\r
+\r
+                               for ( key in newData ) {\r
+                                       if ( data[ key ] !== newData[ key ] ) {\r
+                                               modified = 1;\r
+                                               data[ key ] = newData[ key ];\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       // Block firing data event and overwriting data element before setupWidgetData is executed.\r
+                       if ( modified && this.dataReady ) {\r
+                               writeDataToElement( this );\r
+                               this.fire( 'data', data );\r
+                       }\r
+\r
+                       return this;\r
+               },\r
+\r
+               /**\r
+                * Changes the widget's focus state. This method is executed automatically after\r
+                * a widget was focused by the {@link #method-focus} method or the selection was moved\r
+                * out of the widget.\r
+                *\r
+                * This is a low-level method which is not integrated with e.g. the undo manager.\r
+                * Use the {@link #method-focus} method instead.\r
+                *\r
+                * @param {Boolean} selected Whether to select or deselect this widget.\r
+                * @chainable\r
+                */\r
+               setFocused: function( focused ) {\r
+                       this.wrapper[ focused ? 'addClass' : 'removeClass' ]( 'cke_widget_focused' );\r
+                       this.fire( focused ? 'focus' : 'blur' );\r
+                       return this;\r
+               },\r
+\r
+               /**\r
+                * Changes the widget's select state. This method is executed automatically after\r
+                * a widget was selected by the {@link #method-focus} method or the selection\r
+                * was moved out of the widget.\r
+                *\r
+                * This is a low-level method which is not integrated with e.g. the undo manager.\r
+                * Use the {@link #method-focus} method instead or simply change the selection.\r
+                *\r
+                * @param {Boolean} selected Whether to select or deselect this widget.\r
+                * @chainable\r
+                */\r
+               setSelected: function( selected ) {\r
+                       this.wrapper[ selected ? 'addClass' : 'removeClass' ]( 'cke_widget_selected' );\r
+                       this.fire(  selected ? 'select' : 'deselect' );\r
+                       return this;\r
+               },\r
+\r
+               /**\r
+                * Repositions drag handler according to the widget's element position. Should be called from events, like mouseover.\r
+                */\r
+               updateDragHandlerPosition: function() {\r
+                       var editor = this.editor,\r
+                               domElement = this.element.$,\r
+                               oldPos = this._.dragHandlerOffset,\r
+                               newPos = {\r
+                                       x: domElement.offsetLeft,\r
+                                       y: domElement.offsetTop - DRAG_HANDLER_SIZE\r
+                               };\r
+\r
+                       if ( oldPos && newPos.x == oldPos.x && newPos.y == oldPos.y )\r
+                               return;\r
+\r
+                       // We need to make sure that dirty state is not changed (http://dev.ckeditor.com/ticket/11487).\r
+                       var initialDirty = editor.checkDirty();\r
+\r
+                       editor.fire( 'lockSnapshot' );\r
+                       this.dragHandlerContainer.setStyles( {\r
+                               top: newPos.y + 'px',\r
+                               left: newPos.x + 'px',\r
+                               display: 'block'\r
+                       } );\r
+                       editor.fire( 'unlockSnapshot' );\r
+                       !initialDirty && editor.resetDirty();\r
+\r
+                       this._.dragHandlerOffset = newPos;\r
+               }\r
+       };\r
+\r
+       CKEDITOR.event.implementOn( Widget.prototype );\r
+\r
+       /**\r
+        * Gets the {@link #isDomNestedEditable nested editable}\r
+        * (returned as a {@link CKEDITOR.dom.element}, not as a {@link CKEDITOR.plugins.widget.nestedEditable})\r
+        * closest to the `node` or the `node` if it is a nested editable itself.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.element} guard Stop ancestor search on this node (usually editor's editable).\r
+        * @param {CKEDITOR.dom.node} node Start the search from this node.\r
+        * @returns {CKEDITOR.dom.element/null} Element or `null` if not found.\r
+        */\r
+       Widget.getNestedEditable = function( guard, node ) {\r
+               if ( !node || node.equals( guard ) )\r
+                       return null;\r
+\r
+               if ( Widget.isDomNestedEditable( node ) )\r
+                       return node;\r
+\r
+               return Widget.getNestedEditable( guard, node.getParent() );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a widget's drag handle element.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.node} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isDomDragHandler = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-drag-handler' );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a container of the widget's drag handle element.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.node} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isDomDragHandlerContainer = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && node.hasClass( 'cke_widget_drag_handler_container' );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#editables nested editable}.\r
+        * Note that this function only checks whether it is the right element, not whether\r
+        * the passed `node` is an instance of {@link CKEDITOR.plugins.widget.nestedEditable}.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.node} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isDomNestedEditable = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-editable' );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.node} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isDomWidgetElement = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-widget' );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.dom.element} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isDomWidgetWrapper = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && node.hasAttribute( 'data-cke-widget-wrapper' );\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#element widget element}.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.htmlParser.node} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isParserWidgetElement = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-widget' ];\r
+       };\r
+\r
+       /**\r
+        * Checks whether the `node` is a {@link CKEDITOR.plugins.widget#wrapper widget wrapper}.\r
+        *\r
+        * @since 4.5\r
+        * @static\r
+        * @param {CKEDITOR.htmlParser.element} node\r
+        * @returns {Boolean}\r
+        */\r
+       Widget.isParserWidgetWrapper = function( node ) {\r
+               return node.type == CKEDITOR.NODE_ELEMENT && !!node.attributes[ 'data-cke-widget-wrapper' ];\r
+       };\r
+\r
+       /**\r
+        * Prefix added to wrapper classes. Each class added to the widget element by the {@link #addClass}\r
+        * method will also be added to the wrapper prefixed with it.\r
+        *\r
+        * @since 4.6.0\r
+        * @static\r
+        * @readonly\r
+        * @property {String} [='cke_widget_wrapper_']\r
+        */\r
+       Widget.WRAPPER_CLASS_PREFIX = 'cke_widget_wrapper_';\r
+\r
+       /**\r
+        * An event fired when a widget is ready (fully initialized). This event is fired after:\r
+        *\r
+        * * {@link #init} is called,\r
+        * * The first {@link #event-data} event is fired,\r
+        * * A widget is attached to the document.\r
+        *\r
+        * Therefore, in case of widget creation with a command which opens a dialog window, this event\r
+        * will be delayed after the dialog window is closed and the widget is finally inserted into the document.\r
+        *\r
+        * **Note**: If your widget does not use automatic dialog window binding (i.e. you open the dialog window manually)\r
+        * or another situation in which the widget wrapper is not attached to document at the time when it is\r
+        * initialized occurs, you need to take care of firing {@link #event-ready} yourself.\r
+        *\r
+        * See also {@link #property-ready} and {@link #property-inited} properties, and\r
+        * {@link #isReady} and {@link #isInited} methods.\r
+        *\r
+        * @event ready\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is about to be destroyed, but before it is\r
+        * fully torn down.\r
+        *\r
+        * @event destroy\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is focused.\r
+        *\r
+        * Widget can be focused by executing {@link #method-focus}.\r
+        *\r
+        * @event focus\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is blurred.\r
+        *\r
+        * @event blur\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is selected.\r
+        *\r
+        * @event select\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is deselected.\r
+        *\r
+        * @event deselect\r
+        */\r
+\r
+       /**\r
+        * An event fired by the {@link #method-edit} method. It can be canceled\r
+        * in order to stop the default action (opening a dialog window and/or\r
+        * {@link CKEDITOR.plugins.widget.repository#finalizeCreation finalizing widget creation}).\r
+        *\r
+        * @event edit\r
+        * @param data\r
+        * @param {String} data.dialog Defaults to {@link CKEDITOR.plugins.widget.definition#dialog}\r
+        * and can be changed or set by the listener.\r
+        */\r
+\r
+       /**\r
+        * An event fired when a dialog window for widget editing is opened.\r
+        * This event can be canceled in order to handle the editing dialog in a custom manner.\r
+        *\r
+        * @event dialog\r
+        * @param {CKEDITOR.dialog} data The opened dialog window instance.\r
+        */\r
+\r
+       /**\r
+        * An event fired when a key is pressed on a focused widget.\r
+        * This event is forwarded from the {@link CKEDITOR.editor#key} event and\r
+        * has the ability to block editor keystrokes if it is canceled.\r
+        *\r
+        * @event key\r
+        * @param data\r
+        * @param {Number} data.keyCode A number representing the key code (or combination).\r
+        */\r
+\r
+       /**\r
+        * An event fired when a widget is double clicked.\r
+        *\r
+        * **Note:** If a default editing action is executed on double click (i.e. a widget has a\r
+        * {@link CKEDITOR.plugins.widget.definition#dialog dialog} defined and the {@link #event-doubleclick} event was not\r
+        * canceled), this event will be automatically canceled, so a listener added with the default priority (10)\r
+        * will not be executed. Use a listener with low priority (e.g. 5) to be sure that it will be executed.\r
+        *\r
+        *              widget.on( 'doubleclick', function( evt ) {\r
+        *                      console.log( 'widget#doubleclick' );\r
+        *              }, null, null, 5 );\r
+        *\r
+        * If your widget handles double click in a special way (so the default editing action is not executed),\r
+        * make sure you cancel this event, because otherwise it will be propagated to {@link CKEDITOR.editor#doubleclick}\r
+        * and another feature may step in (e.g. a Link dialog window may be opened if your widget was inside a link).\r
+        *\r
+        * @event doubleclick\r
+        * @param data\r
+        * @param {CKEDITOR.dom.element} data.element The double-clicked element.\r
+        */\r
+\r
+       /**\r
+        * An event fired when the context menu is opened for a widget.\r
+        *\r
+        * @event contextMenu\r
+        * @param data The object containing context menu options to be added\r
+        * for this widget. See {@link CKEDITOR.plugins.contextMenu#addListener}.\r
+        */\r
+\r
+       /**\r
+        * An event fired when the widget data changed. See the {@link #setData} method and the {@link #property-data} property.\r
+        *\r
+        * @event data\r
+        */\r
+\r
+\r
+\r
+       /**\r
+        * The wrapper class for editable elements inside widgets.\r
+        *\r
+        * Do not use directly. Use {@link CKEDITOR.plugins.widget.definition#editables} or\r
+        * {@link CKEDITOR.plugins.widget#initEditable}.\r
+        *\r
+        * @class CKEDITOR.plugins.widget.nestedEditable\r
+        * @extends CKEDITOR.dom.element\r
+        * @constructor\r
+        * @param {CKEDITOR.editor} editor\r
+        * @param {CKEDITOR.dom.element} element\r
+        * @param config\r
+        * @param {CKEDITOR.filter} [config.filter]\r
+        */\r
+       function NestedEditable( editor, element, config ) {\r
+               // Call the base constructor.\r
+               CKEDITOR.dom.element.call( this, element.$ );\r
+               this.editor = editor;\r
+               this._ = {};\r
+               var filter = this.filter = config.filter;\r
+\r
+               // If blockless editable - always use BR mode.\r
+               if ( !CKEDITOR.dtd[ this.getName() ].p )\r
+                       this.enterMode = this.shiftEnterMode = CKEDITOR.ENTER_BR;\r
+               else {\r
+                       this.enterMode = filter ? filter.getAllowedEnterMode( editor.enterMode ) : editor.enterMode;\r
+                       this.shiftEnterMode = filter ? filter.getAllowedEnterMode( editor.shiftEnterMode, true ) : editor.shiftEnterMode;\r
+               }\r
+       }\r
+\r
+       NestedEditable.prototype = CKEDITOR.tools.extend( CKEDITOR.tools.prototypedCopy( CKEDITOR.dom.element.prototype ), {\r
+               /**\r
+                * Sets the editable data. The data will be passed through the {@link CKEDITOR.editor#dataProcessor}\r
+                * and the {@link CKEDITOR.editor#filter}. This ensures that the data was filtered and prepared to be\r
+                * edited like the {@link CKEDITOR.editor#method-setData editor data}.\r
+                *\r
+                * Before content is changed, all nested widgets are destroyed. Afterwards, after new content is loaded,\r
+                * all nested widgets are initialized.\r
+                *\r
+                * @param {String} data\r
+                */\r
+               setData: function( data ) {\r
+                       // For performance reasons don't call destroyAll when initializing a nested editable,\r
+                       // because there are no widgets inside.\r
+                       if ( !this._.initialSetData ) {\r
+                               // Destroy all nested widgets before setting data.\r
+                               this.editor.widgets.destroyAll( false, this );\r
+                       }\r
+                       this._.initialSetData = false;\r
+\r
+                       data = this.editor.dataProcessor.toHtml( data, {\r
+                               context: this.getName(),\r
+                               filter: this.filter,\r
+                               enterMode: this.enterMode\r
+                       } );\r
+                       this.setHtml( data );\r
+\r
+                       this.editor.widgets.initOnAll( this );\r
+               },\r
+\r
+               /**\r
+                * Gets the editable data. Like {@link #setData}, this method will process and filter the data.\r
+                *\r
+                * @returns {String}\r
+                */\r
+               getData: function() {\r
+                       return this.editor.dataProcessor.toDataFormat( this.getHtml(), {\r
+                               context: this.getName(),\r
+                               filter: this.filter,\r
+                               enterMode: this.enterMode\r
+                       } );\r
+               }\r
+       } );\r
+\r
+       /**\r
+        * The editor instance.\r
+        *\r
+        * @readonly\r
+        * @property {CKEDITOR.editor} editor\r
+        */\r
+\r
+       /**\r
+        * The filter instance if allowed content rules were defined.\r
+        *\r
+        * @readonly\r
+        * @property {CKEDITOR.filter} filter\r
+        */\r
+\r
+       /**\r
+        * The enter mode active in this editable.\r
+        * It is determined from editable's name (whether it is a blockless editable),\r
+        * its allowed content rules (if defined) and the default editor's mode.\r
+        *\r
+        * @readonly\r
+        * @property {Number} enterMode\r
+        */\r
+\r
+       /**\r
+        * The shift enter move active in this editable.\r
+        *\r
+        * @readonly\r
+        * @property {Number} shiftEnterMode\r
+        */\r
+\r
+\r
+       //\r
+       // REPOSITORY helpers -----------------------------------------------------\r
+       //\r
+\r
+       function addWidgetButtons( editor ) {\r
+               var widgets = editor.widgets.registered,\r
+                       widget,\r
+                       widgetName,\r
+                       widgetButton;\r
+\r
+               for ( widgetName in widgets ) {\r
+                       widget = widgets[ widgetName ];\r
+\r
+                       // Create button if defined.\r
+                       widgetButton = widget.button;\r
+                       if ( widgetButton && editor.ui.addButton ) {\r
+                               editor.ui.addButton( CKEDITOR.tools.capitalize( widget.name, true ), {\r
+                                       label: widgetButton,\r
+                                       command: widget.name,\r
+                                       toolbar: 'insert,10'\r
+                               } );\r
+                       }\r
+               }\r
+       }\r
+\r
+       // Create a command creating and editing widget.\r
+       //\r
+       // @param editor\r
+       // @param {CKEDITOR.plugins.widget.definition} widgetDef\r
+       function addWidgetCommand( editor, widgetDef ) {\r
+               editor.addCommand( widgetDef.name, {\r
+                       exec: function( editor, commandData ) {\r
+                               var focused = editor.widgets.focused;\r
+                               // If a widget of the same type is focused, start editing.\r
+                               if ( focused && focused.name == widgetDef.name )\r
+                                       focused.edit();\r
+                               // Otherwise...\r
+                               // ... use insert method is was defined.\r
+                               else if ( widgetDef.insert )\r
+                                       widgetDef.insert();\r
+                               // ... or create a brand-new widget from template.\r
+                               else if ( widgetDef.template ) {\r
+                                       var defaults = typeof widgetDef.defaults == 'function' ? widgetDef.defaults() : widgetDef.defaults,\r
+                                               element = CKEDITOR.dom.element.createFromHtml( widgetDef.template.output( defaults ) ),\r
+                                               instance,\r
+                                               wrapper = editor.widgets.wrapElement( element, widgetDef.name ),\r
+                                               temp = new CKEDITOR.dom.documentFragment( wrapper.getDocument() );\r
+\r
+                                       // Append wrapper to a temporary document. This will unify the environment\r
+                                       // in which #data listeners work when creating and editing widget.\r
+                                       temp.append( wrapper );\r
+                                       instance = editor.widgets.initOn( element, widgetDef, commandData && commandData.startupData );\r
+\r
+                                       // Instance could be destroyed during initialization.\r
+                                       // In this case finalize creation if some new widget\r
+                                       // was left in temporary document fragment.\r
+                                       if ( !instance ) {\r
+                                               finalizeCreation();\r
+                                               return;\r
+                                       }\r
+\r
+                                       // Listen on edit to finalize widget insertion.\r
+                                       //\r
+                                       // * If dialog was set, then insert widget after dialog was successfully saved or destroy this\r
+                                       // temporary instance.\r
+                                       // * If dialog wasn't set and edit wasn't canceled, insert widget.\r
+                                       var editListener = instance.once( 'edit', function( evt ) {\r
+                                               if ( evt.data.dialog ) {\r
+                                                       instance.once( 'dialog', function( evt ) {\r
+                                                               var dialog = evt.data,\r
+                                                                       okListener,\r
+                                                                       cancelListener;\r
+\r
+                                                               // Finalize creation AFTER (20) new data was set.\r
+                                                               okListener = dialog.once( 'ok', finalizeCreation, null, null, 20 );\r
+\r
+                                                               cancelListener = dialog.once( 'cancel', function( evt ) {\r
+                                                                       if ( !( evt.data && evt.data.hide === false ) ) {\r
+                                                                               editor.widgets.destroy( instance, true );\r
+                                                                       }\r
+                                                               } );\r
+\r
+                                                               dialog.once( 'hide', function() {\r
+                                                                       okListener.removeListener();\r
+                                                                       cancelListener.removeListener();\r
+                                                               } );\r
+                                                       } );\r
+                                               } else {\r
+                                                       // Dialog hasn't been set, so insert widget now.\r
+                                                       finalizeCreation();\r
+                                               }\r
+                                       }, null, null, 999 );\r
+\r
+                                       instance.edit();\r
+\r
+                                       // Remove listener in case someone canceled it before this\r
+                                       // listener was executed.\r
+                                       editListener.removeListener();\r
+                               }\r
+\r
+                               function finalizeCreation() {\r
+                                       editor.widgets.finalizeCreation( temp );\r
+                               }\r
+                       },\r
+\r
+                       allowedContent: widgetDef.allowedContent,\r
+                       requiredContent: widgetDef.requiredContent,\r
+                       contentForms: widgetDef.contentForms,\r
+                       contentTransformations: widgetDef.contentTransformations\r
+               } );\r
+       }\r
+\r
+       function addWidgetProcessors( widgetsRepo, widgetDef ) {\r
+               var upcast = widgetDef.upcast,\r
+                       upcasts,\r
+                       priority = widgetDef.upcastPriority || 10;\r
+\r
+               if ( !upcast )\r
+                       return;\r
+\r
+               // Multiple upcasts defined in string.\r
+               if ( typeof upcast == 'string' ) {\r
+                       upcasts = upcast.split( ',' );\r
+                       while ( upcasts.length ) {\r
+                               addUpcast( widgetDef.upcasts[ upcasts.pop() ], widgetDef.name, priority );\r
+                       }\r
+               }\r
+               // Single rule which is automatically activated.\r
+               else {\r
+                       addUpcast( upcast, widgetDef.name, priority );\r
+               }\r
+\r
+               function addUpcast( upcast, name, priority ) {\r
+                       // Find index of the first higher (in terms of value) priority upcast.\r
+                       var index = CKEDITOR.tools.getIndex( widgetsRepo._.upcasts, function( element ) {\r
+                               return element[ 2 ] > priority;\r
+                       } );\r
+                       // Add at the end if it is the highest priority so far.\r
+                       if ( index < 0 ) {\r
+                               index = widgetsRepo._.upcasts.length;\r
+                       }\r
+\r
+                       widgetsRepo._.upcasts.splice( index, 0, [ upcast, name, priority ] );\r
+               }\r
+       }\r
+\r
+       function blurWidget( widgetsRepo, widget ) {\r
+               widgetsRepo.focused = null;\r
+\r
+               if ( widget.isInited() ) {\r
+                       var isDirty = widget.editor.checkDirty();\r
+\r
+                       // Widget could be destroyed in the meantime - e.g. data could be set.\r
+                       widgetsRepo.fire( 'widgetBlurred', { widget: widget } );\r
+                       widget.setFocused( false );\r
+\r
+                       !isDirty && widget.editor.resetDirty();\r
+               }\r
+       }\r
+\r
+       function checkWidgets( evt ) {\r
+               var options = evt.data;\r
+\r
+               if ( this.editor.mode != 'wysiwyg' )\r
+                       return;\r
+\r
+               var editable = this.editor.editable(),\r
+                       instances = this.instances,\r
+                       newInstances, i, count, wrapper, notYetInitialized;\r
+\r
+               if ( !editable )\r
+                       return;\r
+\r
+               // Remove widgets which have no corresponding elements in DOM.\r
+               for ( i in instances ) {\r
+                       // http://dev.ckeditor.com/ticket/13410 Remove widgets that are ready. This prevents from destroying widgets that are during loading process.\r
+                       if ( instances[ i ].isReady() && !editable.contains( instances[ i ].wrapper ) )\r
+                               this.destroy( instances[ i ], true );\r
+               }\r
+\r
+               // Init on all (new) if initOnlyNew option was passed.\r
+               if ( options && options.initOnlyNew )\r
+                       newInstances = this.initOnAll();\r
+               else {\r
+                       var wrappers = editable.find( '.cke_widget_wrapper' );\r
+                       newInstances = [];\r
+\r
+                       // Create widgets on existing wrappers if they do not exists.\r
+                       for ( i = 0, count = wrappers.count(); i < count; i++ ) {\r
+                               wrapper = wrappers.getItem( i );\r
+                               notYetInitialized = !this.getByElement( wrapper, true );\r
+\r
+                               // Check if:\r
+                               // * there's no instance for this widget\r
+                               // * wrapper is not inside some temporary element like copybin (http://dev.ckeditor.com/ticket/11088)\r
+                               // * it was a nested widget's wrapper which has been detached from DOM,\r
+                               // when nested editable has been initialized (it overwrites its innerHTML\r
+                               // and initializes nested widgets).\r
+                               if ( notYetInitialized && !findParent( wrapper, isDomTemp ) && editable.contains( wrapper ) ) {\r
+                                       // Add cke_widget_new class because otherwise\r
+                                       // widget will not be created on such wrapper.\r
+                                       wrapper.addClass( 'cke_widget_new' );\r
+                                       newInstances.push( this.initOn( wrapper.getFirst( Widget.isDomWidgetElement ) ) );\r
+                               }\r
+                       }\r
+               }\r
+\r
+               // If only single widget was initialized and focusInited was passed, focus it.\r
+               if ( options && options.focusInited && newInstances.length == 1 )\r
+                       newInstances[ 0 ].focus();\r
+       }\r
+\r
+       // Unwraps widget element and clean up element.\r
+       //\r
+       // This function is used to clean up pasted widgets.\r
+       // It should have similar result to widget#destroy plus\r
+       // some additional adjustments, specific for pasting.\r
+       //\r
+       // @param {CKEDITOR.htmlParser.element} el\r
+       function cleanUpWidgetElement( el ) {\r
+               var parent = el.parent;\r
+               if ( parent.type == CKEDITOR.NODE_ELEMENT && parent.attributes[ 'data-cke-widget-wrapper' ] )\r
+                       parent.replaceWith( el );\r
+       }\r
+\r
+       // Similar to cleanUpWidgetElement, but works on DOM and finds\r
+       // widget elements by its own.\r
+       //\r
+       // Unlike cleanUpWidgetElement it will wrap element back.\r
+       //\r
+       // @param {CKEDITOR.dom.element} container\r
+       function cleanUpAllWidgetElements( widgetsRepo, container ) {\r
+               var wrappers = container.find( '.cke_widget_wrapper' ),\r
+                       wrapper, element,\r
+                       i = 0,\r
+                       l = wrappers.count();\r
+\r
+               for ( ; i < l; ++i ) {\r
+                       wrapper = wrappers.getItem( i );\r
+                       element = wrapper.getFirst( Widget.isDomWidgetElement );\r
+                       // If wrapper contains widget element - unwrap it and wrap again.\r
+                       if ( element.type == CKEDITOR.NODE_ELEMENT && element.data( 'widget' ) ) {\r
+                               element.replace( wrapper );\r
+                               widgetsRepo.wrapElement( element );\r
+                       } else {\r
+                               // Otherwise - something is wrong... clean this up.\r
+                               wrapper.remove();\r
+                       }\r
+               }\r
+       }\r
+\r
+       // Creates {@link CKEDITOR.filter} instance for given widget, editable and rules.\r
+       //\r
+       // Once filter for widget-editable pair is created it is cached, so the same instance\r
+       // will be returned when method is executed again.\r
+       //\r
+       // @param {String} widgetName\r
+       // @param {String} editableName\r
+       // @param {CKEDITOR.plugins.widget.nestedEditableDefinition} editableDefinition The nested editable definition.\r
+       // @returns {CKEDITOR.filter} Filter instance or `null` if rules are not defined.\r
+       // @context CKEDITOR.plugins.widget.repository\r
+       function createEditableFilter( widgetName, editableName, editableDefinition ) {\r
+               if ( !editableDefinition.allowedContent && !editableDefinition.disallowedContent )\r
+                       return null;\r
+\r
+               var editables = this._.filters[ widgetName ];\r
+\r
+               if ( !editables )\r
+                       this._.filters[ widgetName ] = editables = {};\r
+\r
+               var filter = editables[ editableName ];\r
+\r
+               if ( !filter ) {\r
+                       filter = editableDefinition.allowedContent ? new CKEDITOR.filter( editableDefinition.allowedContent ) : this.editor.filter.clone();\r
+\r
+                       editables[ editableName ] = filter;\r
+\r
+                       if ( editableDefinition.disallowedContent ) {\r
+                               filter.disallow( editableDefinition.disallowedContent );\r
+                       }\r
+               }\r
+\r
+               return filter;\r
+       }\r
+\r
+       // Creates an iterator function which when executed on all\r
+       // elements in DOM tree will gather elements that should be wrapped\r
+       // and initialized as widgets.\r
+       function createUpcastIterator( widgetsRepo ) {\r
+               var toBeWrapped = [],\r
+                       upcasts = widgetsRepo._.upcasts,\r
+                       upcastCallbacks = widgetsRepo._.upcastCallbacks;\r
+\r
+               return {\r
+                       toBeWrapped: toBeWrapped,\r
+\r
+                       iterator: function( element ) {\r
+                               var upcast, upcasted,\r
+                                       data,\r
+                                       i,\r
+                                       upcastsLength,\r
+                                       upcastCallbacksLength;\r
+\r
+                               // Wrapper found - find widget element, add it to be\r
+                               // cleaned up (unwrapped) and wrapped and stop iterating in this branch.\r
+                               if ( 'data-cke-widget-wrapper' in element.attributes ) {\r
+                                       element = element.getFirst( Widget.isParserWidgetElement );\r
+\r
+                                       if ( element )\r
+                                               toBeWrapped.push( [ element ] );\r
+\r
+                                       // Do not iterate over descendants.\r
+                                       return false;\r
+                               }\r
+                               // Widget element found - add it to be cleaned up (just in case)\r
+                               // and wrapped and stop iterating in this branch.\r
+                               else if ( 'data-widget' in element.attributes ) {\r
+                                       toBeWrapped.push( [ element ] );\r
+\r
+                                       // Do not iterate over descendants.\r
+                                       return false;\r
+                               }\r
+                               else if ( ( upcastsLength = upcasts.length ) ) {\r
+                                       // Ignore elements with data-cke-widget-upcasted to avoid multiple upcasts (http://dev.ckeditor.com/ticket/11533).\r
+                                       // Do not iterate over descendants.\r
+                                       if ( element.attributes[ 'data-cke-widget-upcasted' ] )\r
+                                               return false;\r
+\r
+                                       // Check element with upcast callbacks first.\r
+                                       // If any of them return false abort upcasting.\r
+                                       for ( i = 0, upcastCallbacksLength = upcastCallbacks.length; i < upcastCallbacksLength; ++i ) {\r
+                                               if ( upcastCallbacks[ i ]( element ) === false )\r
+                                                       return;\r
+                                               // Return nothing in order to continue iterating over ascendants.\r
+                                               // See http://dev.ckeditor.com/ticket/11186#comment:6\r
+                                       }\r
+\r
+                                       for ( i = 0; i < upcastsLength; ++i ) {\r
+                                               upcast = upcasts[ i ];\r
+                                               data = {};\r
+\r
+                                               if ( ( upcasted = upcast[ 0 ]( element, data ) ) ) {\r
+                                                       // If upcast function returned element, upcast this one.\r
+                                                       // It can be e.g. a new element wrapping the original one.\r
+                                                       if ( upcasted instanceof CKEDITOR.htmlParser.element )\r
+                                                               element = upcasted;\r
+\r
+                                                       // Set initial data attr with data from upcast method.\r
+                                                       element.attributes[ 'data-cke-widget-data' ] = encodeURIComponent( JSON.stringify( data ) );\r
+                                                       element.attributes[ 'data-cke-widget-upcasted' ] = 1;\r
+\r
+                                                       toBeWrapped.push( [ element, upcast[ 1 ] ] );\r
+\r
+                                                       // Do not iterate over descendants.\r
+                                                       return false;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               };\r
+       }\r
+\r
+       // Finds a first parent that matches query.\r
+       //\r
+       // @param {CKEDITOR.dom.element} element\r
+       // @param {Function} query\r
+       function findParent( element, query ) {\r
+               var parent = element;\r
+\r
+               while ( ( parent = parent.getParent() ) ) {\r
+                       if ( query( parent ) )\r
+                               return true;\r
+               }\r
+               return false;\r
+       }\r
+\r
+       function getWrapperAttributes( inlineWidget, name ) {\r
+               return {\r
+                       // tabindex="-1" means that it can receive focus by code.\r
+                       tabindex: -1,\r
+                       contenteditable: 'false',\r
+                       'data-cke-widget-wrapper': 1,\r
+                       'data-cke-filter': 'off',\r
+                       // Class cke_widget_new marks widgets which haven't been initialized yet.\r
+                       'class': 'cke_widget_wrapper cke_widget_new cke_widget_' +\r
+                               ( inlineWidget ? 'inline' : 'block' ) +\r
+                               ( name ? ' cke_widget_' + name : '' )\r
+               };\r
+       }\r
+\r
+       // Inserts element at given index.\r
+       // It will check DTD and split ancestor elements up to the first\r
+       // that can contain this element.\r
+       //\r
+       // @param {CKEDITOR.htmlParser.element} parent\r
+       // @param {Number} index\r
+       // @param {CKEDITOR.htmlParser.element} element\r
+       function insertElement( parent, index, element ) {\r
+               // Do not split doc fragment...\r
+               if ( parent.type == CKEDITOR.NODE_ELEMENT ) {\r
+                       var parentAllows = CKEDITOR.dtd[ parent.name ];\r
+                       // Parent element is known (included in DTD) and cannot contain\r
+                       // this element.\r
+                       if ( parentAllows && !parentAllows[ element.name ] ) {\r
+                               var parent2 = parent.split( index ),\r
+                                       parentParent = parent.parent;\r
+\r
+                               // Element will now be inserted at right parent's index.\r
+                               index = parent2.getIndex();\r
+\r
+                               // If left part of split is empty - remove it.\r
+                               if ( !parent.children.length ) {\r
+                                       index -= 1;\r
+                                       parent.remove();\r
+                               }\r
+\r
+                               // If right part of split is empty - remove it.\r
+                               if ( !parent2.children.length )\r
+                                       parent2.remove();\r
+\r
+                               // Try inserting as grandpas' children.\r
+                               return insertElement( parentParent, index, element );\r
+                       }\r
+               }\r
+\r
+               // Finally we can add this element.\r
+               parent.add( element, index );\r
+       }\r
+\r
+       // Checks whether for the given widget definition and element widget should be created in inline or block mode.\r
+       //\r
+       // See also: {@link CKEDITOR.plugins.widget.definition#inline} and {@link CKEDITOR.plugins.widget#element}.\r
+       //\r
+       // @param {CKEDITOR.plugins.widget.definition} widgetDef The widget definition.\r
+       // @param {String} elementName The name of the widget element.\r
+       // @returns {Boolean}\r
+       function isWidgetInline( widgetDef, elementName ) {\r
+               return typeof widgetDef.inline == 'boolean' ? widgetDef.inline : !!CKEDITOR.dtd.$inline[ elementName ];\r
+       }\r
+\r
+       // @param {CKEDITOR.dom.element}\r
+       // @returns {Boolean}\r
+       function isDomTemp( element ) {\r
+               return element.hasAttribute( 'data-cke-temp' );\r
+       }\r
+\r
+       function onEditableKey( widget, keyCode ) {\r
+               var focusedEditable = widget.focusedEditable,\r
+                       range;\r
+\r
+               // CTRL+A.\r
+               if ( keyCode == CKEDITOR.CTRL + 65 ) {\r
+                       var bogus = focusedEditable.getBogus();\r
+\r
+                       range = widget.editor.createRange();\r
+                       range.selectNodeContents( focusedEditable );\r
+                       // Exclude bogus if exists.\r
+                       if ( bogus )\r
+                               range.setEndAt( bogus, CKEDITOR.POSITION_BEFORE_START );\r
+\r
+                       range.select();\r
+                       // Cancel event - block default.\r
+                       return false;\r
+               }\r
+               // DEL or BACKSPACE.\r
+               else if ( keyCode == 8 || keyCode == 46 ) {\r
+                       var ranges = widget.editor.getSelection().getRanges();\r
+\r
+                       range = ranges[ 0 ];\r
+\r
+                       // Block del or backspace if at editable's boundary.\r
+                       return !( ranges.length == 1 && range.collapsed &&\r
+                               range.checkBoundaryOfElement( focusedEditable, CKEDITOR[ keyCode == 8 ? 'START' : 'END' ] ) );\r
+               }\r
+       }\r
+\r
+       function setFocusedEditable( widgetsRepo, widget, editableElement, offline ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               editor.fire( 'lockSnapshot' );\r
+\r
+               if ( editableElement ) {\r
+                       var editableName = editableElement.data( 'cke-widget-editable' ),\r
+                               editableInstance = widget.editables[ editableName ];\r
+\r
+                       widgetsRepo.widgetHoldingFocusedEditable = widget;\r
+                       widget.focusedEditable = editableInstance;\r
+                       editableElement.addClass( 'cke_widget_editable_focused' );\r
+\r
+                       if ( editableInstance.filter )\r
+                               editor.setActiveFilter( editableInstance.filter );\r
+                       editor.setActiveEnterMode( editableInstance.enterMode, editableInstance.shiftEnterMode );\r
+               } else {\r
+                       if ( !offline )\r
+                               widget.focusedEditable.removeClass( 'cke_widget_editable_focused' );\r
+\r
+                       widget.focusedEditable = null;\r
+                       widgetsRepo.widgetHoldingFocusedEditable = null;\r
+                       editor.setActiveFilter( null );\r
+                       editor.setActiveEnterMode( null, null );\r
+               }\r
+\r
+               editor.fire( 'unlockSnapshot' );\r
+       }\r
+\r
+       function setupContextMenu( editor ) {\r
+               if ( !editor.contextMenu )\r
+                       return;\r
+\r
+               editor.contextMenu.addListener( function( element ) {\r
+                       var widget = editor.widgets.getByElement( element, true );\r
+\r
+                       if ( widget )\r
+                               return widget.fire( 'contextMenu', {} );\r
+               } );\r
+       }\r
+\r
+       // And now we've got two problems - original problem and RegExp.\r
+       // Some softeners:\r
+       // * FF tends to copy all blocks up to the copybin container.\r
+       // * IE tends to copy only the copybin, without its container.\r
+       // * We use spans on IE and blockless editors, but divs in other cases.\r
+       var pasteReplaceRegex = new RegExp(\r
+               '^' +\r
+               '(?:<(?:div|span)(?: data-cke-temp="1")?(?: id="cke_copybin")?(?: data-cke-temp="1")?>)?' +\r
+                       '(?:<(?:div|span)(?: style="[^"]+")?>)?' +\r
+                               '<span [^>]*data-cke-copybin-start="1"[^>]*>.?</span>([\\s\\S]+)<span [^>]*data-cke-copybin-end="1"[^>]*>.?</span>' +\r
+                       '(?:</(?:div|span)>)?' +\r
+               '(?:</(?:div|span)>)?' +\r
+               '$',\r
+               // IE8 prefers uppercase when browsers stick to lowercase HTML (http://dev.ckeditor.com/ticket/13460).\r
+               'i'\r
+       );\r
+\r
+       function pasteReplaceFn( match, wrapperHtml ) {\r
+               // Avoid polluting pasted data with any whitspaces,\r
+               // what's going to break check whether only one widget was pasted.\r
+               return CKEDITOR.tools.trim( wrapperHtml );\r
+       }\r
+\r
+       function setupDragAndDrop( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor,\r
+                       lineutils = CKEDITOR.plugins.lineutils;\r
+\r
+               // These listeners handle inline and block widgets drag and drop.\r
+               // The only thing we need to do to make block widgets custom drag and drop functionality\r
+               // is to fire those events with the right properties (like the target which must be the drag handle).\r
+               editor.on( 'dragstart', function( evt ) {\r
+                       var target = evt.data.target;\r
+\r
+                       if ( Widget.isDomDragHandler( target ) ) {\r
+                               var widget = widgetsRepo.getByElement( target );\r
+\r
+                               evt.data.dataTransfer.setData( 'cke/widget-id', widget.id );\r
+\r
+                               // IE needs focus.\r
+                               editor.focus();\r
+\r
+                               // and widget need to be focused on drag start (http://dev.ckeditor.com/ticket/12172#comment:10).\r
+                               widget.focus();\r
+                       }\r
+               } );\r
+\r
+               editor.on( 'drop', function( evt ) {\r
+                       var dataTransfer = evt.data.dataTransfer,\r
+                               id = dataTransfer.getData( 'cke/widget-id' ),\r
+                               transferType = dataTransfer.getTransferType( editor ),\r
+                               dragRange = editor.createRange(),\r
+                               sourceWidget;\r
+\r
+                       // Disable cross-editor drag & drop for widgets - http://dev.ckeditor.com/ticket/13599.\r
+                       if ( id !== '' && transferType === CKEDITOR.DATA_TRANSFER_CROSS_EDITORS ) {\r
+                               evt.cancel();\r
+                               return;\r
+                       }\r
+\r
+                       if ( id === '' || transferType != CKEDITOR.DATA_TRANSFER_INTERNAL ) {\r
+                               return;\r
+                       }\r
+\r
+                       sourceWidget = widgetsRepo.instances[ id ];\r
+                       if ( !sourceWidget ) {\r
+                               return;\r
+                       }\r
+\r
+                       dragRange.setStartBefore( sourceWidget.wrapper );\r
+                       dragRange.setEndAfter( sourceWidget.wrapper );\r
+                       evt.data.dragRange = dragRange;\r
+\r
+                       // [IE8-9] Reset state of the clipboard#fixSplitNodesAfterDrop fix because by setting evt.data.dragRange\r
+                       // (see above) after drop happened we do not need it. That fix is needed only if dragRange was created\r
+                       // before drop (before text node was split).\r
+                       delete CKEDITOR.plugins.clipboard.dragStartContainerChildCount;\r
+                       delete CKEDITOR.plugins.clipboard.dragEndContainerChildCount;\r
+\r
+                       evt.data.dataTransfer.setData( 'text/html', editor.editable().getHtmlFromRange( dragRange ).getHtml() );\r
+                       editor.widgets.destroy( sourceWidget, true );\r
+               } );\r
+\r
+               editor.on( 'contentDom', function() {\r
+                       var editable = editor.editable();\r
+\r
+                       // Register Lineutils's utilities as properties of repo.\r
+                       CKEDITOR.tools.extend( widgetsRepo, {\r
+                               finder: new lineutils.finder( editor, {\r
+                                       lookups: {\r
+                                               // Element is block but not list item and not in nested editable.\r
+                                               'default': function( el ) {\r
+                                                       if ( el.is( CKEDITOR.dtd.$listItem ) )\r
+                                                               return;\r
+\r
+                                                       if ( !el.is( CKEDITOR.dtd.$block ) )\r
+                                                               return;\r
+\r
+                                                       // Allow drop line inside, but never before or after nested editable (http://dev.ckeditor.com/ticket/12006).\r
+                                                       if ( Widget.isDomNestedEditable( el ) )\r
+                                                               return;\r
+\r
+                                                       // Do not allow droping inside the widget being dragged (http://dev.ckeditor.com/ticket/13397).\r
+                                                       if ( widgetsRepo._.draggedWidget.wrapper.contains( el ) ) {\r
+                                                               return;\r
+                                                       }\r
+\r
+                                                       // If element is nested editable, make sure widget can be dropped there (http://dev.ckeditor.com/ticket/12006).\r
+                                                       var nestedEditable = Widget.getNestedEditable( editable, el );\r
+                                                       if ( nestedEditable ) {\r
+                                                               var draggedWidget = widgetsRepo._.draggedWidget;\r
+\r
+                                                               // Don't let the widget to be dropped into its own nested editable.\r
+                                                               if ( widgetsRepo.getByElement( nestedEditable ) == draggedWidget )\r
+                                                                       return;\r
+\r
+                                                               var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ],\r
+                                                                       draggedRequiredContent = draggedWidget.requiredContent;\r
+\r
+                                                               // There will be no relation if the filter of nested editable does not allow\r
+                                                               // requiredContent of dragged widget.\r
+                                                               if ( filter && draggedRequiredContent && !filter.check( draggedRequiredContent ) )\r
+                                                                       return;\r
+                                                       }\r
+\r
+                                                       return CKEDITOR.LINEUTILS_BEFORE | CKEDITOR.LINEUTILS_AFTER;\r
+                                               }\r
+                                       }\r
+                               } ),\r
+                               locator: new lineutils.locator( editor ),\r
+                               liner: new lineutils.liner( editor, {\r
+                                       lineStyle: {\r
+                                               cursor: 'move !important',\r
+                                               'border-top-color': '#666'\r
+                                       },\r
+                                       tipLeftStyle: {\r
+                                               'border-left-color': '#666'\r
+                                       },\r
+                                       tipRightStyle: {\r
+                                               'border-right-color': '#666'\r
+                                       }\r
+                               } )\r
+                       }, true );\r
+               } );\r
+       }\r
+\r
+       // Setup mouse observer which will trigger:\r
+       // * widget focus on widget click,\r
+       // * widget#doubleclick forwarded from editor#doubleclick.\r
+       function setupMouseObserver( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               editor.on( 'contentDom', function() {\r
+                       var editable = editor.editable(),\r
+                               evtRoot = editable.isInline() ? editable : editor.document,\r
+                               widget,\r
+                               mouseDownOnDragHandler;\r
+\r
+                       editable.attachListener( evtRoot, 'mousedown', function( evt ) {\r
+                               var target = evt.data.getTarget();\r
+\r
+                               // Clicking scrollbar in Chrome will invoke event with target object of document type (#663).\r
+                               // In IE8 the target object will be empty (http://dev.ckeditor.com/ticket/10887).\r
+                               // We need to check if target is a proper element.\r
+                               widget = ( target instanceof CKEDITOR.dom.element ) ? widgetsRepo.getByElement( target ) : null;\r
+\r
+                               mouseDownOnDragHandler = 0; // Reset.\r
+\r
+                               // Widget was clicked, but not editable nested in it.\r
+                               if ( widget ) {\r
+                                       // Ignore mousedown on drag and drop handler if the widget is inline.\r
+                                       // Block widgets are handled by Lineutils.\r
+                                       if ( widget.inline && target.type == CKEDITOR.NODE_ELEMENT && target.hasAttribute( 'data-cke-widget-drag-handler' ) ) {\r
+                                               mouseDownOnDragHandler = 1;\r
+\r
+                                               // When drag handler is pressed we have to clear current selection if it wasn't already on this widget.\r
+                                               // Otherwise, the selection may be in a fillingChar, which prevents dragging a widget. (http://dev.ckeditor.com/ticket/13284, see comment 8 and 9.)\r
+                                               if ( widgetsRepo.focused != widget )\r
+                                                       editor.getSelection().removeAllRanges();\r
+\r
+                                               return;\r
+                                       }\r
+\r
+                                       if ( !Widget.getNestedEditable( widget.wrapper, target ) ) {\r
+                                               evt.data.preventDefault();\r
+                                               if ( !CKEDITOR.env.ie )\r
+                                                       widget.focus();\r
+                                       } else {\r
+                                               // Reset widget so mouseup listener is not confused.\r
+                                               widget = null;\r
+                                       }\r
+                               }\r
+                       } );\r
+\r
+                       // Focus widget on mouseup if mousedown was fired on drag handler.\r
+                       // Note: mouseup won't be fired at all if widget was dragged and dropped, so\r
+                       // this code will be executed only when drag handler was clicked.\r
+                       editable.attachListener( evtRoot, 'mouseup', function() {\r
+                               // Check if widget is not destroyed (if widget is destroyed the wrapper will be null).\r
+                               if ( mouseDownOnDragHandler && widget && widget.wrapper ) {\r
+                                       mouseDownOnDragHandler = 0;\r
+                                       widget.focus();\r
+                               }\r
+                       } );\r
+\r
+                       // On IE it is not enough to block mousedown. If widget wrapper (element with\r
+                       // contenteditable=false attribute) is clicked directly (it is a target),\r
+                       // then after mouseup/click IE will select that element.\r
+                       // It is not possible to prevent that default action,\r
+                       // so we force fake selection after everything happened.\r
+                       if ( CKEDITOR.env.ie ) {\r
+                               editable.attachListener( evtRoot, 'mouseup', function() {\r
+                                       setTimeout( function() {\r
+                                               // Check if widget is not destroyed (if widget is destroyed the wrapper will be null) and\r
+                                               // in editable contains widget (it could be dragged and removed).\r
+                                               if ( widget && widget.wrapper && editable.contains( widget.wrapper ) ) {\r
+                                                       widget.focus();\r
+                                                       widget = null;\r
+                                               }\r
+                                       } );\r
+                               } );\r
+                       }\r
+               } );\r
+\r
+               editor.on( 'doubleclick', function( evt ) {\r
+                       var widget = widgetsRepo.getByElement( evt.data.element );\r
+\r
+                       // Not in widget or in nested editable.\r
+                       if ( !widget || Widget.getNestedEditable( widget.wrapper, evt.data.element ) )\r
+                               return;\r
+\r
+                       return widget.fire( 'doubleclick', { element: evt.data.element } );\r
+               }, null, null, 1 );\r
+       }\r
+\r
+       // Setup editor#key observer which will forward it\r
+       // to focused widget.\r
+       function setupKeyboardObserver( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               editor.on( 'key', function( evt ) {\r
+                       var focused = widgetsRepo.focused,\r
+                               widgetHoldingFocusedEditable = widgetsRepo.widgetHoldingFocusedEditable,\r
+                               ret;\r
+\r
+                       if ( focused )\r
+                               ret = focused.fire( 'key', { keyCode: evt.data.keyCode } );\r
+                       else if ( widgetHoldingFocusedEditable )\r
+                               ret = onEditableKey( widgetHoldingFocusedEditable, evt.data.keyCode );\r
+\r
+                       return ret;\r
+               }, null, null, 1 );\r
+       }\r
+\r
+       // Setup copybin on native copy and cut events in order to handle copy and cut commands\r
+       // if user accepted security alert on IEs.\r
+       // Note: when copying or cutting using keystroke, copySingleWidget will be first executed\r
+       // by the keydown listener. Conflict between two calls will be resolved by copy_bin existence check.\r
+       function setupNativeCutAndCopy( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               editor.on( 'contentDom', function() {\r
+                       var editable = editor.editable();\r
+\r
+                       editable.attachListener( editable, 'copy', eventListener );\r
+                       editable.attachListener( editable, 'cut', eventListener );\r
+               } );\r
+\r
+               function eventListener( evt ) {\r
+                       if ( widgetsRepo.focused )\r
+                               copySingleWidget( widgetsRepo.focused, evt.name == 'cut' );\r
+               }\r
+       }\r
+\r
+       // Setup selection observer which will trigger:\r
+       // * widget select & focus on selection change,\r
+       // * nested editable focus (related properites and classes) on selection change,\r
+       // * deselecting and blurring all widgets on data,\r
+       // * blurring widget on editor blur.\r
+       function setupSelectionObserver( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor;\r
+\r
+               editor.on( 'selectionCheck', function() {\r
+                       widgetsRepo.fire( 'checkSelection' );\r
+               } );\r
+\r
+               widgetsRepo.on( 'checkSelection', widgetsRepo.checkSelection, widgetsRepo );\r
+\r
+               editor.on( 'selectionChange', function( evt ) {\r
+                       var nestedEditable = Widget.getNestedEditable( editor.editable(), evt.data.selection.getStartElement() ),\r
+                               newWidget = nestedEditable && widgetsRepo.getByElement( nestedEditable ),\r
+                               oldWidget = widgetsRepo.widgetHoldingFocusedEditable;\r
+\r
+                       if ( oldWidget ) {\r
+                               if ( oldWidget !== newWidget || !oldWidget.focusedEditable.equals( nestedEditable ) ) {\r
+                                       setFocusedEditable( widgetsRepo, oldWidget, null );\r
+\r
+                                       if ( newWidget && nestedEditable )\r
+                                               setFocusedEditable( widgetsRepo, newWidget, nestedEditable );\r
+                               }\r
+                       }\r
+                       // It may happen that there's no widget even if editable was found -\r
+                       // e.g. if selection was automatically set in editable although widget wasn't initialized yet.\r
+                       else if ( newWidget && nestedEditable ) {\r
+                               setFocusedEditable( widgetsRepo, newWidget, nestedEditable );\r
+                       }\r
+               } );\r
+\r
+               // Invalidate old widgets early - immediately on dataReady.\r
+               editor.on( 'dataReady', function() {\r
+                       // Deselect and blur all widgets.\r
+                       stateUpdater( widgetsRepo ).commit();\r
+               } );\r
+\r
+               editor.on( 'blur', function() {\r
+                       var widget;\r
+\r
+                       if ( ( widget = widgetsRepo.focused ) )\r
+                               blurWidget( widgetsRepo, widget );\r
+\r
+                       if ( ( widget = widgetsRepo.widgetHoldingFocusedEditable ) )\r
+                               setFocusedEditable( widgetsRepo, widget, null );\r
+               } );\r
+       }\r
+\r
+       // Set up actions like:\r
+       // * processing in toHtml/toDataFormat,\r
+       // * pasting handling,\r
+       // * insertion handling,\r
+       // * editable reload handling (setData, mode switch, undo/redo),\r
+       // * DOM invalidation handling,\r
+       // * widgets checks.\r
+       function setupWidgetsLifecycle( widgetsRepo ) {\r
+               setupWidgetsLifecycleStart( widgetsRepo );\r
+               setupWidgetsLifecycleEnd( widgetsRepo );\r
+\r
+               widgetsRepo.on( 'checkWidgets', checkWidgets );\r
+               widgetsRepo.editor.on( 'contentDomInvalidated', widgetsRepo.checkWidgets, widgetsRepo );\r
+       }\r
+\r
+       function setupWidgetsLifecycleEnd( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor,\r
+                       downcastingSessions = {};\r
+\r
+               // Listen before htmlDP#htmlFilter is applied to cache all widgets, because we'll\r
+               // loose data-cke-* attributes.\r
+               editor.on( 'toDataFormat', function( evt ) {\r
+                       // To avoid conflicts between htmlDP#toDF calls done at the same time\r
+                       // (e.g. nestedEditable#getData called during downcasting some widget)\r
+                       // mark every toDataFormat event chain with the downcasting session id.\r
+                       var id = CKEDITOR.tools.getNextNumber(),\r
+                               toBeDowncasted = [];\r
+                       evt.data.downcastingSessionId = id;\r
+                       downcastingSessions[ id ] = toBeDowncasted;\r
+\r
+                       evt.data.dataValue.forEach( function( element ) {\r
+                               var attrs = element.attributes,\r
+                                       widget, widgetElement;\r
+\r
+                               // Wrapper.\r
+                               // Perform first part of downcasting (cleanup) and cache widgets,\r
+                               // because after applying DP's filter all data-cke-* attributes will be gone.\r
+                               if ( 'data-cke-widget-id' in attrs ) {\r
+                                       widget = widgetsRepo.instances[ attrs[ 'data-cke-widget-id' ] ];\r
+                                       if ( widget ) {\r
+                                               widgetElement = element.getFirst( Widget.isParserWidgetElement );\r
+                                               toBeDowncasted.push( {\r
+                                                       wrapper: element,\r
+                                                       element: widgetElement,\r
+                                                       widget: widget,\r
+                                                       editables: {}\r
+                                               } );\r
+\r
+                                               // If widget did not have data-cke-widget attribute before upcasting remove it.\r
+                                               if ( widgetElement.attributes[ 'data-cke-widget-keep-attr' ] != '1' )\r
+                                                       delete widgetElement.attributes[ 'data-widget' ];\r
+                                       }\r
+                               }\r
+                               // Nested editable.\r
+                               else if ( 'data-cke-widget-editable' in attrs ) {\r
+                                       // Save the reference to this nested editable in the closest widget to be downcasted.\r
+                                       // Nested editables are downcasted in the successive toDataFormat to create an opportunity\r
+                                       // for dataFilter's "excludeNestedEditable" option to do its job (that option relies on\r
+                                       // contenteditable="true" attribute) (http://dev.ckeditor.com/ticket/11372).\r
+                                       toBeDowncasted[ toBeDowncasted.length - 1 ].editables[ attrs[ 'data-cke-widget-editable' ] ] = element;\r
+\r
+                                       // Don't check children - there won't be next wrapper or nested editable which we\r
+                                       // should process in this session.\r
+                                       return false;\r
+                               }\r
+                       }, CKEDITOR.NODE_ELEMENT, true );\r
+               }, null, null, 8 );\r
+\r
+               // Listen after dataProcessor.htmlFilter and ACF were applied\r
+               // so wrappers securing widgets' contents are removed after all filtering was done.\r
+               editor.on( 'toDataFormat', function( evt ) {\r
+                       // Ignore some unmarked sessions.\r
+                       if ( !evt.data.downcastingSessionId )\r
+                               return;\r
+\r
+                       var toBeDowncasted = downcastingSessions[ evt.data.downcastingSessionId ],\r
+                               toBe, widget, widgetElement, retElement, editableElement, e;\r
+\r
+                       while ( ( toBe = toBeDowncasted.shift() ) ) {\r
+                               widget = toBe.widget;\r
+                               widgetElement = toBe.element;\r
+                               retElement = widget._.downcastFn && widget._.downcastFn.call( widget, widgetElement );\r
+\r
+                               // Replace nested editables' content with their output data.\r
+                               for ( e in toBe.editables ) {\r
+                                       editableElement = toBe.editables[ e ];\r
+\r
+                                       delete editableElement.attributes.contenteditable;\r
+                                       editableElement.setHtml( widget.editables[ e ].getData() );\r
+                               }\r
+\r
+                               // Returned element always defaults to widgetElement.\r
+                               if ( !retElement )\r
+                                       retElement = widgetElement;\r
+\r
+                               toBe.wrapper.replaceWith( retElement );\r
+                       }\r
+               }, null, null, 13 );\r
+\r
+\r
+               editor.on( 'contentDomUnload', function() {\r
+                       widgetsRepo.destroyAll( true );\r
+               } );\r
+       }\r
+\r
+       function setupWidgetsLifecycleStart( widgetsRepo ) {\r
+               var editor = widgetsRepo.editor,\r
+                       processedWidgetOnly,\r
+                       snapshotLoaded;\r
+\r
+               // Listen after ACF (so data are filtered),\r
+               // but before dataProcessor.dataFilter was applied (so we can secure widgets' internals).\r
+               editor.on( 'toHtml', function( evt ) {\r
+                       var upcastIterator = createUpcastIterator( widgetsRepo ),\r
+                               toBeWrapped;\r
+\r
+                       evt.data.dataValue.forEach( upcastIterator.iterator, CKEDITOR.NODE_ELEMENT, true );\r
+\r
+                       // Clean up and wrap all queued elements.\r
+                       while ( ( toBeWrapped = upcastIterator.toBeWrapped.pop() ) ) {\r
+                               cleanUpWidgetElement( toBeWrapped[ 0 ] );\r
+                               widgetsRepo.wrapElement( toBeWrapped[ 0 ], toBeWrapped[ 1 ] );\r
+                       }\r
+\r
+                       // Used to determine whether only widget was pasted.\r
+                       if ( evt.data.protectedWhitespaces ) {\r
+                               // Whitespaces are protected by wrapping content with spans. Take the middle node only.\r
+                               processedWidgetOnly = evt.data.dataValue.children.length == 3 &&\r
+                                       Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 1 ] );\r
+                       } else {\r
+                               processedWidgetOnly = evt.data.dataValue.children.length == 1 &&\r
+                                       Widget.isParserWidgetWrapper( evt.data.dataValue.children[ 0 ] );\r
+                       }\r
+               }, null, null, 8 );\r
+\r
+               editor.on( 'dataReady', function() {\r
+                       // Clean up all widgets loaded from snapshot.\r
+                       if ( snapshotLoaded )\r
+                               cleanUpAllWidgetElements( widgetsRepo, editor.editable() );\r
+                       snapshotLoaded = 0;\r
+\r
+                       // Some widgets were destroyed on contentDomUnload,\r
+                       // some on loadSnapshot, but that does not include\r
+                       // e.g. setHtml on inline editor or widgets removed just\r
+                       // before setting data.\r
+                       widgetsRepo.destroyAll( true );\r
+                       widgetsRepo.initOnAll();\r
+               } );\r
+\r
+               // Set flag so dataReady will know that additional\r
+               // cleanup is needed, because snapshot containing widgets was loaded.\r
+               editor.on( 'loadSnapshot', function( evt ) {\r
+                       // Primitive but sufficient check which will prevent from executing\r
+                       // heavier cleanUpAllWidgetElements if not needed.\r
+                       if ( ( /data-cke-widget/ ).test( evt.data ) )\r
+                               snapshotLoaded = 1;\r
+\r
+                       widgetsRepo.destroyAll( true );\r
+               }, null, null, 9 );\r
+\r
+               // Handle pasted single widget.\r
+               editor.on( 'paste', function( evt ) {\r
+                       var data = evt.data;\r
+\r
+                       data.dataValue = data.dataValue.replace( pasteReplaceRegex, pasteReplaceFn );\r
+\r
+                       // If drag'n'drop kind of paste into nested editable (data.range), selection is set AFTER\r
+                       // data is pasted, which means editor has no chance to change activeFilter's context.\r
+                       // As a result, pasted data is filtered with default editor's filter instead of NE's and\r
+                       // funny things get inserted. Changing the filter by analysis of the paste range below (http://dev.ckeditor.com/ticket/13186).\r
+                       if ( data.range ) {\r
+                               // Check if pasting into nested editable.\r
+                               var nestedEditable = Widget.getNestedEditable( editor.editable(), data.range.startContainer );\r
+\r
+                               if ( nestedEditable ) {\r
+                                       // Retrieve the filter from NE's data and set it active before editor.insertHtml is done\r
+                                       // in clipboard plugin.\r
+                                       var filter = CKEDITOR.filter.instances[ nestedEditable.data( 'cke-filter' ) ];\r
+\r
+                                       if ( filter ) {\r
+                                               editor.setActiveFilter( filter );\r
+                                       }\r
+                               }\r
+                       }\r
+               } );\r
+\r
+               // Listen with high priority to check widgets after data was inserted.\r
+               editor.on( 'afterInsertHtml', function( evt ) {\r
+                       if ( evt.data.intoRange ) {\r
+                               widgetsRepo.checkWidgets( { initOnlyNew: true } );\r
+                       } else {\r
+                               editor.fire( 'lockSnapshot' );\r
+                               // Init only new for performance reason.\r
+                               // Focus inited if only widget was processed.\r
+                               widgetsRepo.checkWidgets( { initOnlyNew: true, focusInited: processedWidgetOnly } );\r
+\r
+                               editor.fire( 'unlockSnapshot' );\r
+                       }\r
+               } );\r
+       }\r
+\r
+       // Helper for coordinating which widgets should be\r
+       // selected/deselected and which one should be focused/blurred.\r
+       function stateUpdater( widgetsRepo ) {\r
+               var currentlySelected = widgetsRepo.selected,\r
+                       toBeSelected = [],\r
+                       toBeDeselected = currentlySelected.slice( 0 ),\r
+                       focused = null;\r
+\r
+               return {\r
+                       select: function( widget ) {\r
+                               if ( CKEDITOR.tools.indexOf( currentlySelected, widget ) < 0 )\r
+                                       toBeSelected.push( widget );\r
+\r
+                               var index = CKEDITOR.tools.indexOf( toBeDeselected, widget );\r
+                               if ( index >= 0 )\r
+                                       toBeDeselected.splice( index, 1 );\r
+\r
+                               return this;\r
+                       },\r
+\r
+                       focus: function( widget ) {\r
+                               focused = widget;\r
+                               return this;\r
+                       },\r
+\r
+                       commit: function() {\r
+                               var focusedChanged = widgetsRepo.focused !== focused,\r
+                                       widget, isDirty;\r
+\r
+                               widgetsRepo.editor.fire( 'lockSnapshot' );\r
+\r
+                               if ( focusedChanged && ( widget = widgetsRepo.focused ) )\r
+                                       blurWidget( widgetsRepo, widget );\r
+\r
+                               while ( ( widget = toBeDeselected.pop() ) ) {\r
+                                       currentlySelected.splice( CKEDITOR.tools.indexOf( currentlySelected, widget ), 1 );\r
+                                       // Widget could be destroyed in the meantime - e.g. data could be set.\r
+                                       if ( widget.isInited() ) {\r
+                                               isDirty = widget.editor.checkDirty();\r
+\r
+                                               widget.setSelected( false );\r
+\r
+                                               !isDirty && widget.editor.resetDirty();\r
+                                       }\r
+                               }\r
+\r
+                               if ( focusedChanged && focused ) {\r
+                                       isDirty = widgetsRepo.editor.checkDirty();\r
+\r
+                                       widgetsRepo.focused = focused;\r
+                                       widgetsRepo.fire( 'widgetFocused', { widget: focused } );\r
+                                       focused.setFocused( true );\r
+\r
+                                       !isDirty && widgetsRepo.editor.resetDirty();\r
+                               }\r
+\r
+                               while ( ( widget = toBeSelected.pop() ) ) {\r
+                                       currentlySelected.push( widget );\r
+                                       widget.setSelected( true );\r
+                               }\r
+\r
+                               widgetsRepo.editor.fire( 'unlockSnapshot' );\r
+                       }\r
+               };\r
+       }\r
+\r
+\r
+       //\r
+       // WIDGET helpers ---------------------------------------------------------\r
+       //\r
+\r
+       // LEFT, RIGHT, UP, DOWN, DEL, BACKSPACE - unblock default fake sel handlers.\r
+       var keystrokesNotBlockedByWidget = { 37: 1, 38: 1, 39: 1, 40: 1, 8: 1, 46: 1 };\r
+\r
+       // Applies or removes style's classes from widget.\r
+       // @param {CKEDITOR.style} style Custom widget style.\r
+       // @param {Boolean} apply Whether to apply or remove style.\r
+       function applyRemoveStyle( widget, style, apply ) {\r
+               var changed = 0,\r
+                       classes = getStyleClasses( style ),\r
+                       updatedClasses = widget.data.classes || {},\r
+                       cl;\r
+\r
+               // Ee... Something is wrong with this style.\r
+               if ( !classes )\r
+                       return;\r
+\r
+               // Clone, because we need to break reference.\r
+               updatedClasses = CKEDITOR.tools.clone( updatedClasses );\r
+\r
+               while ( ( cl = classes.pop() ) ) {\r
+                       if ( apply ) {\r
+                               if ( !updatedClasses[ cl ] )\r
+                                       changed = updatedClasses[ cl ] = 1;\r
+                       } else {\r
+                               if ( updatedClasses[ cl ] ) {\r
+                                       delete updatedClasses[ cl ];\r
+                                       changed = 1;\r
+                               }\r
+                       }\r
+               }\r
+               if ( changed )\r
+                       widget.setData( 'classes', updatedClasses );\r
+       }\r
+\r
+       function cancel( evt ) {\r
+               evt.cancel();\r
+       }\r
+\r
+       function copySingleWidget( widget, isCut ) {\r
+               var editor = widget.editor,\r
+                       doc = editor.document;\r
+\r
+               // We're still handling previous copy/cut.\r
+               // When keystroke is used to copy/cut this will also prevent\r
+               // conflict with copySingleWidget called again for native copy/cut event.\r
+               if ( doc.getById( 'cke_copybin' ) )\r
+                       return;\r
+\r
+                       // [IE] Use span for copybin and its container to avoid bug with expanding editable height by\r
+                       // absolutely positioned element.\r
+               var copybinName = ( editor.blockless || CKEDITOR.env.ie ) ? 'span' : 'div',\r
+                       copybin = doc.createElement( copybinName ),\r
+                       copybinContainer = doc.createElement( copybinName ),\r
+                       // IE8 always jumps to the end of document.\r
+                       needsScrollHack = CKEDITOR.env.ie && CKEDITOR.env.version < 9;\r
+\r
+               copybinContainer.setAttributes( {\r
+                       id: 'cke_copybin',\r
+                       'data-cke-temp': '1'\r
+               } );\r
+\r
+               // Position copybin element outside current viewport.\r
+               copybin.setStyles( {\r
+                       position: 'absolute',\r
+                       width: '1px',\r
+                       height: '1px',\r
+                       overflow: 'hidden'\r
+               } );\r
+\r
+               copybin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-5000px' );\r
+\r
+               var range = editor.createRange();\r
+               range.setStartBefore( widget.wrapper );\r
+               range.setEndAfter( widget.wrapper );\r
+\r
+               copybin.setHtml(\r
+                       '<span data-cke-copybin-start="1">\u200b</span>' +\r
+                       editor.editable().getHtmlFromRange( range ).getHtml() +\r
+                       '<span data-cke-copybin-end="1">\u200b</span>' );\r
+\r
+               // Save snapshot with the current state.\r
+               editor.fire( 'saveSnapshot' );\r
+\r
+               // Ignore copybin.\r
+               editor.fire( 'lockSnapshot' );\r
+\r
+               copybinContainer.append( copybin );\r
+               editor.editable().append( copybinContainer );\r
+\r
+               var listener1 = editor.on( 'selectionChange', cancel, null, null, 0 ),\r
+                       listener2 = widget.repository.on( 'checkSelection', cancel, null, null, 0 );\r
+\r
+               if ( needsScrollHack ) {\r
+                       var docElement = doc.getDocumentElement().$,\r
+                               scrollTop = docElement.scrollTop;\r
+               }\r
+\r
+               // Once the clone of the widget is inside of copybin, select\r
+               // the entire contents. This selection will be copied by the\r
+               // native browser's clipboard system.\r
+               range = editor.createRange();\r
+               range.selectNodeContents( copybin );\r
+               range.select();\r
+\r
+               if ( needsScrollHack )\r
+                       docElement.scrollTop = scrollTop;\r
+\r
+               setTimeout( function() {\r
+                       // [IE] Focus widget before removing copybin to avoid scroll jump.\r
+                       if ( !isCut )\r
+                               widget.focus();\r
+\r
+                       copybinContainer.remove();\r
+\r
+                       listener1.removeListener();\r
+                       listener2.removeListener();\r
+\r
+                       editor.fire( 'unlockSnapshot' );\r
+\r
+                       if ( isCut ) {\r
+                               widget.repository.del( widget );\r
+                               editor.fire( 'saveSnapshot' );\r
+                       }\r
+               }, 100 ); // Use 100ms, so Chrome (@Mac) will be able to grab the content.\r
+       }\r
+\r
+       // Extracts classes array from style instance.\r
+       function getStyleClasses( style ) {\r
+               var attrs = style.getDefinition().attributes,\r
+                       classes = attrs && attrs[ 'class' ];\r
+\r
+               return classes ? classes.split( /\s+/ ) : null;\r
+       }\r
+\r
+       // [IE] Force keeping focus because IE sometimes forgets to fire focus on main editable\r
+       // when blurring nested editable.\r
+       // @context widget\r
+       function onEditableBlur() {\r
+               var active = CKEDITOR.document.getActive(),\r
+                       editor = this.editor,\r
+                       editable = editor.editable();\r
+\r
+               // If focus stays within editor override blur and set currentActive because it should be\r
+               // automatically changed to editable on editable#focus but it is not fired.\r
+               if ( ( editable.isInline() ? editable : editor.document.getWindow().getFrame() ).equals( active ) )\r
+                       editor.focusManager.focus( editable );\r
+       }\r
+\r
+       // Force selectionChange when editable was focused.\r
+       // Similar to hack in selection.js#~620.\r
+       // @context widget\r
+       function onEditableFocus() {\r
+               // Gecko does not support 'DOMFocusIn' event on which we unlock selection\r
+               // in selection.js to prevent selection locking when entering nested editables.\r
+               if ( CKEDITOR.env.gecko )\r
+                       this.editor.unlockSelection();\r
+\r
+               // We don't need to force selectionCheck on Webkit, because on Webkit\r
+               // we do that on DOMFocusIn in selection.js.\r
+               if ( !CKEDITOR.env.webkit ) {\r
+                       this.editor.forceNextSelectionCheck();\r
+                       this.editor.selectionChange( 1 );\r
+               }\r
+       }\r
+\r
+       // Setup listener on widget#data which will update (remove/add) classes\r
+       // by comparing newly set classes with the old ones.\r
+       function setupDataClassesListener( widget ) {\r
+               // Note: previousClasses and newClasses may be null!\r
+               // Tip: for ( cl in null ) is correct.\r
+               var previousClasses = null;\r
+\r
+               widget.on( 'data', function() {\r
+                       var newClasses = this.data.classes,\r
+                               cl;\r
+\r
+                       // When setting new classes one need to remember\r
+                       // that he must break reference.\r
+                       if ( previousClasses == newClasses )\r
+                               return;\r
+\r
+                       for ( cl in previousClasses ) {\r
+                               // Avoid removing and adding classes again.\r
+                               if ( !( newClasses && newClasses[ cl ] ) )\r
+                                       this.removeClass( cl );\r
+                       }\r
+                       for ( cl in newClasses )\r
+                               this.addClass( cl );\r
+\r
+                       previousClasses = newClasses;\r
+               } );\r
+       }\r
+\r
+       // Add a listener to data event that will set/change widget's label (http://dev.ckeditor.com/ticket/14539).\r
+       function setupA11yListener( widget ) {\r
+               // Note, the function gets executed in a context of widget instance.\r
+               function getLabelDefault() {\r
+                       return this.editor.lang.widget.label.replace( /%1/, this.pathName || this.element.getName() );\r
+               }\r
+\r
+               // Setting a listener on data is enough, there's no need to perform it on widget initialization, as\r
+               // setupWidgetData fires this event anyway.\r
+               widget.on( 'data', function() {\r
+                       // In some cases widget might get destroyed in an earlier data listener. For instance, image2 plugin, does\r
+                       // so when changing its internal state.\r
+                       if ( !widget.wrapper ) {\r
+                               return;\r
+                       }\r
+\r
+                       var label = this.getLabel ? this.getLabel() : getLabelDefault.call( this );\r
+\r
+                       widget.wrapper.setAttribute( 'role', 'region' );\r
+                       widget.wrapper.setAttribute( 'aria-label', label );\r
+               }, null, null, 9999 );\r
+       }\r
+\r
+       function setupDragHandler( widget ) {\r
+               if ( !widget.draggable )\r
+                       return;\r
+\r
+               var editor = widget.editor,\r
+                       // Use getLast to find wrapper's direct descendant (http://dev.ckeditor.com/ticket/12022).\r
+                       container = widget.wrapper.getLast( Widget.isDomDragHandlerContainer ),\r
+                       img;\r
+\r
+               // Reuse drag handler if already exists (http://dev.ckeditor.com/ticket/11281).\r
+               if ( container )\r
+                       img = container.findOne( 'img' );\r
+               else {\r
+                       container = new CKEDITOR.dom.element( 'span', editor.document );\r
+                       container.setAttributes( {\r
+                               'class': 'cke_reset cke_widget_drag_handler_container',\r
+                               // Split background and background-image for IE8 which will break on rgba().\r
+                               style: 'background:rgba(220,220,220,0.5);background-image:url(' + editor.plugins.widget.path + 'images/handle.png)'\r
+                       } );\r
+\r
+                       img = new CKEDITOR.dom.element( 'img', editor.document );\r
+                       img.setAttributes( {\r
+                               'class': 'cke_reset cke_widget_drag_handler',\r
+                               'data-cke-widget-drag-handler': '1',\r
+                               src: CKEDITOR.tools.transparentImageData,\r
+                               width: DRAG_HANDLER_SIZE,\r
+                               title: editor.lang.widget.move,\r
+                               height: DRAG_HANDLER_SIZE,\r
+                               role: 'presentation'\r
+                       } );\r
+                       widget.inline && img.setAttribute( 'draggable', 'true' );\r
+\r
+                       container.append( img );\r
+                       widget.wrapper.append( container );\r
+               }\r
+\r
+               // Preventing page reload when dropped content on widget wrapper (http://dev.ckeditor.com/ticket/13015).\r
+               // Widget is not editable so by default drop on it isn't allowed what means that\r
+               // browser handles it (there's no editable#drop event). If there's no drop event we cannot block\r
+               // the drop, so page is reloaded. This listener enables drop on widget wrappers.\r
+               widget.wrapper.on( 'dragover', function( evt ) {\r
+                       evt.data.preventDefault();\r
+               } );\r
+\r
+               widget.wrapper.on( 'mouseenter', widget.updateDragHandlerPosition, widget );\r
+               setTimeout( function() {\r
+                       widget.on( 'data', widget.updateDragHandlerPosition, widget );\r
+               }, 50 );\r
+\r
+               if ( !widget.inline ) {\r
+                       img.on( 'mousedown', onBlockWidgetDrag, widget );\r
+\r
+                       // On IE8 'dragstart' is propagated to editable, so editor#dragstart is fired twice on block widgets.\r
+                       if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {\r
+                               img.on( 'dragstart', function( evt ) {\r
+                                       evt.data.preventDefault( true );\r
+                               } );\r
+                       }\r
+               }\r
+\r
+               widget.dragHandlerContainer = container;\r
+       }\r
+\r
+       function onBlockWidgetDrag( evt ) {\r
+               var finder = this.repository.finder,\r
+                       locator = this.repository.locator,\r
+                       liner = this.repository.liner,\r
+                       editor = this.editor,\r
+                       editable = editor.editable(),\r
+                       listeners = [],\r
+                       sorted = [],\r
+                       locations,\r
+                       y;\r
+\r
+               // Mark dragged widget for repository#finder.\r
+               this.repository._.draggedWidget = this;\r
+\r
+               // Harvest all possible relations and display some closest.\r
+               var relations = finder.greedySearch(),\r
+\r
+                       buffer = CKEDITOR.tools.eventsBuffer( 50, function() {\r
+                               locations = locator.locate( relations );\r
+\r
+                               // There's only a single line displayed for D&D.\r
+                               sorted = locator.sort( y, 1 );\r
+\r
+                               if ( sorted.length ) {\r
+                                       liner.prepare( relations, locations );\r
+                                       liner.placeLine( sorted[ 0 ] );\r
+                                       liner.cleanup();\r
+                               }\r
+                       } );\r
+\r
+               // Let's have the "dragging cursor" over entire editable.\r
+               editable.addClass( 'cke_widget_dragging' );\r
+\r
+               // Cache mouse position so it is re-used in events buffer.\r
+               listeners.push( editable.on( 'mousemove', function( evt ) {\r
+                       y = evt.data.$.clientY;\r
+                       buffer.input();\r
+               } ) );\r
+\r
+               // Fire drag start as it happens during the native D&D.\r
+               editor.fire( 'dragstart', { target: evt.sender } );\r
+\r
+               function onMouseUp() {\r
+                       var l;\r
+\r
+                       buffer.reset();\r
+\r
+                       // Stop observing events.\r
+                       while ( ( l = listeners.pop() ) )\r
+                               l.removeListener();\r
+\r
+                       onBlockWidgetDrop.call( this, sorted, evt.sender );\r
+               }\r
+\r
+               // Mouseup means "drop". This is when the widget is being detached\r
+               // from DOM and placed at range determined by the line (location).\r
+               listeners.push( editor.document.once( 'mouseup', onMouseUp, this ) );\r
+\r
+               // Prevent calling 'onBlockWidgetDrop' twice in the inline editor.\r
+               // `removeListener` does not work if it is called at the same time event is fired.\r
+               if ( !editable.isInline() ) {\r
+                       // Mouseup may occur when user hovers the line, which belongs to\r
+                       // the outer document. This is, of course, a valid listener too.\r
+                       listeners.push( CKEDITOR.document.once( 'mouseup', onMouseUp, this ) );\r
+               }\r
+       }\r
+\r
+       function onBlockWidgetDrop( sorted, dragTarget ) {\r
+               var finder = this.repository.finder,\r
+                       liner = this.repository.liner,\r
+                       editor = this.editor,\r
+                       editable = this.editor.editable();\r
+\r
+               if ( !CKEDITOR.tools.isEmpty( liner.visible ) ) {\r
+                       // Retrieve range for the closest location.\r
+                       var dropRange = finder.getRange( sorted[ 0 ] );\r
+\r
+                       // Focus widget (it could lost focus after mousedown+mouseup)\r
+                       // and save this state as the one where we want to be taken back when undoing.\r
+                       this.focus();\r
+\r
+                       // Drag range will be set in the drop listener.\r
+                       editor.fire( 'drop', {\r
+                               dropRange: dropRange,\r
+                               target: dropRange.startContainer\r
+                       } );\r
+               }\r
+\r
+               // Clean-up custom cursor for editable.\r
+               editable.removeClass( 'cke_widget_dragging' );\r
+\r
+               // Clean-up all remaining lines.\r
+               liner.hideVisible();\r
+\r
+               // Clean-up drag & drop.\r
+               editor.fire( 'dragend', { target: dragTarget } );\r
+       }\r
+\r
+       function setupEditables( widget ) {\r
+               var editableName,\r
+                       editableDef,\r
+                       definedEditables = widget.editables;\r
+\r
+               widget.editables = {};\r
+\r
+               if ( !widget.editables )\r
+                       return;\r
+\r
+               for ( editableName in definedEditables ) {\r
+                       editableDef = definedEditables[ editableName ];\r
+                       widget.initEditable( editableName, typeof editableDef == 'string' ? { selector: editableDef } : editableDef );\r
+               }\r
+       }\r
+\r
+       function setupMask( widget ) {\r
+               if ( !widget.mask )\r
+                       return;\r
+\r
+               // Reuse mask if already exists (http://dev.ckeditor.com/ticket/11281).\r
+               var img = widget.wrapper.findOne( '.cke_widget_mask' );\r
+\r
+               if ( !img ) {\r
+                       img = new CKEDITOR.dom.element( 'img', widget.editor.document );\r
+                       img.setAttributes( {\r
+                               src: CKEDITOR.tools.transparentImageData,\r
+                               'class': 'cke_reset cke_widget_mask'\r
+                       } );\r
+                       widget.wrapper.append( img );\r
+               }\r
+\r
+               widget.mask = img;\r
+       }\r
+\r
+       // Replace parts object containing:\r
+       // partName => selector pairs\r
+       // with:\r
+       // partName => element pairs\r
+       function setupParts( widget ) {\r
+               if ( widget.parts ) {\r
+                       var parts = {},\r
+                               el, partName;\r
+\r
+                       for ( partName in widget.parts ) {\r
+                               el = widget.wrapper.findOne( widget.parts[ partName ] );\r
+                               parts[ partName ] = el;\r
+                       }\r
+                       widget.parts = parts;\r
+               }\r
+       }\r
+\r
+       function setupWidget( widget, widgetDef ) {\r
+               setupWrapper( widget );\r
+               setupParts( widget );\r
+               setupEditables( widget );\r
+               setupMask( widget );\r
+               setupDragHandler( widget );\r
+               setupDataClassesListener( widget );\r
+               setupA11yListener( widget );\r
+\r
+               // http://dev.ckeditor.com/ticket/11145: [IE8] Non-editable content of widget is draggable.\r
+               if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {\r
+                       widget.wrapper.on( 'dragstart', function( evt ) {\r
+                               var target = evt.data.getTarget();\r
+\r
+                               // Allow text dragging inside nested editables or dragging inline widget's drag handler.\r
+                               if ( !Widget.getNestedEditable( widget, target ) && !( widget.inline && Widget.isDomDragHandler( target ) ) )\r
+                                       evt.data.preventDefault();\r
+                       } );\r
+               }\r
+\r
+               widget.wrapper.removeClass( 'cke_widget_new' );\r
+               widget.element.addClass( 'cke_widget_element' );\r
+\r
+               widget.on( 'key', function( evt ) {\r
+                       var keyCode = evt.data.keyCode;\r
+\r
+                       // ENTER.\r
+                       if ( keyCode == 13 ) {\r
+                               widget.edit();\r
+                               // CTRL+C or CTRL+X.\r
+                       } else if ( keyCode == CKEDITOR.CTRL + 67 || keyCode == CKEDITOR.CTRL + 88 ) {\r
+                               copySingleWidget( widget, keyCode == CKEDITOR.CTRL + 88 );\r
+                               return; // Do not preventDefault.\r
+                       } else if ( keyCode in keystrokesNotBlockedByWidget || ( CKEDITOR.CTRL & keyCode ) || ( CKEDITOR.ALT & keyCode ) ) {\r
+                               // Pass chosen keystrokes to other plugins or default fake sel handlers.\r
+                               // Pass all CTRL/ALT keystrokes.\r
+                               return;\r
+                       }\r
+\r
+                       return false;\r
+               }, null, null, 999 );\r
+               // Listen with high priority so it's possible\r
+               // to overwrite this callback.\r
+\r
+               widget.on( 'doubleclick', function( evt ) {\r
+                       if ( widget.edit() ) {\r
+                               // We have to cancel event if edit method opens a dialog, otherwise\r
+                               // link plugin may open extra dialog (http://dev.ckeditor.com/ticket/12140).\r
+                               evt.cancel();\r
+                       }\r
+               } );\r
+\r
+               if ( widgetDef.data )\r
+                       widget.on( 'data', widgetDef.data );\r
+\r
+               if ( widgetDef.edit )\r
+                       widget.on( 'edit', widgetDef.edit );\r
+       }\r
+\r
+       function setupWidgetData( widget, startupData ) {\r
+               var widgetDataAttr = widget.element.data( 'cke-widget-data' );\r
+\r
+               if ( widgetDataAttr )\r
+                       widget.setData( JSON.parse( decodeURIComponent( widgetDataAttr ) ) );\r
+               if ( startupData )\r
+                       widget.setData( startupData );\r
+\r
+               // Populate classes if they are not preset.\r
+               if ( !widget.data.classes )\r
+                       widget.setData( 'classes', widget.getClasses() );\r
+\r
+               // Unblock data and...\r
+               widget.dataReady = true;\r
+\r
+               // Write data to element because this was blocked when data wasn't ready.\r
+               writeDataToElement( widget );\r
+\r
+               // Fire data event first time, because this was blocked when data wasn't ready.\r
+               widget.fire( 'data', widget.data );\r
+       }\r
+\r
+       function setupWrapper( widget ) {\r
+               // Retrieve widget wrapper. Assign an id to it.\r
+               var wrapper = widget.wrapper = widget.element.getParent();\r
+               wrapper.setAttribute( 'data-cke-widget-id', widget.id );\r
+       }\r
+\r
+       function writeDataToElement( widget ) {\r
+               widget.element.data( 'cke-widget-data', encodeURIComponent( JSON.stringify( widget.data ) ) );\r
+       }\r
+\r
+       //\r
+       // WIDGET STYLE HANDLER ---------------------------------------------------\r
+       //\r
+\r
+       ( function() {\r
+               // Styles categorized by group. It is used to prevent applying styles for the same group being used together.\r
+               var styleGroups = {};\r
+\r
+               /**\r
+                * The class representing a widget style. It is an {@link CKEDITOR#STYLE_OBJECT object} like\r
+                * the styles handler for widgets.\r
+                *\r
+                * **Note:** This custom style handler does not support all methods of the {@link CKEDITOR.style} class.\r
+                * Not supported methods: {@link #applyToRange}, {@link #removeFromRange}, {@link #applyToObject}.\r
+                *\r
+                * @since 4.4\r
+                * @class CKEDITOR.style.customHandlers.widget\r
+                * @extends CKEDITOR.style\r
+                */\r
+               CKEDITOR.style.addCustomHandler( {\r
+                       type: 'widget',\r
+\r
+                       setup: function( styleDefinition ) {\r
+                               /**\r
+                                * The name of widget to which this style can be applied.\r
+                                * It is extracted from style definition's `widget` property.\r
+                                *\r
+                                * @property {String} widget\r
+                                */\r
+                               this.widget = styleDefinition.widget;\r
+\r
+                               /**\r
+                                * An array of groups that this style belongs to.\r
+                                * Styles assigned to the same group cannot be combined.\r
+                                *\r
+                                * @since 4.6.2\r
+                                * @property {Array} group\r
+                                */\r
+                               this.group = typeof styleDefinition.group == 'string' ? [ styleDefinition.group ] : styleDefinition.group;\r
+\r
+                               // Store style categorized by its group.\r
+                               // It is used to prevent enabling two styles from same group.\r
+                               if ( this.group ) {\r
+                                       saveStyleGroup( this );\r
+                               }\r
+                       },\r
+\r
+                       apply: function( editor ) {\r
+                               var widget;\r
+\r
+                               // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+                               // handle a case when it wasn't provided.\r
+                               if ( !( editor instanceof CKEDITOR.editor ) )\r
+                                       return;\r
+\r
+                               // Theoretically we could bypass checkApplicable, get widget from\r
+                               // widgets.focused and check its name, what would be faster, but then\r
+                               // this custom style would work differently than the default style\r
+                               // which checks if it's applicable before applying or removing itself.\r
+                               if ( this.checkApplicable( editor.elementPath(), editor ) ) {\r
+                                       widget = editor.widgets.focused;\r
+\r
+                                       // Remove other styles from the same group.\r
+                                       if ( this.group ) {\r
+                                               this.removeStylesFromSameGroup( editor );\r
+                                       }\r
+\r
+                                       widget.applyStyle( this );\r
+                               }\r
+                       },\r
+\r
+                       remove: function( editor ) {\r
+                               // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+                               // handle a case when it wasn't provided.\r
+                               if ( !( editor instanceof CKEDITOR.editor ) )\r
+                                       return;\r
+\r
+                               if ( this.checkApplicable( editor.elementPath(), editor ) )\r
+                                       editor.widgets.focused.removeStyle( this );\r
+                       },\r
+\r
+                       /**\r
+                        * Removes all styles that belong to the same group as this style. This method will neither add nor remove\r
+                        * the current style.\r
+                        * Returns `true` if any style was removed, otherwise returns `false`.\r
+                        *\r
+                        * @since 4.6.2\r
+                        * @param {CKEDITOR.editor} editor\r
+                        * @returns {Boolean}\r
+                        */\r
+                       removeStylesFromSameGroup: function( editor ) {\r
+                               var stylesFromSameGroup,\r
+                                       path,\r
+                                       removed = false;\r
+\r
+                               // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+                               // handle a case when it wasn't provided.\r
+                               if ( !( editor instanceof CKEDITOR.editor ) )\r
+                                       return false;\r
+\r
+                               path = editor.elementPath();\r
+                               if ( this.checkApplicable( path, editor ) ) {\r
+                                       // Iterate over each group.\r
+                                       for ( var i = 0, l = this.group.length; i < l; i++ ) {\r
+                                               stylesFromSameGroup = styleGroups[ this.widget ][ this.group[ i ] ];\r
+                                               // Iterate over each style from group.\r
+                                               for ( var j = 0; j < stylesFromSameGroup.length; j++ ) {\r
+                                                       if ( stylesFromSameGroup[ j ] !== this && stylesFromSameGroup[ j ].checkActive( path, editor ) ) {\r
+                                                               editor.widgets.focused.removeStyle( stylesFromSameGroup[ j ] );\r
+                                                               removed = true;\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+\r
+                               return removed;\r
+                       },\r
+\r
+                       checkActive: function( elementPath, editor ) {\r
+                               return this.checkElementMatch( elementPath.lastElement, 0, editor );\r
+                       },\r
+\r
+                       checkApplicable: function( elementPath, editor ) {\r
+                               // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+                               // handle a case when it wasn't provided.\r
+                               if ( !( editor instanceof CKEDITOR.editor ) )\r
+                                       return false;\r
+\r
+                               return this.checkElement( elementPath.lastElement );\r
+                       },\r
+\r
+                       checkElementMatch: checkElementMatch,\r
+\r
+                       checkElementRemovable: checkElementMatch,\r
+\r
+                       /**\r
+                        * Checks if an element is a {@link CKEDITOR.plugins.widget#wrapper wrapper} of a\r
+                        * widget whose name matches the {@link #widget widget name} specified in the style definition.\r
+                        *\r
+                        * @param {CKEDITOR.dom.element} element\r
+                        * @returns {Boolean}\r
+                        */\r
+                       checkElement: function( element ) {\r
+                               if ( !Widget.isDomWidgetWrapper( element ) )\r
+                                       return false;\r
+\r
+                               var widgetElement = element.getFirst( Widget.isDomWidgetElement );\r
+                               return widgetElement && widgetElement.data( 'widget' ) == this.widget;\r
+                       },\r
+\r
+                       buildPreview: function( label ) {\r
+                               return label || this._.definition.name;\r
+                       },\r
+\r
+                       /**\r
+                        * Returns allowed content rules which should be registered for this style.\r
+                        * Uses widget's {@link CKEDITOR.plugins.widget.definition#styleableElements} to make a rule\r
+                        * allowing classes on specified elements or use widget's\r
+                        * {@link CKEDITOR.plugins.widget.definition#styleToAllowedContentRules} method to transform a style\r
+                        * into allowed content rules.\r
+                        *\r
+                        * @param {CKEDITOR.editor} The editor instance.\r
+                        * @returns {CKEDITOR.filter.allowedContentRules}\r
+                        */\r
+                       toAllowedContentRules: function( editor ) {\r
+                               if ( !editor )\r
+                                       return null;\r
+\r
+                               var widgetDef = editor.widgets.registered[ this.widget ],\r
+                                       classes,\r
+                                       rule = {};\r
+\r
+                               if ( !widgetDef )\r
+                                       return null;\r
+\r
+                               if ( widgetDef.styleableElements ) {\r
+                                       classes = this.getClassesArray();\r
+                                       if ( !classes )\r
+                                               return null;\r
+\r
+                                       rule[ widgetDef.styleableElements ] = {\r
+                                               classes: classes,\r
+                                               propertiesOnly: true\r
+                                       };\r
+                                       return rule;\r
+                               }\r
+                               if ( widgetDef.styleToAllowedContentRules )\r
+                                       return widgetDef.styleToAllowedContentRules( this );\r
+                               return null;\r
+                       },\r
+\r
+                       /**\r
+                        * Returns classes defined in the style in form of an array.\r
+                        *\r
+                        * @returns {String[]}\r
+                        */\r
+                       getClassesArray: function() {\r
+                               var classes = this._.definition.attributes && this._.definition.attributes[ 'class' ];\r
+\r
+                               return classes ? CKEDITOR.tools.trim( classes ).split( /\s+/ ) : null;\r
+                       },\r
+\r
+                       /**\r
+                        * Not implemented.\r
+                        *\r
+                        * @method applyToRange\r
+                        */\r
+                       applyToRange: notImplemented,\r
+\r
+                       /**\r
+                        * Not implemented.\r
+                        *\r
+                        * @method removeFromRange\r
+                        */\r
+                       removeFromRange: notImplemented,\r
+\r
+                       /**\r
+                        * Not implemented.\r
+                        *\r
+                        * @method applyToObject\r
+                        */\r
+                       applyToObject: notImplemented\r
+               } );\r
+\r
+               function notImplemented() {}\r
+\r
+               // @context style\r
+               function checkElementMatch( element, fullMatch, editor ) {\r
+                       // Before CKEditor 4.4 wasn't a required argument, so we need to\r
+                       // handle a case when it wasn't provided.\r
+                       if ( !editor )\r
+                               return false;\r
+\r
+                       if ( !this.checkElement( element ) )\r
+                               return false;\r
+\r
+                       var widget = editor.widgets.getByElement( element, true );\r
+                       return widget && widget.checkStyleActive( this );\r
+               }\r
+\r
+               // Save and categorize style by its group.\r
+               function saveStyleGroup( style ) {\r
+                       var widgetName = style.widget,\r
+                               group;\r
+\r
+                       if ( !styleGroups[ widgetName ] ) {\r
+                               styleGroups[ widgetName ] = {};\r
+                       }\r
+\r
+                       for ( var i = 0, l = style.group.length; i < l; i++ ) {\r
+                               group = style.group[ i ];\r
+                               if ( !styleGroups[ widgetName ][ group ] ) {\r
+                                       styleGroups[ widgetName ][ group ] = [];\r
+                               }\r
+\r
+                               styleGroups[ widgetName ][ group ].push( style );\r
+                       }\r
+               }\r
+\r
+       } )();\r
+\r
+       //\r
+       // EXPOSE PUBLIC API ------------------------------------------------------\r
+       //\r
+\r
+       CKEDITOR.plugins.widget = Widget;\r
+       Widget.repository = Repository;\r
+       Widget.nestedEditable = NestedEditable;\r
+} )();\r
+\r
+/**\r
+ * An event fired when a widget definition is registered by the {@link CKEDITOR.plugins.widget.repository#add} method.\r
+ * It is possible to modify the definition being registered.\r
+ *\r
+ * @event widgetDefinition\r
+ * @member CKEDITOR.editor\r
+ * @param {CKEDITOR.plugins.widget.definition} data Widget definition.\r
+ */\r
+\r
+/**\r
+ * This is an abstract class that describes the definition of a widget.\r
+ * It is a type of {@link CKEDITOR.plugins.widget.repository#add} method's second argument.\r
+ *\r
+ * Widget instances inherit from registered widget definitions, although not in a prototypal way.\r
+ * They are simply extended with corresponding widget definitions. Note that not all properties of\r
+ * the widget definition become properties of a widget. Some, like {@link #data} or {@link #edit}, become\r
+ * widget's events listeners.\r
+ *\r
+ * @class CKEDITOR.plugins.widget.definition\r
+ * @abstract\r
+ * @mixins CKEDITOR.feature\r
+ */\r
+\r
+/**\r
+ * Widget definition name. It is automatically set when the definition is\r
+ * {@link CKEDITOR.plugins.widget.repository#add registered}.\r
+ *\r
+ * @property {String} name\r
+ */\r
+\r
+/**\r
+ * The method executed while initializing a widget, after a widget instance\r
+ * is created, but before it is ready. It is executed before the first\r
+ * {@link CKEDITOR.plugins.widget#event-data} is fired so it is common to\r
+ * use the `init` method to populate widget data with information loaded from\r
+ * the DOM, like for exmaple:\r
+ *\r
+ *             init: function() {\r
+ *                     this.setData( 'width', this.element.getStyle( 'width' ) );\r
+ *\r
+ *                     if ( this.parts.caption.getStyle( 'display' ) != 'none' )\r
+ *                             this.setData( 'showCaption', true );\r
+ *             }\r
+ *\r
+ * @property {Function} init\r
+ */\r
+\r
+/**\r
+ * The function to be used to upcast an element to this widget or a\r
+ * comma-separated list of upcast methods from the {@link #upcasts} object.\r
+ *\r
+ * The upcast function **is not** executed in the widget context (because the widget\r
+ * does not exist yet) and two arguments are passed:\r
+ *\r
+ * * `element` ({@link CKEDITOR.htmlParser.element}) &ndash; The element to be checked.\r
+ * * `data` (`Object`) &ndash; The object which can be extended with data which will then be passed to the widget.\r
+ *\r
+ * An element will be upcasted if a function returned `true` or an instance of\r
+ * a {@link CKEDITOR.htmlParser.element} if upcasting meant DOM structure changes\r
+ * (in this case the widget will be initialized on the returned element).\r
+ *\r
+ * @property {String/Function} upcast\r
+ */\r
+\r
+/**\r
+ * The object containing functions which can be used to upcast this widget.\r
+ * Only those pointed by the {@link #upcast} property will be used.\r
+ *\r
+ * In most cases it is appropriate to use {@link #upcast} directly,\r
+ * because majority of widgets need just one method.\r
+ * However, in some cases the widget author may want to expose more than one variant\r
+ * and then this property may be used.\r
+ *\r
+ *             upcasts: {\r
+ *                     // This function may upcast only figure elements.\r
+ *                     figure: function() {\r
+ *                             // ...\r
+ *                     },\r
+ *                     // This function may upcast only image elements.\r
+ *                     image: function() {\r
+ *                             // ...\r
+ *                     },\r
+ *                     // More variants...\r
+ *             }\r
+ *\r
+ *             // Then, widget user may choose which upcast methods will be enabled.\r
+ *             editor.on( 'widgetDefinition', function( evt ) {\r
+ *                     if ( evt.data.name == 'image' )\r
+ *                             evt.data.upcast = 'figure,image'; // Use both methods.\r
+ *             } );\r
+ *\r
+ * @property {Object} upcasts\r
+ */\r
+\r
+/**\r
+ * The {@link #upcast} method(s) priority. The upcast with a lower priority number will be called before\r
+ * the one with a higher number. The default priority is `10`.\r
+ *\r
+ * @since 4.5\r
+ * @property {Number} [upcastPriority=10]\r
+ */\r
+\r
+/**\r
+ * The function to be used to downcast this widget or\r
+ * a name of the downcast option from the {@link #downcasts} object.\r
+ *\r
+ * The downcast funciton will be executed in the {@link CKEDITOR.plugins.widget} context\r
+ * and with `widgetElement` ({@link CKEDITOR.htmlParser.element}) argument which is\r
+ * the widget's main element.\r
+ *\r
+ * The function may return an instance of the {@link CKEDITOR.htmlParser.node} class if the widget\r
+ * needs to be downcasted to a different node than the widget's main element.\r
+ *\r
+ * @property {String/Function} downcast\r
+ */\r
+\r
+/**\r
+ * The object containing functions which can be used to downcast this widget.\r
+ * Only the one pointed by the {@link #downcast} property will be used.\r
+ *\r
+ * In most cases it is appropriate to use {@link #downcast} directly,\r
+ * because majority of widgets have just one variant of downcasting (or none at all).\r
+ * However, in some cases the widget author may want to expose more than one variant\r
+ * and then this property may be used.\r
+ *\r
+ *             downcasts: {\r
+ *                     // This downcast may transform the widget into the figure element.\r
+ *                     figure: function() {\r
+ *                             // ...\r
+ *                     },\r
+ *                     // This downcast may transform the widget into the image element with data-* attributes.\r
+ *                     image: function() {\r
+ *                             // ...\r
+ *                     }\r
+ *             }\r
+ *\r
+ *             // Then, the widget user may choose one of the downcast options when setting up his editor.\r
+ *             editor.on( 'widgetDefinition', function( evt ) {\r
+ *                     if ( evt.data.name == 'image' )\r
+ *                             evt.data.downcast = 'figure';\r
+ *             } );\r
+ *\r
+ * @property downcasts\r
+ */\r
+\r
+/**\r
+ * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-edit} event listener.\r
+ * This means that it will be executed when a widget is being edited.\r
+ * See the {@link CKEDITOR.plugins.widget#method-edit} method.\r
+ *\r
+ * @property {Function} edit\r
+ */\r
+\r
+/**\r
+ * If set, it will be added as the {@link CKEDITOR.plugins.widget#event-data} event listener.\r
+ * This means that it will be executed every time the {@link CKEDITOR.plugins.widget#property-data widget data} changes.\r
+ *\r
+ * @property {Function} data\r
+ */\r
+\r
+/**\r
+ * The method to be executed when the widget's command is executed in order to insert a new widget\r
+ * (widget of this type is not focused). If not defined, then the default action will be\r
+ * performed which means that:\r
+ *\r
+ * * An instance of the widget will be created in a detached {@link CKEDITOR.dom.documentFragment document fragment},\r
+ * * The {@link CKEDITOR.plugins.widget#method-edit} method will be called to trigger widget editing,\r
+ * * The widget element will be inserted into DOM.\r
+ *\r
+ * @property {Function} insert\r
+ */\r
+\r
+/**\r
+ * The name of a dialog window which will be opened on {@link CKEDITOR.plugins.widget#method-edit}.\r
+ * If not defined, then the {@link CKEDITOR.plugins.widget#method-edit} method will not perform any action and\r
+ * widget's command will insert a new widget without opening a dialog window first.\r
+ *\r
+ * @property {String} dialog\r
+ */\r
+\r
+/**\r
+ * The template which will be used to create a new widget element (when the widget's command is executed).\r
+ * This string is populated with {@link #defaults default values} by using the {@link CKEDITOR.template} format.\r
+ * Therefore it has to be a valid {@link CKEDITOR.template} argument.\r
+ *\r
+ * @property {String} template\r
+ */\r
+\r
+/**\r
+ * The data object which will be used to populate the data of a newly created widget.\r
+ * See {@link CKEDITOR.plugins.widget#property-data}.\r
+ *\r
+ *             defaults: {\r
+ *                     showCaption: true,\r
+ *                     align: 'none'\r
+ *             }\r
+ *\r
+ * @property defaults\r
+ */\r
+\r
+/**\r
+ * An object containing definitions of widget components (part name => CSS selector).\r
+ *\r
+ *             parts: {\r
+ *                     image: 'img',\r
+ *                     caption: 'div.caption'\r
+ *             }\r
+ *\r
+ * @property parts\r
+ */\r
+\r
+/**\r
+ * An object containing definitions of nested editables (editable name => {@link CKEDITOR.plugins.widget.nestedEditable.definition}).\r
+ * Note that editables *have to* be defined in the same order as they are in DOM / {@link CKEDITOR.plugins.widget.definition#template template}.\r
+ * Otherwise errors will occur when nesting widgets inside each other.\r
+ *\r
+ *             editables: {\r
+ *                     header: 'h1',\r
+ *                     content: {\r
+ *                             selector: 'div.content',\r
+ *                             allowedContent: 'p strong em; a[!href]'\r
+ *                     }\r
+ *             }\r
+ *\r
+ * @property editables\r
+ */\r
+\r
+/**\r
+ * The function used to obtain an accessibility label for the widget. It might be used to make\r
+ * the widget labels as precise as possible, since it has access to the widget instance.\r
+ *\r
+ * If not specified, the default implementation will use the {@link #pathName} or the main\r
+ * {@link CKEDITOR.plugins.widget#element element} tag name.\r
+ *\r
+ * @property {Function} getLabel\r
+ */\r
+\r
+/**\r
+ * The widget name displayed in the elements path.\r
+ *\r
+ * @property {String} pathName\r
+ */\r
+\r
+/**\r
+ * If set to `true`, the widget's element will be covered with a transparent mask.\r
+ * This will prevent its content from being clickable, which matters in case\r
+ * of special elements like embedded Flash or iframes that generate a separate "context".\r
+ *\r
+ * @property {Boolean} mask\r
+ */\r
+\r
+/**\r
+ * If set to `true/false`, it will force the widget to be either an inline or a block widget.\r
+ * If not set, the widget type will be determined from the widget element.\r
+ *\r
+ * Widget type influences whether a block (`div`) or an inline (`span`) element is used\r
+ * for the wrapper.\r
+ *\r
+ * @property {Boolean} inline\r
+ */\r
+\r
+/**\r
+ * The label for the widget toolbar button.\r
+ *\r
+ *             editor.widgets.add( 'simplebox', {\r
+ *                     button: 'Create a simple box'\r
+ *             } );\r
+ *\r
+ *             editor.widgets.add( 'simplebox', {\r
+ *                     button: editor.lang.simplebox.title\r
+ *             } );\r
+ *\r
+ * @property {String} button\r
+ */\r
+\r
+/**\r
+ * Whether widget should be draggable. Defaults to `true`.\r
+ * If set to `false` drag handler will not be displayed when hovering widget.\r
+ *\r
+ * @property {Boolean} draggable\r
+ */\r
+\r
+/**\r
+ * Names of element(s) (separated by spaces) for which the {@link CKEDITOR.filter} should allow classes\r
+ * defined in the widget styles. For example if your widget is upcasted from a simple `<div>`\r
+ * element, then in order to make it styleable you can set:\r
+ *\r
+ *             editor.widgets.add( 'customWidget', {\r
+ *                     upcast: function( element ) {\r
+ *                             return element.name == 'div';\r
+ *                     },\r
+ *\r
+ *                     // ...\r
+ *\r
+ *                     styleableElements: 'div'\r
+ *             } );\r
+ *\r
+ * Then, when the following style is defined:\r
+ *\r
+ *             {\r
+ *                     name: 'Thick border', type: 'widget', widget: 'customWidget',\r
+ *                     attributes: { 'class': 'thickBorder' }\r
+ *             }\r
+ *\r
+ * a rule allowing the `thickBorder` class for `div` elements will be registered in the {@link CKEDITOR.filter}.\r
+ *\r
+ * If you need to have more freedom when transforming widget style to allowed content rules,\r
+ * you can use the {@link #styleToAllowedContentRules} callback.\r
+ *\r
+ * @since 4.4\r
+ * @property {String} styleableElements\r
+ */\r
+\r
+/**\r
+ * Function transforming custom widget's {@link CKEDITOR.style} instance into\r
+ * {@link CKEDITOR.filter.allowedContentRules}. It may be used when a static\r
+ * {@link #styleableElements} property is not enough to inform the {@link CKEDITOR.filter}\r
+ * what HTML features should be enabled when allowing the given style.\r
+ *\r
+ * In most cases, when style's classes just have to be added to element name(s) used by\r
+ * the widget element, it is recommended to use simpler {@link #styleableElements} property.\r
+ *\r
+ * In order to get parsed classes from the style definition you can use\r
+ * {@link CKEDITOR.style.customHandlers.widget#getClassesArray}.\r
+ *\r
+ * For example, if you want to use the [object format of allowed content rules](#!/guide/dev_allowed_content_rules-section-object-format),\r
+ * to specify `match` validator, your implementation could look like this:\r
+ *\r
+ *             editor.widgets.add( 'customWidget', {\r
+ *                     // ...\r
+ *\r
+ *                     styleToAllowedContentRules: funciton( style ) {\r
+ *                             // Retrieve classes defined in the style.\r
+ *                             var classes = style.getClassesArray();\r
+ *\r
+ *                             // Do something crazy - for example return allowed content rules in object format,\r
+ *                             // with custom match property and propertiesOnly flag.\r
+ *                             return {\r
+ *                                     h1: {\r
+ *                                             match: isWidgetElement,\r
+ *                                             propertiesOnly: true,\r
+ *                                             classes: classes\r
+ *                                     }\r
+ *                             };\r
+ *                     }\r
+ *             } );\r
+ *\r
+ * @since 4.4\r
+ * @property {Function} styleToAllowedContentRules\r
+ * @param {CKEDITOR.style.customHandlers.widget} style The style to be transformed.\r
+ * @returns {CKEDITOR.filter.allowedContentRules}\r
+ */\r
+\r
+/**\r
+ * This is an abstract class that describes the definition of a widget's nested editable.\r
+ * It is a type of values in the {@link CKEDITOR.plugins.widget.definition#editables} object.\r
+ *\r
+ * In the simplest case the definition is a string which is a CSS selector used to\r
+ * find an element that will become a nested editable inside the widget. Note that\r
+ * the widget element can be a nested editable, too.\r
+ *\r
+ * In the more advanced case a definition is an object with a required `selector` property.\r
+ *\r
+ *             editables: {\r
+ *                     header: 'h1',\r
+ *                     content: {\r
+ *                             selector: 'div.content',\r
+ *                             allowedContent: 'p strong em; a[!href]'\r
+ *                     }\r
+ *             }\r
+ *\r
+ * @class CKEDITOR.plugins.widget.nestedEditable.definition\r
+ * @abstract\r
+ */\r
+\r
+/**\r
+ * The CSS selector used to find an element which will become a nested editable.\r
+ *\r
+ * @property {String} selector\r
+ */\r
+\r
+/**\r
+ * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules\r
+ * which will be used to limit the content allowed in this nested editable.\r
+ * This option is similar to {@link CKEDITOR.config#allowedContent} and one can\r
+ * use it to limit the editor features available in the nested editable.\r
+ *\r
+ * If no `allowedContent` is specified, the editable will use the editor default\r
+ * {@link CKEDITOR.editor#filter}.\r
+ *\r
+ * @property {CKEDITOR.filter.allowedContentRules} allowedContent\r
+ */\r
+\r
+/**\r
+ * The [Advanced Content Filter](#!/guide/dev_advanced_content_filter) rules\r
+ * which will be used to blacklist elements within this nested editable.\r
+ * This option is similar to {@link CKEDITOR.config#disallowedContent}.\r
+ *\r
+ * Note that `disallowedContent` work on top of the definition's {@link #allowedContent}.\r
+ *\r
+ * @since 4.7.3\r
+ * @property {CKEDITOR.filter.disallowedContentRules} disallowedContent\r
+ */\r
+\r
+/**\r
+ * Nested editable name displayed in the elements path.\r
+ *\r
+ * @property {String} pathName\r
+ */\r
diff --git a/sources/plugins/widgetselection/plugin.js b/sources/plugins/widgetselection/plugin.js
new file mode 100644 (file)
index 0000000..6c788cb
--- /dev/null
@@ -0,0 +1,366 @@
+/**\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.md or http://ckeditor.com/license\r
+ */\r
+\r
+/**\r
+ * @fileOverview A plugin created to handle ticket http://dev.ckeditor.com/ticket/11064. While the issue is caused by native WebKit/Blink behaviour,\r
+ * this plugin can be easily detached or modified when the issue is fixed in the browsers without changing the core.\r
+ * When Ctrl/Cmd + A is pressed to select all content it does not work due to a bug in\r
+ * Webkit/Blink if a non-editable element is at the beginning or the end of the content.\r
+ */\r
+\r
+( function() {\r
+       'use strict';\r
+\r
+       CKEDITOR.plugins.add( 'widgetselection', {\r
+\r
+               init: function( editor ) {\r
+                       if ( CKEDITOR.env.webkit ) {\r
+                               var widgetselection = CKEDITOR.plugins.widgetselection;\r
+\r
+                               editor.on( 'contentDom', function( evt ) {\r
+\r
+                                       var editor = evt.editor,\r
+                                               doc = editor.document,\r
+                                               editable = editor.editable();\r
+\r
+                                       editable.attachListener( doc, 'keydown', function( evt ) {\r
+                                               var data = evt.data.$;\r
+\r
+                                               // Ctrl/Cmd + A\r
+                                               if ( evt.data.getKey() == 65 && ( CKEDITOR.env.mac && data.metaKey || !CKEDITOR.env.mac && data.ctrlKey ) ) {\r
+\r
+                                                       // Defer the call so the selection is already changed by the pressed keys.\r
+                                                       CKEDITOR.tools.setTimeout( function() {\r
+\r
+                                                               // Manage filler elements on keydown. If there is no need\r
+                                                               // to add fillers, we need to check and clean previously used once.\r
+                                                               if ( !widgetselection.addFillers( editable ) ) {\r
+                                                                       widgetselection.removeFillers( editable );\r
+                                                               }\r
+                                                       }, 0 );\r
+                                               }\r
+                                       }, null, null, -1 );\r
+\r
+                                       // Check and clean previously used fillers.\r
+                                       editor.on( 'selectionCheck', function( evt ) {\r
+                                               widgetselection.removeFillers( evt.editor.editable() );\r
+                                       } );\r
+\r
+                                       // Remove fillers on paste before data gets inserted into editor.\r
+                                       editor.on( 'paste', function( evt ) {\r
+                                               evt.data.dataValue = widgetselection.cleanPasteData( evt.data.dataValue );\r
+                                       } );\r
+\r
+                                       if ( 'selectall' in editor.plugins ) {\r
+                                               widgetselection.addSelectAllIntegration( editor );\r
+                                       }\r
+                               } );\r
+                       }\r
+               }\r
+       } );\r
+\r
+       /**\r
+        * A set of helper methods for the Widget Selection plugin.\r
+        *\r
+        * @property widgetselection\r
+        * @member CKEDITOR.plugins\r
+        * @since 4.6.1\r
+        */\r
+       CKEDITOR.plugins.widgetselection = {\r
+\r
+               /**\r
+                * The start filler element reference.\r
+                *\r
+                * @property {CKEDITOR.dom.element}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               startFiller: null,\r
+\r
+               /**\r
+                * The end filler element reference.\r
+                *\r
+                * @property {CKEDITOR.dom.element}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               endFiller: null,\r
+\r
+               /**\r
+                * An attribute which identifies the filler element.\r
+                *\r
+                * @property {String}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               fillerAttribute: 'data-cke-filler-webkit',\r
+\r
+               /**\r
+                * The default content of the filler element. Note: The filler needs to have `visible` content.\r
+                * Unprintable elements or empty content do not help as a workaround.\r
+                *\r
+                * @property {String}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               fillerContent: '&nbsp;',\r
+\r
+               /**\r
+                * Tag name which is used to create fillers.\r
+                *\r
+                * @property {String}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               fillerTagName: 'div',\r
+\r
+               /**\r
+                * Adds a filler before or after a non-editable element at the beginning or the end of the `editable`.\r
+                *\r
+                * @param {CKEDITOR.editable} editable\r
+                * @returns {Boolean}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                */\r
+               addFillers: function( editable ) {\r
+                       var editor = editable.editor;\r
+\r
+                       // Whole content should be selected, if not fix the selection manually.\r
+                       if ( !this.isWholeContentSelected( editable ) && editable.getChildCount() > 0 ) {\r
+\r
+                               var firstChild = editable.getFirst( filterTempElements ),\r
+                                       lastChild = editable.getLast( filterTempElements );\r
+\r
+                               // Check if first element is editable. If not prepend with filler.\r
+                               if ( firstChild && firstChild.type == CKEDITOR.NODE_ELEMENT && !firstChild.isEditable() ) {\r
+                                       this.startFiller = this.createFiller();\r
+                                       editable.append( this.startFiller, 1 );\r
+                               }\r
+\r
+                               // Check if last element is editable. If not append filler.\r
+                               if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && !lastChild.isEditable() ) {\r
+                                       this.endFiller = this.createFiller( true );\r
+                                       editable.append( this.endFiller, 0 );\r
+                               }\r
+\r
+                               // Reselect whole content after any filler was added.\r
+                               if ( this.hasFiller( editable ) ) {\r
+                                       var rangeAll = editor.createRange();\r
+                                       rangeAll.selectNodeContents( editable );\r
+                                       rangeAll.select();\r
+                                       return true;\r
+                               }\r
+                       }\r
+                       return false;\r
+               },\r
+\r
+               /**\r
+                * Removes filler elements or updates their references.\r
+                *\r
+                * It will **not remove** filler elements if the whole content is selected, as it would break the\r
+                * selection.\r
+                *\r
+                * @param {CKEDITOR.editable} editable\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                */\r
+               removeFillers: function( editable ) {\r
+                       // If startFiller or endFiller exists and not entire content is selected it means the selection\r
+                       // just changed from selected all. We need to remove fillers and set proper selection/content.\r
+                       if ( this.hasFiller( editable ) && !this.isWholeContentSelected( editable ) ) {\r
+\r
+                               var startFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=start]' ),\r
+                                       endFillerContent = editable.findOne( this.fillerTagName + '[' + this.fillerAttribute + '=end]' );\r
+\r
+                               if ( this.startFiller && startFillerContent && this.startFiller.equals( startFillerContent ) ) {\r
+                                       this.removeFiller( this.startFiller, editable );\r
+                               } else {\r
+                                       // The start filler is still present but it is a different element than previous one. It means the\r
+                                       // undo recreating entirely selected content was performed. We need to update filler reference.\r
+                                       this.startFiller = startFillerContent;\r
+                               }\r
+\r
+                               if ( this.endFiller && endFillerContent && this.endFiller.equals( endFillerContent ) ) {\r
+                                       this.removeFiller( this.endFiller, editable );\r
+                               } else {\r
+                                       // Same as with start filler.\r
+                                       this.endFiller = endFillerContent;\r
+                               }\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Removes fillers from the paste data.\r
+                *\r
+                * @param {String} data\r
+                * @returns {String}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               cleanPasteData: function( data ) {\r
+                       if ( data && data.length ) {\r
+                               data = data\r
+                                       .replace( this.createFillerRegex(), '' )\r
+                                       .replace( this.createFillerRegex( true ), '' );\r
+                       }\r
+                       return data;\r
+               },\r
+\r
+               /**\r
+                * Checks if the entire content of the given editable is selected.\r
+                *\r
+                * @param {CKEDITOR.editable} editable\r
+                * @returns {Boolean}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               isWholeContentSelected: function( editable ) {\r
+\r
+                       var range = editable.editor.getSelection().getRanges()[ 0 ];\r
+                       if ( range ) {\r
+\r
+                               if ( range && range.collapsed ) {\r
+                                       return false;\r
+\r
+                               } else {\r
+                                       var rangeClone = range.clone();\r
+                                       rangeClone.enlarge( CKEDITOR.ENLARGE_ELEMENT );\r
+\r
+                                       return !!( rangeClone && editable && rangeClone.startContainer && rangeClone.endContainer &&\r
+                                               rangeClone.startOffset === 0 && rangeClone.endOffset === editable.getChildCount() &&\r
+                                               rangeClone.startContainer.equals( editable ) && rangeClone.endContainer.equals( editable ) );\r
+                               }\r
+                       }\r
+                       return false;\r
+               },\r
+\r
+               /**\r
+                *      Checks if there is any filler element in the given editable.\r
+                *\r
+                * @param {CKEDITOR.editable} editable\r
+                * @returns {Boolean}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               hasFiller: function( editable ) {\r
+                       return editable.find( this.fillerTagName + '[' + this.fillerAttribute + ']' ).count() > 0;\r
+               },\r
+\r
+               /**\r
+                * Creates a filler element.\r
+                *\r
+                * @param {Boolean} [onEnd] If filler will be placed on end or beginning of the content.\r
+                * @returns {CKEDITOR.dom.element}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               createFiller: function( onEnd ) {\r
+                       var filler = new CKEDITOR.dom.element( this.fillerTagName );\r
+                       filler.setHtml( this.fillerContent );\r
+                       filler.setAttribute( this.fillerAttribute, onEnd ? 'end' : 'start' );\r
+                       filler.setAttribute( 'data-cke-temp', 1 );\r
+                       filler.setStyles( {\r
+                               display: 'block',\r
+                               width: 0,\r
+                               height: 0,\r
+                               padding: 0,\r
+                               border: 0,\r
+                               margin: 0,\r
+                               position: 'absolute',\r
+                               top: 0,\r
+                               left: '-9999px',\r
+                               opacity: 0,\r
+                               overflow: 'hidden'\r
+                       } );\r
+\r
+                       return filler;\r
+               },\r
+\r
+               /**\r
+                * Removes the specific filler element from the given editable. If the filler contains any content (typed or pasted),\r
+                * it replaces the current editable content. If not, the caret is placed before the first or after the last editable\r
+                * element (depends if the filler was at the beginning or the end).\r
+                *\r
+                * @param {CKEDITOR.dom.element} filler\r
+                * @param {CKEDITOR.editable} editable\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               removeFiller: function( filler, editable ) {\r
+                       if ( filler ) {\r
+                               var editor = editable.editor,\r
+                                       currentRange = editable.editor.getSelection().getRanges()[ 0 ],\r
+                                       currentPath = currentRange.startPath(),\r
+                                       range = editor.createRange(),\r
+                                       insertedHtml,\r
+                                       fillerOnStart,\r
+                                       manuallyHandleCaret;\r
+\r
+                               if ( currentPath.contains( filler ) ) {\r
+                                       insertedHtml = filler.getHtml();\r
+                                       manuallyHandleCaret = true;\r
+                               }\r
+\r
+                               fillerOnStart = filler.getAttribute( this.fillerAttribute ) == 'start';\r
+                               filler.remove();\r
+                               filler = null;\r
+\r
+                               if ( insertedHtml && insertedHtml.length > 0 && insertedHtml != this.fillerContent ) {\r
+                                       editable.insertHtmlIntoRange( insertedHtml, editor.getSelection().getRanges()[ 0 ] );\r
+                                       range.setStartAt( editable.getChild( editable.getChildCount() - 1 ), CKEDITOR.POSITION_BEFORE_END );\r
+                                       editor.getSelection().selectRanges( [ range ] );\r
+\r
+                               } else if ( manuallyHandleCaret ) {\r
+                                       if ( fillerOnStart ) {\r
+                                               range.setStartAt( editable.getFirst().getNext(), CKEDITOR.POSITION_AFTER_START );\r
+                                       } else {\r
+                                               range.setEndAt( editable.getLast().getPrevious(), CKEDITOR.POSITION_BEFORE_END );\r
+                                       }\r
+                                       editable.editor.getSelection().selectRanges( [ range ] );\r
+                               }\r
+                       }\r
+               },\r
+\r
+               /**\r
+                * Creates a regular expression which will match the filler HTML in the text.\r
+                *\r
+                * @param {Boolean} [onEnd] Whether a regular expression should be created for the filler at the beginning or\r
+                * the end of the content.\r
+                * @returns {RegExp}\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                * @private\r
+                */\r
+               createFillerRegex: function( onEnd ) {\r
+                       var matcher = this.createFiller( onEnd ).getOuterHtml()\r
+                               .replace( /style="[^"]*"/gi, 'style="[^"]*"' )\r
+                               .replace( />[^<]*</gi, '>[^<]*<' );\r
+\r
+                       return new RegExp( ( !onEnd ? '^' : '' ) + matcher + ( onEnd ? '$' : '' ) );\r
+               },\r
+\r
+               /**\r
+                * Adds an integration for the [Select All](http://ckeditor.com/addon/selectall) plugin to the given `editor`.\r
+                *\r
+                * @private\r
+                * @param {CKEDITOR.editor} editor\r
+                * @member CKEDITOR.plugins.widgetselection\r
+                */\r
+               addSelectAllIntegration: function( editor ) {\r
+                       var widgetselection = this;\r
+\r
+                       editor.editable().attachListener( editor, 'beforeCommandExec', function( evt ) {\r
+                               var editable = editor.editable();\r
+\r
+                               if ( evt.data.name == 'selectAll' && editable ) {\r
+                                       widgetselection.addFillers( editable );\r
+                               }\r
+                       }, null, null, 9999 );\r
+               }\r
+       };\r
+\r
+\r
+       function filterTempElements( el ) {\r
+               return el.getName && !el.hasAttribute( 'data-cke-temp' );\r
+       }\r
+\r
+} )();\r
index a1ec9e67b3380daed3069fd657f3480753f26198..1358129850e2914992e7465e61624154536c1024 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -9,6 +9,8 @@
  */\r
 \r
 ( function() {\r
+       var framedWysiwyg;\r
+\r
        CKEDITOR.plugins.add( 'wysiwygarea', {\r
                init: function( editor ) {\r
                        if ( editor.config.fullPage ) {\r
@@ -27,7 +29,7 @@
                                // With IE, the custom domain has to be taken care at first,\r
                                // for other browers, the 'src' attribute should be left empty to\r
                                // trigger iframe's 'load' event.\r
-                               // Microsoft Edge throws "Permission Denied" if treated like an IE (#13441).\r
+                               // Microsoft Edge throws "Permission Denied" if treated like an IE (http://dev.ckeditor.com/ticket/13441).\r
                                if ( CKEDITOR.env.air ) {\r
                                        src = 'javascript:void(0)'; // jshint ignore:line\r
                                } else if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {\r
                        body.hideFocus = true;\r
 \r
                        // Disable and re-enable the body to avoid IE from\r
-                       // taking the editing focus at startup. (#141 / #523)\r
+                       // taking the editing focus at startup. (http://dev.ckeditor.com/ticket/141 / http://dev.ckeditor.com/ticket/523)\r
                        body.disabled = true;\r
                        body.removeAttribute( 'disabled' );\r
                }\r
 \r
                var editable = this;\r
 \r
-               // Without it IE8 has problem with removing selection in nested editable. (#13785)\r
+               // Without it IE8 has problem with removing selection in nested editable. (http://dev.ckeditor.com/ticket/13785)\r
                if ( CKEDITOR.env.ie && !CKEDITOR.env.edge ) {\r
                        doc.getDocumentElement().addClass( doc.$.compatMode );\r
                }\r
 \r
-               // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (#6966, #13142)\r
+               // Prevent IE/Edge from leaving a new paragraph/div after deleting all contents in body. (http://dev.ckeditor.com/ticket/6966, http://dev.ckeditor.com/ticket/13142)\r
                if ( CKEDITOR.env.ie && !CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_P ) {\r
                        removeSuperfluousElement( 'p' );\r
                } else if ( CKEDITOR.env.edge && editor.enterMode != CKEDITOR.ENTER_DIV ) {\r
                        removeSuperfluousElement( 'div' );\r
                }\r
 \r
-               // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (#10945, #10906).\r
+               // Fix problem with cursor not appearing in Webkit and IE11+ when clicking below the body (http://dev.ckeditor.com/ticket/10945, http://dev.ckeditor.com/ticket/10906).\r
                // Fix for older IEs (8-10 and QM) is placed inside selection.js.\r
                if ( CKEDITOR.env.webkit || ( CKEDITOR.env.ie && CKEDITOR.env.version > 10 ) ) {\r
                        doc.getDocumentElement().on( 'mousedown', function( evt ) {\r
                                // PageUp OR PageDown\r
                                if ( keyCode == 33 || keyCode == 34 ) {\r
                                        // PageUp/PageDown scrolling is broken in document\r
-                                       // with standard doctype, manually fix it. (#4736)\r
+                                       // with standard doctype, manually fix it. (http://dev.ckeditor.com/ticket/4736)\r
                                        if ( CKEDITOR.env.ie ) {\r
                                                setTimeout( function() {\r
                                                        editor.getSelection().scrollIntoView();\r
                                        // Page up/down cause editor selection to leak\r
                                        // outside of editable thus we try to intercept\r
                                        // the behavior, while it affects only happen\r
-                                       // when editor contents are not overflowed. (#7955)\r
+                                       // when editor contents are not overflowed. (http://dev.ckeditor.com/ticket/7955)\r
                                        else if ( editor.window.$.innerHeight > this.$.offsetHeight ) {\r
                                                var range = editor.createRange();\r
                                                range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd' ]( this );\r
                        // focus is moved onto a non-editing host, e.g. link or button, but\r
                        // it becomes a problem for the object type selection, since the resizer\r
                        // handler attached on it will mark other part of the UI, especially\r
-                       // for the dialog. (#8157)\r
+                       // for the dialog. (http://dev.ckeditor.com/ticket/8157)\r
                        // [IE<8 & Opera] Even worse For old IEs, the cursor will not vanish even if\r
-                       // the selection has been moved to another text input in some cases. (#4716)\r
+                       // the selection has been moved to another text input in some cases. (http://dev.ckeditor.com/ticket/4716)\r
                        //\r
                        // Now the range restore is disabled, so we simply force IE to clean\r
                        // up the selection before blur.\r
                        this.attachListener( doc, 'blur', function() {\r
-                               // Error proof when the editor is not visible. (#6375)\r
+                               // Error proof when the editor is not visible. (http://dev.ckeditor.com/ticket/6375)\r
                                try {\r
                                        doc.$.selection.empty();\r
                                } catch ( er ) {}\r
 \r
                if ( CKEDITOR.env.iOS ) {\r
                        // [iOS] If touch is bound to any parent of the iframe blur happens on any touch\r
-                       // event and body becomes the focused element (#10714).\r
+                       // event and body becomes the focused element (http://dev.ckeditor.com/ticket/10714).\r
                        this.attachListener( doc, 'touchend', function() {\r
                                win.focus();\r
                        } );\r
                }\r
 \r
                var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );\r
-               // document.title is malfunctioning on Chrome, so get value from the element (#12402).\r
+               // document.title is malfunctioning on Chrome, so get value from the element (http://dev.ckeditor.com/ticket/12402).\r
                title.data( 'cke-title', title.getText() );\r
 \r
                // [IE] JAWS will not recognize the aria label we used on the iframe\r
 \r
                        // 2. On keyup remove all elements that were not marked\r
                        // as non-superfluous (which means they must have had appeared in the meantime).\r
+                       // Also we should preserve all temporary elements inserted by editor – otherwise we'd likely\r
+                       // leak fake selection's content into editable due to removing hidden selection container (http://dev.ckeditor.com/ticket/14831).\r
                        editable.attachListener( editable, 'keyup', function() {\r
                                var elements = doc.getElementsByTag( tagName );\r
                                if ( lockRetain ) {\r
-                                       if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) ) {\r
+                                       if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) &&\r
+                                               !elements.getItem( 0 ).hasAttribute( 'data-cke-temp' ) ) {\r
                                                elements.getItem( 0 ).remove( 1 );\r
                                        }\r
                                        lockRetain = false;\r
                }\r
        }\r
 \r
-       var framedWysiwyg = CKEDITOR.tools.createClass( {\r
+       framedWysiwyg = CKEDITOR.tools.createClass( {\r
                $: function() {\r
                        this.base.apply( this, arguments );\r
 \r
                        this._.frameLoadedHandler = CKEDITOR.tools.addFunction( function( win ) {\r
                                // Avoid opening design mode in a frame window thread,\r
-                               // which will cause host page scrolling.(#4397)\r
+                               // which will cause host page scrolling.(http://dev.ckeditor.com/ticket/4397)\r
                                CKEDITOR.tools.setTimeout( onDomReady, 0, this, win );\r
                        }, this );\r
 \r
                                        this.fixInitialSelection();\r
 \r
                                        // Fire dataReady for the consistency with inline editors\r
-                                       // and because it makes sense. (#10370)\r
+                                       // and because it makes sense. (http://dev.ckeditor.com/ticket/10370)\r
                                        editor.fire( 'dataReady' );\r
                                }\r
                                else {\r
                                        }\r
 \r
                                        // The script that launches the bootstrap logic on 'domReady', so the document\r
-                                       // is fully editable even before the editing iframe is fully loaded (#4455).\r
+                                       // is fully editable even before the editing iframe is fully loaded (http://dev.ckeditor.com/ticket/4455).\r
                                        var bootstrapCode =\r
                                                '<script id="cke_actscrpt" type="text/javascript"' + ( CKEDITOR.env.ie ? ' defer="defer" ' : '' ) + '>' +\r
                                                        'var wasLoaded=0;' +    // It must be always set to 0 as it remains as a window property.\r
                                        }\r
 \r
                                        // IE<10 needs this hack to properly enable <base href="...">.\r
-                                       // See: http://stackoverflow.com/a/13373180/1485219 (#11910).\r
+                                       // See: http://stackoverflow.com/a/13373180/1485219 (http://dev.ckeditor.com/ticket/11910).\r
                                        if ( baseTag && CKEDITOR.env.ie && CKEDITOR.env.version < 10 ) {\r
                                                bootstrapCode +=\r
                                                        '<script id="cke_basetagscrpt">' +\r
 \r
                                        var doc = this.getDocument();\r
 \r
-                                       // Work around Firefox bug - error prune when called from XUL (#320),\r
+                                       // Work around Firefox bug - error prune when called from XUL (http://dev.ckeditor.com/ticket/320),\r
                                        // defer it thanks to the async nature of this method.\r
                                        try {\r
                                                doc.write( data );\r
 \r
                                        var data = fullPage ? doc.getDocumentElement().getOuterHtml() : doc.getBody().getHtml();\r
 \r
-                                       // BR at the end of document is bogus node for Mozilla. (#5293).\r
+                                       // BR at the end of document is bogus node for Mozilla. (http://dev.ckeditor.com/ticket/5293).\r
                                        // Prevent BRs from disappearing from the end of the content\r
-                                       // while enterMode is ENTER_BR (#10146).\r
+                                       // while enterMode is ENTER_BR (http://dev.ckeditor.com/ticket/10146).\r
                                        if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR )\r
                                                data = data.replace( /<br>(?=\s*(:?$|<\/body>))/, '' );\r
 \r
                                        onResize;\r
 \r
                                // Trying to access window's frameElement property on Edge throws an exception\r
-                               // when frame was already removed from DOM. (#13850, #13790)\r
+                               // when frame was already removed from DOM. (http://dev.ckeditor.com/ticket/13850, http://dev.ckeditor.com/ticket/13790)\r
                                try {\r
                                        iframe =  editor.window.getFrame();\r
                                } catch ( e ) {}\r
                                CKEDITOR.tools.removeFunction( this._.frameLoadedHandler );\r
 \r
                                // On IE, iframe is returned even after remove() method is called on it.\r
-                               // Checking if parent is present fixes this issue. (#13850)\r
+                               // Checking if parent is present fixes this issue. (http://dev.ckeditor.com/ticket/13850)\r
                                if ( iframe && iframe.getParent() ) {\r
                                        iframe.clearCustomData();\r
                                        onResize = iframe.removeCustomData( 'onResize' );\r
 \r
                                        // IE BUG: When destroying editor DOM with the selection remains inside\r
                                        // editing area would break IE7/8's selection system, we have to put the editing\r
-                                       // iframe offline first. (#3812 and #5441)\r
+                                       // iframe offline first. (http://dev.ckeditor.com/ticket/3812 and http://dev.ckeditor.com/ticket/5441)\r
                                        iframe.remove();\r
                                } else {\r
                                        CKEDITOR.warn( 'editor-destroy-iframe' );\r
                var css = [];\r
 \r
                // IE>=8 stricts mode doesn't have 'contentEditable' in effect\r
-               // on element unless it has layout. (#5562)\r
+               // on element unless it has layout. (http://dev.ckeditor.com/ticket/5562)\r
                if ( CKEDITOR.document.$.documentMode >= 8 ) {\r
                        css.push( 'html.CSS1Compat [contenteditable=false]{min-height:0 !important}' );\r
 \r
 \r
                        css.push( selectors.join( ',' ) + '{display:inline-block}' );\r
                }\r
-               // Set the HTML style to 100% to have the text cursor in affect (#6341)\r
+               // Set the HTML style to 100% to have the text cursor in affect (http://dev.ckeditor.com/ticket/6341)\r
                else if ( CKEDITOR.env.gecko ) {\r
                        css.push( 'html{height:100% !important}' );\r
                        css.push( 'img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}' );\r
                }\r
 \r
-               // #6341: The text cursor must be set on the editor area.\r
-               // #6632: Avoid having "text" shape of cursor in IE7 scrollbars.\r
+               // http://dev.ckeditor.com/ticket/6341: The text cursor must be set on the editor area.\r
+               // http://dev.ckeditor.com/ticket/6632: Avoid having "text" shape of cursor in IE7 scrollbars.\r
                css.push( 'html{cursor:text;*cursor:auto}' );\r
 \r
                // Use correct cursor for these elements\r
index 341a4e7e2c37698f4be6efd497a8e06b6950067e..bb3193af1fadb3ce3921ad07dec2d658a1910121 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>\r
 <!--\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 -->\r
 <html>\r
@@ -72,7 +72,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
                </p>\r
                <p id="copy">\r
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
                        Knabben. All rights reserved.\r
                </p>\r
        </div>\r
index 60b6b45a1721dd29c2dca874608de1759d4b7aa4..455b15239e01ae590e7aa4279b9e7b75f7a6bb6a 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 @media (max-width: 900px) {
@@ -136,7 +136,7 @@ html {
 }
 .navigation-a {
   height: 30px;
-  background: #3d3d3d;
+  background: #3D3D3D;
   position: absolute;
   left: 0;
   right: 0;
@@ -197,14 +197,14 @@ html {
   line-height: 1.13rem;
   line-height: 30px;
   float: left;
-  color: #dddddd;
+  color: #ddd;
   font-weight: bold;
   text-decoration: none;
   text-transform: uppercase;
 }
 .navigation-a ul li a:hover {
   cursor: pointer;
-  color: #ffffff;
+  color: #fff;
 }
 .icon-navigation-a-github:before,
 .icon-navigation-a-github:after {
@@ -282,9 +282,9 @@ html {
   color: #8a8a8a;
 }
 .footer-a a {
-  color: #27c0d8;
+  color: #27C0D8;
   text-decoration: none;
-  border-bottom: 1px dotted #27c0d8;
+  border-bottom: 1px dotted #27C0D8;
 }
 .footer-a a:hover {
   color: #23adc2;
@@ -333,7 +333,7 @@ html {
 .content blockquote,
 .content pre {
   background: none;
-  border-left: 4px solid #27c0d8;
+  border-left: 4px solid #27C0D8;
   padding: 1.5em 2.25em;
 }
 .content p a,
@@ -345,9 +345,9 @@ html {
 .content h3 a,
 .content h4 a,
 .content h5 a {
-  color: #27c0d8;
+  color: #27C0D8;
   text-decoration: none;
-  border-bottom: 1px dotted #27c0d8;
+  border-bottom: 1px dotted #27C0D8;
 }
 .content p a:hover,
 .content ul a:hover,
@@ -422,7 +422,7 @@ html {
   box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
   font: inherit;
   color: inherit;
-  border: 1px solid #d9d9d9;
+  border: 1px solid #D9D9D9;
   padding: .2em .5em;
 }
 .content input:focus,
@@ -489,7 +489,7 @@ html {
 }
 .content hr {
   border: 0;
-  border-top: 4px solid #d9d9d9;
+  border-top: 4px solid #D9D9D9;
   margin: 1.5em 0;
 }
 .content input[type="text"] {
@@ -508,9 +508,9 @@ html {
   line-height: 1.35rem;
   font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
   padding: 2px 6px;
-  -webkit-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
-  -moz-box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
-  box-shadow: 0 0 4px #ffffff inset, 0 2px 0 #d9d9d9;
+  -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+  -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+  box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
 }
 .content p img {
   vertical-align: middle;
@@ -704,7 +704,7 @@ body a.navigation-b ul li a:hover,
 body button.navigation-b ul li a:hover,
 body input.navigation-b ul li a:hover {
   color: #fff;
-  background: #27c0d8;
+  background: #27C0D8;
 }
 body a.button-a-background:active,
 body button.button-a-background:active,
@@ -826,7 +826,7 @@ body input.navigation-b ul li a:hover:hover {
   line-height: 25.2px;
   line-height: 1.57rem;
   font-weight: bold;
-  background-color: #27c0d8;
+  background-color: #27C0D8;
   overflow: hidden;
   display: inline-block;
   padding: 0.75em 0.25em;
@@ -1004,10 +1004,10 @@ footer > div {
   margin-top: 30px;
 }
 .footer-a {
-  border-top: 1px solid #d9d9d9;
+  border-top: 1px solid #D9D9D9;
 }
 .adjoined-top {
-  background-color: #27c0d8;
+  background-color: #27C0D8;
   color: #fff;
 }
 .adjoined-top .content h1,
@@ -1040,7 +1040,7 @@ footer > div {
 }
 .adjoined-top .content code {
   font-size: inherit;
-  color: #27c0d8;
+  color: #27C0D8;
 }
 .adjoined-bottom {
   position: relative;
@@ -1048,7 +1048,7 @@ footer > div {
 .adjoined-bottom:before {
   z-index: -1;
   content: '';
-  background: #27c0d8;
+  background: #27C0D8;
   position: absolute;
   top: 0;
   left: 0;
@@ -1091,15 +1091,7 @@ main .grid-container.freed-width {
 #main #editor {
   background: #FFF;
   padding: 2% 4%;
-  border: dashed 5px #27c0d8;
-}
-div.cke a.cke_button,
-div.cke .cke_combo_button {
-  border-bottom: none;
-}
-div.cke a.cke_button.cke_combo_button,
-div.cke .cke_combo_button.cke_combo_button {
-  border-bottom: 1px solid #a6a6a6;
+  border: dashed 5px #27C0D8;
 }
 #main .adjoined-top:before {
   height: 335px;
@@ -1313,7 +1305,7 @@ div.toolbarModifier .empty > p {
 div.toolbarModifier > ul {
   padding: 0;
   margin: 0;
-  border-top: 1px solid #cccccc;
+  border-top: 1px solid #ccc;
   width: 100%;
 }
 div.toolbarModifier > ul[data-type="table-header"] {
@@ -1336,7 +1328,7 @@ div.toolbarModifier > ul > li[data-type="header"] {
 }
 div.toolbarModifier > ul > li[data-type="group"],
 div.toolbarModifier > ul > li[data-type="separator"] {
-  border-bottom: 1px solid #cccccc;
+  border-bottom: 1px solid #ccc;
 }
 div.toolbarModifier > ul > li[data-type="subgroup"] {
   border-top: 1px solid #eee;
@@ -1425,7 +1417,7 @@ div.toolbarModifier > ul > li ul li {
   line-height: 1;
 }
 div.toolbarModifier > ul > li ul li[data-type="subgroup"] {
-  border-top: 1px solid #dddddd;
+  border-top: 1px solid #ddd;
 }
 div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {
   border-top: 0;
@@ -1491,7 +1483,7 @@ div.toolbarModifier-hints h3 {
   line-height: 2.03rem;
   padding: 0.36em 1.5em;
   background: #f5f5f5;
-  border-bottom: 1px solid #dddddd;
+  border-bottom: 1px solid #ddd;
   margin-top: 0;
   margin-bottom: 1.2em;
 }
@@ -1512,7 +1504,7 @@ div.toolbarModifier-hints dl dt {
   width: 9em;
   clear: both;
   text-align: right;
-  border-top: 1px solid #dddddd;
+  border-top: 1px solid #ddd;
   padding-left: 1.5em;
   padding-right: .1em;
   -webkit-box-sizing: border-box;
@@ -1637,4 +1629,4 @@ div.toolbarModifier-hints dl dd:after {
 #help-content {
   display: none;
 }
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBR2pDLFNJM0NDO0lBSUUsa0JBQUE7OztBQVZILFNBTUMsZUFPQztFQUNDLG1CQUFBOztBQ1ZIO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7O0FMcUNELFFBSGlDO0VBR2pDO0lLbENFLGtCQUFBOzs7QUFYRixhQWNDO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7O0FBakJGLGFBY0MsR0FLQztBQW5CRixhQWNDLEdBS0ssR0FBRztFQUNOLHFCQUFBOztBTHlCSCxRQUhpQztFQUdqQyxhSy9CQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFDQztJQUlDLGdCQUFBOzs7QUFJRixhQTlCRixHQXFCRSxhQVNDO0VBQ0EsaUJBQUE7O0FMQUosUUFIaUM7RUFHakMsYUsvQkMsR0FxQkUsYUFTQztJQUlDLGtCQUFBOzs7QUFNRixhQXhDRixHQXVDQyxHQUNHO0VBQ0QsaUJBQUE7O0FBdkRKLGFBY0MsR0F1Q0MsR0FLQztFTHhDRixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VLdUNHLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7O0FBRUEsYUFyREgsR0F1Q0MsR0FLQyxFQVNFO0VBQ0EsZUFBQTtFQUNBLGNBQUE7O0FBUUoseUJBQUM7QUFBUyx5QkFBQztFQUNWLHNCQUFrQixxckJBQWxCOztBQ3BGRjtFQUNDLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTs7QU5nREQsUUFIaUM7RUFHakM7SU03Q0Usa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQUdqQyxhTXRDQztJQVdFLGNBQUE7SUFDQSxXQUFBO0lBQ0EscUJBQUE7OztBTnlCSCxRQUhpQztFQUdqQyxhTXRDQyxHQWdCQztJQUVFLGtCQUFBOzs7QUFHRCxhQXJCRixHQWdCQyxHQUtHO0VBQ0QsaUJBQUE7O0FOZ0JKLFFBSGlDO0VBR2pDLGFNdENDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQUdqQyxhTXRDQyxHQWdCQyxHQWFDO0lBT0UsV0FBQTtJSHFPSCx3QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyxxQkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixnQkFBQTtJQUF5Qiw0QkFBQTs7O0FJeFIzQjtFUHdCQyxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VPeEJBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBTkQsU1A0RUM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxTQU5ELEVBTUU7RUFDQSxjQUFBOztBT25GSCxTQVFDO0VBQ0MsU0FBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7O0FDWEY7RVJ3QkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUXpCQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBSkQsUUFTQztFQUNDLGdCQUFBOztBQVZGLFFBYUM7QUFiRCxRQWFLO0FBYkwsUUFhUztBQWJULFFBYWM7QUFiZCxRQWEwQixTQUFRLElBQUk7QUFidEMsUUFhd0Q7RUFDdEQsaUJBQUE7O0FBZEYsUUFpQkM7QUFqQkQsUUFpQk87RUxxUUwsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUtyUXpCLGdCQUFBOztBQW5CRixRQXNCQztBQXRCRCxRQXNCTTtBQXRCTixRQXNCWTtBQXRCWixRQXNCaUI7RUFDZixtQkFBQTs7QUF2QkYsUUEwQkM7QUExQkQsUUEwQmE7RUFDWCxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EscUJBQUE7O0FBN0JGLFFBb0NDLEVSd0NBO0FRNUVELFFBb0NJLEdSd0NIO0FRNUVELFFBb0NRLEdSd0NQO0FRNUVELFFBb0NZLFdSd0NYO0FRNUVELFFBb0N3QixHUndDdkI7QVE1RUQsUUFvQzRCLEdSd0MzQjtBUTVFRCxRQW9DZ0MsR1J3Qy9CO0FRNUVELFFBb0NvQyxHUndDbkM7QVE1RUQsUUFvQ3dDLEdSd0N2QztFQUNDLGNBQUE7RUFDQSxxQkFBQTtFQUVBLGlDQUFBOztBQUVBLFFROUNELEVSd0NBLEVBTUU7QUFBRCxRUTlDRSxHUndDSCxFQU1FO0FBQUQsUVE5Q00sR1J3Q1AsRUFNRTtBQUFELFFROUNVLFdSd0NYLEVBTUU7QUFBRCxRUTlDc0IsR1J3Q3ZCLEVBTUU7QUFBRCxRUTlDMEIsR1J3QzNCLEVBTUU7QUFBRCxRUTlDOEIsR1J3Qy9CLEVBTUU7QUFBRCxRUTlDa0MsR1J3Q25DLEVBTUU7QUFBRCxRUTlDc0MsR1J3Q3ZDLEVBTUU7RUFDQSxjQUFBOztBUW5GSCxRQXdDQztBQXhDRCxRQXdDSztBQXhDTCxRQXdDUztBQXhDVCxRQXdDYTtBQXhDYixRQXdDaUI7RUFDZixXQUFBO0VBQ0EsZ0JBQUE7O0FBMUNGLFFBd0NDLEdBS0M7QUE3Q0YsUUF3Q0ssR0FLSDtBQTdDRixRQXdDUyxHQUtQO0FBN0NGLFFBd0NhLEdBS1g7QUE3Q0YsUUF3Q2lCLEdBS2Y7QUE3Q0YsUUF3Q0MsR0FLTztBQTdDUixRQXdDSyxHQUtHO0FBN0NSLFFBd0NTLEdBS0Q7QUE3Q1IsUUF3Q2EsR0FLTDtBQTdDUixRQXdDaUIsR0FLVDtFQUNMLGtCQUFBOztBQTlDSCxRQXdDQyxHQVVDLEVBQUM7QUFsREgsUUF3Q0ssR0FVSCxFQUFDO0FBbERILFFBd0NTLEdBVVAsRUFBQztBQWxESCxRQXdDYSxHQVVYLEVBQUM7QUFsREgsUUF3Q2lCLEdBVWYsRUFBQztFQUNBLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTs7QUFHRCxRQWpCRCxHQWlCRSxNQUNBLEVBQUM7QUFERixRQWpCRyxHQWlCRixNQUNBLEVBQUM7QUFERixRQWpCTyxHQWlCTixNQUNBLEVBQUM7QUFERixRQWpCVyxHQWlCVixNQUNBLEVBQUM7QUFERixRQWpCZSxHQWlCZCxNQUNBLEVBQUM7RUFDQSxVQUFBOztBQUlGLFFBdkJELEdBdUJFLE9BQ0E7QUFERCxRQXZCRyxHQXVCRixPQUNBO0FBREQsUUF2Qk8sR0F1Qk4sT0FDQTtBQURELFFBdkJXLEdBdUJWLE9BQ0E7QUFERCxRQXZCZSxHQXVCZCxPQUNBO0VMOERELDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxxREFBQTtFQUNBLGtEQUFBO0VLL0RFLFVBQUE7O0FBbEVKLFFBdUVDO0FBdkVELFFBdUVRO0FBdkVSLFFBdUVnQixTQUFRLElBQUk7RUwrTTFCLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VBbUJ6Qix1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7RUtsT0EsYUFBQTtFQUNBLGNBQUE7RUFFQSx5QkFBQTtFQUNBLGtCQUFBOztBQUVBLFFBVkQsTUFVRTtBQUFELFFBVk0sT0FVTDtBQUFELFFBVmMsU0FBUSxJQUFJLGdCQVV6QjtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTHdORCx3RUFBQTtFQUNBLHFFQUFBO0VBQ0EsZ0VBQUE7O0FLN1NGLFFBOEZDO0VBQ0MsOEJBQUE7RUFDQSxlQUFBOztBQWhHRixRQW1HQztFQUNDLGtCQUFBO0VBQ0EsNkJSbkcyQyx3QlFtRzNDO0VSN0VELGVBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTs7QVEzQkQsUUF5R0M7RUFDQyxrQkFBQTs7QUExR0YsUUE2R0M7RVJyRkEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW9GQyxtQkFBQTs7QUEvR0YsUUFrSEM7RVIxRkEsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVF5RkMsaUJBQUE7O0FBcEhGLFFBdUhDO0VSL0ZBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RVE4RkMsZ0JBQUE7RUFDQSxrQkFBQTs7QUExSEYsUUE2SEM7RVJyR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVFvR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUFoSUYsUUFtSUM7RVIzR0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RVEwR0MsZ0JBQUE7RUFDQSxrQkFBQTs7QUF0SUYsUUF5SUM7RUFDQyxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxlQUFBOztBQUlBLFFBREQsTUFDRTtFQUNBLGFBQUE7RUFDQSxrQkFBQTs7QUFHRCxRQU5ELE1BTUU7RUxpREQsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBOztBS3hNRixRQTRKQztFUnBJQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRbUlDLG9CUjdKOEIsdUNRNko5QjtFQUNBLGdCQUFBO0VMNElBLDBEQUFBO0VBQ0EsdURBQUE7RUFDQSxrREFBQTs7QUs3U0YsUUF1S0MsRUFDQztFQUNDLHNCQUFBOztBQXpLSCxRQXVLQyxFQUtDO0VBQ0MsY0FBQTs7QUE3S0gsUUFpTEM7RUFDQyxVQUFBO0VBQ0EsU0FBQTtFQUVBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7O0FBdkxGLFFBMExDO0FBMUxELFFBMExNO0VSbEtMLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VRa0tDLGdKQUFBOztBQTdMRixRQTBMQyxJQUtDO0FBL0xGLFFBMExNLEtBS0o7RUFDQyxTQUFBOztBQWhNSCxRQXFNQyxJQUFJO0VBQ0gsZUFBQTtFQUNBLGNBQUE7O0FBdk1GLFFBME1DO0VBQ0MsV0FBQTs7QUEzTUYsUUE4TUMsR0FFQztBQWhORixRQThNSyxHQUVIO0FBaE5GLFFBOE1DLEdBRUs7QUFoTk4sUUE4TUssR0FFQztFQUNILGdCQUFBOztBQWpOSCxRQThNQyxHQU1DO0FBcE5GLFFBOE1LLEdBTUg7RVI1TEQsZUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTs7QVEzQkQsUUEwTkMsU0FBUSxJQUFJO0VBQ1gsV0FBQTs7QUEzTkYsUUE4TkMsSUFBRztFQUNGLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBOzs7QUFHQSxRQU5ELElBQUcsS0FNRDtFQUNBLFNBQVMsTUFBVDtFQUNBLGlCQUFBOztBQ2pPRCxJQURELEVBQ0U7QUFBRCxJQURFLE9BQ0Q7QUFBRCxJQURVLE1BQ1Q7RU5pUkQsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUhoUTFCLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVNuQkUsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBSUEsYUFBQTtFQUdBLHVCQUFBOztBQUVBLElBdkJGLEVBQ0UsU0FzQkM7QUFBRCxJQXZCQyxPQUNELFNBc0JDO0FBQUQsSUF2QlMsTUFDVCxTQXNCQztFQUNBLGtCQUFBOztBQUdELElBM0JGLEVBQ0UsU0EwQkM7QUFBRCxJQTNCQyxPQUNELFNBMEJDO0FBQUQsSUEzQlMsTUFDVCxTQTBCQztFQUNBLG1CQUFBOztBQW9CRCxJQWhERixFQUNFLFNBK0NDO0FBQUQsSUFoREMsT0FDRCxTQStDQztBQUFELElBaERTLE1BQ1QsU0ErQ0M7RU5rT0YsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RU1uUHZCLFdBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7O0FBRUEsSUF4Q0gsRUFDRSxTQStDQyxpQkFSQztBQUFELElBeENBLE9BQ0QsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDUSxNQUNULFNBK0NDLGlCQVJDO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBOztBVEdMLFFBSGlDO0VBR2pDLElTL0NDLEVBQ0UsU0FtREM7RVRMSixJUy9DSSxPQUNELFNBbURDO0VUTEosSVMvQ1ksTUFDVCxTQW1EQztJTjhORiw0QkFBQTtJQUFpQyxvQ0FBQTtJQUNqQyx5QkFBQTtJQUE4Qiw2QkFBQTtJQUM5QixvQkFBQTtJQUF5Qiw0QkFBQTtJTW5QdkIsV0FBQTtJQUNBLFVBQUE7SUFDQSxtQkFBQTtJQUNBLGdCQUFBO0lBQ0Esa0JBQUE7SUFDQSxrQkFBQTs7RUFFQSxJQXhDSCxFQUNFLFNBbURDLDBCQVpDO0VBQUQsSUF4Q0EsT0FDRCxTQW1EQywwQkFaQztFQUFELElBeENRLE1BQ1QsU0FtREMsMEJBWkM7SUFDQSxrQkFBQTtJQUNBLFNBQUE7SUFDQSxRQUFBO0lBQ0EscUJBQUE7O0VBSkQsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOzs7QUFjRixJQTFERixFQUNFLFNBeURDO0FBQUQsSUExREMsT0FDRCxTQXlEQztBQUFELElBMURTLE1BQ1QsU0F5REM7QUFDRCxJQTNERixFQUNFLFNBMERDO0FBQUQsSUEzREMsT0FDRCxTQTBEQztBQUFELElBM0RTLE1BQ1QsU0EwREM7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FBR0QsSUFoRUYsRUFDRSxTQStEQztBQUFELElBaEVDLE9BQ0QsU0ErREM7QUFBRCxJQWhFUyxNQUNULFNBK0RDO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VOcU9GLHlFQUFBO0VBQ0Esc0VBQUE7RUFDQSxpRUFBQTs7QU01TkEsSUE3RUQsRUE2RUU7QUFBRCxJQTdFRSxPQTZFRDtBQUFELElBN0VVLE1BNkVUO0VBQ0EsbUJBQUE7O0FBRUEsSUFoRkYsRUE2RUUsY0FHQztBQUFELElBaEZDLE9BNkVELGNBR0M7QUFBRCxJQWhGUyxNQTZFVCxjQUdDO0FBQ0QsSUFqRkYsRUE2RUUsY0FJQztBQUFELElBakZDLE9BNkVELGNBSUM7QUFBRCxJQWpGUyxNQTZFVCxjQUlDO0VBQ0EsY0FBQTtFQUNBLG1CQUFBOztBQUlGLElBdkZELEVBdUZFO0FBQUQsSUF2RkUsT0F1RkQ7QUFBRCxJQXZGVSxNQXVGVDtBQUFELElBdkZELEVIaURHLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtBR3NDSCxJQXZGRSxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RlUsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0VHdUNGLFdBQUE7RUFDQSxtQkFBQTs7QUFFQSxJQTNGRixFQXVGRSxvQkFJQztBQUFELElBM0ZDLE9BdUZELG9CQUlDO0FBQUQsSUEzRlMsTUF1RlQsb0JBSUM7QUFDRCxJQTVGRixFQXVGRSxvQkFLQztBQUFELElBNUZDLE9BdUZELG9CQUtDO0FBQUQsSUE1RlMsTUF1RlQsb0JBS0M7QUFERCxJQTNGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFBRCxJQTNGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcwQ0Q7QUFDRCxJQTVGRixFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGQyxPSGlEQSxhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7QUFBRCxJQTVGUyxNSGlEUixhQXhDSCxHQWdCQyxHQWFDLEVBV0UsTUcyQ0Q7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7O0FDaEdKO0VWc0JDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUcyUEMsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RU9uUjFCLGdDQUFBO0VBRUEsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTs7QUFFQSxVQUFDO0VBQ0EsY0FBQTs7QUFHRCxVQUFDO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxhQUFBO0VBQ0EsOEJBQUE7RUFDQSx5REFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxXQUFBOztBQ3ZERixjQUFjO0FBQ2QsZUFBZTtFQUNkLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTtFQUNBLDRCQUFBOztBQUdELGNBQWM7RUFDYixrQkFBQTs7QUFHRCxlQUFlO0VBQ2QsaUJBQUE7O0FBSUEsY0FBQztBQUFTLGNBQUM7RUFDVixzQkFBa0IsNmNBQWxCOztBQUtELG1CQUFDO0FBQVMsbUJBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUFLRCxXQUFDO0FBQVMsV0FBQztFQUNWLHNCQUFrQiw2aUJBQWxCOztBQzVCRixJQUFLLFFBRUo7RUFDQyxzQkFBQTs7QUFIRixJQUFLLFFBTUosTUFBSztFQUNKLGdCQUFBO0VBQ0EscUJBQUE7O0FBUkYsSUFBSyxRQVdKO0VBQ0MseUJBQUE7RUFDQSwwQkFBQTs7QUFFQSxJQWZHLFFBV0osTUFJRTtFQUNBLFdBQUE7O0FBR0QsSUFuQkcsUUFXSixNQVFFO0VBQ0EsWUFBQTs7QUFwQkgsSUFBSyxRQXdCSjtFQUNDLGFBQUE7O0FBSUY7RVpaQyxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VZV0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RVQyT0MsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RVMzTzFCLGtCQUFBOztBQVRELE9BV0MsTUFBSztFQUNKLGFBQUE7O0FBWkYsT0FlQztFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7O0FBRUEsT0FQRCxNQU9FO0VBQ0EsMEJBQUE7O0FBdkJILE9BMkJDO0VBQ0MsV0FBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RVRpTkEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7O0FTcFAzQixPQTJCQyxjQVNDO0VBQ0MsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VUd01ELDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3ZNeEIsT0FsQkYsY0FTQyxTQVNFO0VBQ0EsU0FBUyxFQUFUO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxXQUFBO0VBQ0EsT0FBQTtFQUVBLHlCQUFBO0VUc0tGLHdDQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTtFQUtBLHlDQUFBO0VBQThDLG9DQUFBO0VBQzlDLHFDQUFBO0VBQTBDLDZCQUFBO0VBQzFDLGlDQUFBO0VBQXNDLDRCQUFBOztBU3ZLdkMsT0FBQyxNQUNBLGNBQWMsU0FBUTtFQUNyQixtQkFBQTs7QUFoRUgsT0FvRUMsTUFBSyxjQUFnQixRQUVwQixnQkFBZ0I7RUFDZixpQkFBQTs7QUF2RUgsT0FvRUMsTUFBSyxjQUFnQixRQVNwQixRQUFPO0VBQ04sc0JBQUE7RUFDQSxzQkFBQTs7QUEvRUgsT0FtRkMsTUFBSyxjQUFnQixRQUFTLFFBQU87RUFDcEMscUJBQUE7RUFDQSxxQkFBQTs7QUN6SEY7RVZrM0JFLHlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBOztBVXIzQkYsUUFHQztFQUNDLGVBQUE7O0FBSkYsUUFNQztFQUNDLGdCQUFBOztBQVBGLFFBVUM7RUFDQyxhQUFBOztBQUdELFFBQUMsVUFDQTtFQUNDLGFBQUE7O0FBRkYsUUFBQyxVQUtBO0VBQ0MsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTs7QUFFQSxrQkFBQztFQUNBLFNBQUE7O0FBTUQsc0JBQUM7QUFBRCx1QkFBQztBQUFTLHNCQUFDO0FBQUQsdUJBQUM7RUFDVixzQkFBa0IseXNCQUFsQjs7QUFJQSxzQkFEQSxXQUNDO0FBQUQsdUJBREEsV0FDQztBQUFTLHNCQURWLFdBQ1c7QUFBRCx1QkFEVixXQUNXO0VBQ1Ysc0JBQWtCLHF0QkFBbEI7O0FBTUYsc0JBQUM7QUFDRCxzQkFBQztFQUNBLDZCQUFBOztBQUtELHVCQUFDO0FBQ0QsdUJBQUM7RUFDQSxnQ0FBQTs7QUN0REY7RUFDQyxhQUFBO0VBQ0Esa0JBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0VYNFNDLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFV3pTRCxxQkFBQTtFQUNBLG1CQUFBO0VYZ3ZCQyx3Q0FBQTtFQUNBLHFDQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLGdDQUFBOztBV2p2QkQsTUFBQztFWHVRQSw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTtFV3ZRekIsZUFBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7O0FDekJGLElBQUs7QUFDTCxNQUFPO0FBQ1AsYUFBYztBQUNkLE1BQU87RUFDTixnQkFBQTs7QUFJRDtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsNkJBQUE7O0FDWEEsU0FBQztFQUNBLHlCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQUFDLElBSUEsU0FDQztBQUxGLFNBQUMsSUFJQSxTQUNLO0FBTE4sU0FBQyxJQUlBLFNBQ1M7QUFMVixTQUFDLElBSUEsU0FDYTtBQUxkLFNBQUMsSUFJQSxTQUNpQjtFQUNmLFdBQUE7O0FBTkgsU0FBQyxJQUlBLFNBS0M7RWhCWUYsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFZ0JiRyxnQkFBQTs7QUFYSCxTQUFDLElBSUEsU0FLQyxFQUlDO0VBQ0MscUJBQUE7RUFDQSw4QkFBQTtFQUNBLGNBQUE7O0FBRUEsU0FsQkgsSUFJQSxTQUtDLEVBSUMsRUFLRTtFQUNBLGNBQUE7O0FBbkJMLFNBQUMsSUFJQSxTQW9CQztFQUNDLFdBQUE7O0FBekJILFNBQUMsSUFJQSxTQXdCQztFQUNDLFdBQUE7O0FBN0JILFNBQUMsSUFJQSxTQTRCQztFQUNDLGtCQUFBO0VBQ0EsY0FBQTs7QUFLSCxTQUFDO0VBQ0Esa0JBQUE7O0FBRUEsU0FIQSxPQUdDO0VBQ0EsV0FBQTtFQUNBLFNBQVMsRUFBVDtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxXQUFBOztBQ3hESCxJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04saUJBQUE7O0FBR0QsSUFBSyxnQkFBZTtFQUNuQixlQUFBOztBQUdEO0VBQ0MsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsaUJBQUE7O0FBSEQsT0FNQztFQUVDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7RUFDQSxtQkFBQTtFQUdBLG1CQUFBO0VBQ0EsNEJBQUE7O0FBRUEsT0FYRCxXQVdFO0VBQ0EseURBQUE7O0FBS0gsUUFBUztFQUNSLGdCQUFBO0VBQ0EsU0FBQTtFQUNBLHdCQUFBOztBQUVBLFFBTFEsbUJBS1A7RUFDQSxZQUFBOztBQUtGLEtBQU07RUFDTCxnQkFBQTtFQUNBLGNBQUE7RUFDQSwwQkFBQTs7QUFJRCxHQUFHLElBQUssRUFBQztBQUNULEdBQUcsSUFBSztFQUNQLG1CQUFBOztBQUVBLEdBSkUsSUFBSyxFQUFDLFdBSVA7QUFBRCxHQUhFLElBQUssa0JBR047RUFDQSxnQ0FBQTs7QUFJRixLQUFNLGNBQWE7RUFDbEIsYUFBQTs7QUFJQSxRQURRLGNBQ1A7RUFDQSxhQUFBOztBQUZGLFFBQVMsY0FLUjtFQUNDLGFBQUE7O0FBSUYsUUFDQztFQUNDLGlCQUFBOztBQUlGO0VBQ0MsaUJBQUE7O0FBREQsU0FHQztFQUNDLFdBQUE7RUFDQSxpQkFBQTs7QUFMRixTQUdDLE1BSUM7RUFDQyxnQkFBQTs7QUFFQSxTQVBGLE1BSUMsU0FHRTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTs7QUFGRCxTQVBGLE1BSUMsU0FHRSxNQUlBO0VBQ0MsMEJBQUE7O0FBZkwsU0FHQyxNQWlCQztFQUNDLFdBQUE7RUFDQSxhQUFBOztBQUdELFNBdEJELE1Bc0JFO0VBQ0EsZ0JBQUE7O0FBS0g7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7O0FBRUEsdUJBQUM7RUFDQSxZQUFBO0VBQ0EsVUFBQTs7QUFLRjtFQUNDLGlCQUFBOztBQURELE1BR0MsSUFBRztFQUNGLGlCQUFBOztBQUpGLE1BT0M7RUFDQyxpQkFBQTs7QUFSRixNQU9DLGNBR0M7RUFDQyxpQkFBQTs7QUFYSCxNQU9DLGNBT0M7RUFFQyxrQkFBQTs7QUFoQkgsTUFvQkM7RUFDQyxrQkFBQTtFQUNBLFNBQUE7RUFFQSxTQUFBO0VBQ0Esa0JBQUE7O0FqQmhHRixRQUhpQztFQUdqQyxNaUIyRkM7SUFVRSxVQUFBO0lBQ0EsaUJBQUE7SUFFQSxVQUFBO0lBQ0EsbUJBQUE7O0VBRUEsTUFoQkYsV0FnQkc7SUFDQSxVQUFBO0lBQ0EsV0FBQTs7O0FqQjdHSixRQUhpQztFQUdqQyxNaUIyRkM7SUF3QkUsYUFBQTs7O0FDeEpILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSxnQ0FBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSw2QkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdDQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */
\ No newline at end of file
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */
index 0b154b799d6b86d884baadee3d9b0614345a31a9..5f4735143dccfc1cb6f6cb86f795450d2d7e7968 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -18,7 +18,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
        <div class="grid-container">
                <ul class="navigation-a-left grid-width-70">
                        <li><a href="http://ckeditor.com">Project Homepage</a></li>
-                       <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
+                       <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>
                        <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
                </ul>
                <ul class="navigation-a-right grid-width-30">
@@ -116,7 +116,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p class="grid-width-100" id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.
                </p>
        </div>
 </footer>
index d2eca00a4ae08fd4f3e70753b197ad196f63ab97..70cf8d6f655838a2523999f6a5b51de80de648c5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index 57d581d3be70260d60ad17531a71aee34a1a4080..d42dbd80c44e1524e7ab91ed1d9f15bc64e6968e 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 /* exported SF */
@@ -670,4 +670,4 @@ var SF = ( function() {
 }(window, document));
 
 // jscs:enable
-// jshint ignore:end
\ No newline at end of file
+// jshint ignore:end
index 3f88ec2ab5a85f01b202d02e067af6921da7a73d..852a0867fae5daf288e1f779df8db5954f39719d 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -77,7 +77,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index d01f0ee6f30530e5ef9557cdc20cd7536bfc27db..682a7197c5b5606807912006c867d4a52391196d 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -202,7 +202,7 @@ Second line of text preceded by two line breaks.</textarea>
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 51e2d626a9f7db17a67e5a1f5d80be90dc0fc9b8..a984704bb07ce8712c79ab025066895fd2892d0e 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -51,7 +51,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 50daa1d06ff6ad7a14d72edbf7b45514799078fe..b81e1d7882d01a3892cad3408b4ed9e6139d37d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  *
  * Styles used by the XHTML 1.1 sample page (xhtml.html).
index 914b0984d245c44fa6c0b2b013dcf647119928c5..ca43cc9c861b12db4495cd45fb361ea71c66644e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <?php
 /*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 ?>
@@ -52,7 +52,7 @@ if (!empty($_POST))
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
                </p>
        </div>
 </body>
index bffea89134b13757409a106d7385acfacb35ae33..a3cf84fe74cad09cccc7363578a4a6d54bb1dd46 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
@@ -9,6 +9,7 @@ var CKEDITOR_LANGS = ( function() {
        var langs = {
                af: 'Afrikaans',
                ar: 'Arabic',
+               az: 'Azerbaijani',
                bg: 'Bulgarian',
                bn: 'Bengali/Bangla',
                bs: 'Bosnian',
@@ -25,6 +26,7 @@ var CKEDITOR_LANGS = ( function() {
                'en-gb': 'English (United Kingdom)',
                eo: 'Esperanto',
                es: 'Spanish',
+               'es-mx': 'Spanish (Mexico)',
                et: 'Estonian',
                eu: 'Basque',
                fa: 'Persian',
@@ -54,6 +56,7 @@ var CKEDITOR_LANGS = ( function() {
                nb: 'Norwegian Bokmal',
                nl: 'Dutch',
                no: 'Norwegian',
+               oc: 'Occitan',
                pl: 'Polish',
                pt: 'Portuguese (Portugal)',
                'pt-br': 'Portuguese (Brazil)',
index 700cd9ed48cdc4f0357e90de20b18c6995a1c3b3..dd78ba5d0cbb544b760584cc1bbf07450ee36332 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -399,7 +399,7 @@ CKEDITOR.replace( 'editor4', {
                <div class="description">
                        <p>
                                This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.
-                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">
+                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">
                                Disallowed Content</a> property of the filter to eliminate all <code>title</code> attributes.
                        </p>
 
@@ -454,7 +454,7 @@ CKEDITOR.replace( 'editor6', {
                <div class="description">
                        <p>
                                This editor is using a custom configuration for <abbr title="Advanced Content Filter">ACF</abbr>.
-                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" target="_blank">
+                               It's using the <a href="http://docs.ckeditor.com/#!/guide/dev_disallowed_content" rel="noopener noreferrer" target="_blank">
                                Disallowed Content</a> property of the filter to eliminate all <code>a</code> and <code>img</code> tags,
                                while allowing all other tags.
                        </p>
@@ -500,7 +500,7 @@ CKEDITOR.replace( 'editor7', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 91008c8e899872056f2814d6e63456601bc02642..e882b22ef7c641ae745636027b4e2edc7855cf9e 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -136,7 +136,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 8f8105dd67d77aa73ef72296a105e44376a5907f..999d1101fe9d3902f7dff4817519e7291e24ff11 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -104,7 +104,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
                </p>
        </div>
 </body>
index 6fbd9ef38b374ac0bc6ff8682cac468a3d14d70e..8220ea59498c864ab9cde3f2ab518c3806513574 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -306,7 +306,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        http://ckeditor.com</a>
        </p>
        <p id="copy">
-               Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+               Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
                - Frederico Knabben. All rights reserved.
        </p>
 </div>
index 390b142b748a7847217c2ef51fba9e2f7be6fdf4..eea27236a5494e8a8348ea3cb89421fd696d7ffe 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -116,7 +116,7 @@ var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
                                http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
                        - Frederico Knabben. All rights reserved.
                </p>
        </div>
index 99ac241a6280d806861ffbbdadbe6709c8919de9..57e664ee2287a907a8543894565eff93d1da2635 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -105,7 +105,7 @@ var editor = CKEDITOR.inline( 'article-body' );
                                http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a>
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a>
                        - Frederico Knabben. All rights reserved.
                </p>
        </div>
index 75bffa9fd43d55a37992a1e1d8a956e0bfbac81b..2f6d95812c61ea42a6c68027d93b8197c1fad243 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -95,7 +95,7 @@ $( document ).ready( function() {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 086e7b428cba42f30db2b4ac5da3700818258f0b..084d6af14f78a84a94d560d35c26fc815d01b921 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -68,7 +68,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index e2eaa3549cb68a418ff152088bca9f14f186b730..23652d6b30ef5520d499afcdacc6cf3eb3affb14 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -52,7 +52,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index a447c4ebbe342e99ca1d458d267cbf23f503fb6f..a4f4395af65c7e53c2af28f955e1fdea3fb220d7 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -51,7 +51,7 @@ CKEDITOR.replace( '<em>textarea_id</em>' )
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 891509871de18c926905ed82a91a08c66bb3edee..33041112cfffb4bba9006c517a41b49ac1b2f938 100644 (file)
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
 
index 6152343d7cc02412d982fca9d4f3b5661cb40558..7d4c74eeaeb2466712d89ead007a531200fe5e43 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
index d34d5811d0fb9209754fb1e75cef84b869e9a0c3..54e9b7ce81a01ea04f1b3ba9378405e3e42d4476 100644 (file)
@@ -9,7 +9,7 @@
   To save the content created with CKEditor you need to read the POST data on the server
   side and write it to a file or the database.
 
-  Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+  Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
   For licensing, see LICENSE.md or http://ckeditor.com/license
 -------------------------------------------------------------------------------------------
 
index 22ff5bee2d529ce1d28344c8d1a27d40515fec91..4238f33ac177bb208d507e187033b19f685a3dea 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -70,7 +70,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 8acc91fa9783bb57c04a7804ea3c9a21084acc52..fb61b1fe06ab9beaf59a8a27198badad31eb0a09 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -64,7 +64,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index b1bb6947cac4c0d88e6ef4367eebadcd0d241005..76749cb0d0c23416d46b0106b27d2da0ad51e043 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -114,7 +114,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index 0732848beb63622c1e827ef66d1f13c401e09d7b..c918766fcd5516205c26ea573747c049aea7aa7e 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <html>
@@ -226,7 +226,7 @@ CKEDITOR.replace( '<em>textarea_id</em>', {
                        CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
                </p>
                <p id="copy">
-                       Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+                       Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
                        Knabben. All rights reserved.
                </p>
        </div>
index cf3d0438a32870a0f98ff537970d51ed1c666c37..ea216d26f8af528fac497d7691ce9a1abcdf853f 100644 (file)
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <!--
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 -->
 <!--[if IE 8]><html class="ie8"><![endif]-->
@@ -26,7 +26,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
        <div class="grid-container">
                <ul class="navigation-a-left grid-width-70">
                        <li><a href="http://ckeditor.com">Project Homepage</a></li>
-                       <li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
+                       <li><a href="https://github.com/ckeditor/ckeditor-dev/issues">I found a bug</a></li>
                        <li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
                </ul>
                <ul class="navigation-a-right grid-width-30">
@@ -136,7 +136,7 @@ For licensing, see LICENSE.md or http://ckeditor.com/license
                CKEditor &ndash; The text editor for the Internet &ndash; <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
        </p>
        <p class="grid-width-100" id="copy">
-               Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.
+               Copyright &copy; 2003-2017, <a class="samples" href="http://cksource.com/">CKSource</a> &ndash; Frederico Knabben. All rights reserved.
        </p>
 </footer>
 
index 0b7f918ba7cb5176c91969b3ad7d3669dc315308..0a212ffd525df2f94293452c7651539447e5a04f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+// Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 // For licensing, see LICENSE.html or http://cksource.com/ckeditor/license
 
 @base-font-size:                               16px;
index 319c69952f01cc5d53b952c0b291f5c17fd81d38..8aa5d08c714f1d7029e8d1c9000884b1f41ff18c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+// Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 // For licensing, see LICENSE.html or http://cksource.com/ckeditor/license
 
 @import "base.less";
index 37e268554cc7822ea4e70065d4708e11b8741d3f..e5c31559e4e75bf71ac0ed26050be80204b44347 100644 (file)
     // very slow. So make the area wide instead.
     if (webkit) te.style.width = "1000px";
     else te.setAttribute("wrap", "off");
-    // If border: 0; -- iOS fails to open keyboard (issue #1287)
+    // If border: 0; -- iOS fails to open keyboard (issue http://dev.ckeditor.com/ticket/1287)
     if (ios) te.style.border = "1px solid black";
     disableBrowserMagic(te);
     return div;
       if (text == prevInput && !cm.somethingSelected()) return false;
       // Work around nonsensical selection resetting in IE9/10, and
       // inexplicable appearance of private area unicode characters on
-      // some key combos in Mac (#2689).
+      // some key combos in Mac (http://dev.ckeditor.com/ticket/2689).
       if (ie && ie_version >= 9 && this.hasSelection === text ||
           mac && /[\uf700-\uf7ff]/.test(text)) {
         cm.display.input.reset();
         "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: " +
         (ie ? "rgba(255, 255, 255, .05)" : "transparent") +
         "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
-      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
+      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (http://dev.ckeditor.com/ticket/2712)
       display.input.focus();
       if (webkit) window.scrollTo(null, oldScrollY);
       display.input.reset();
         e_preventDefault(e2);
         if (!modifier && +new Date - 200 < startTime)
           extendSelection(cm.doc, start);
-        // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
+        // Work around unexplainable focus problem in IE9 (http://dev.ckeditor.com/ticket/2127) and Chrome (http://dev.ckeditor.com/ticket/3081)
         if (webkit || ie && ie_version == 9)
           setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
         else
   }
 
   // Kludge to work around strange IE behavior where it'll sometimes
-  // re-fire a series of drag-related events right after the drop (#1551)
+  // re-fire a series of drag-related events right after the drop (http://dev.ckeditor.com/ticket/1551)
   var lastDrop = 0;
 
   function onDrop(e) {
       // select-all detection hack)
       if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
         cm.display.input.reset();
-        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
+        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue http://dev.ckeditor.com/ticket/1730
       }
       cm.display.input.receivedFocus();
     }
       }
     }
 
-    // See issue #2901
+    // See issue http://dev.ckeditor.com/ticket/2901
     if (webkit && /\bcm-tab\b/.test(builder.content.lastChild.className))
       builder.content.className = "cm-tab-wrap-hack";
 
     if (badBidiRects != null) return badBidiRects;
     var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
     var r0 = range(txt, 0, 1).getBoundingClientRect();
-    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
+    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (http://dev.ckeditor.com/ticket/2780)
     var r1 = range(txt, 1, 2).getBoundingClientRect();
     return badBidiRects = (r1.right - r0.right < 3);
   }
index 8012f24e0a1f64a5ae3f32bf77798b705ea25749..efad9d937a4629c08ea038235fcfa46ceae32fbe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index e2fc62ec2dae1c5640dfbea94cc5ad4b17169536..4e090533d9c4af06d98f4674f591fcf4611797f0 100644 (file)
                "plugins/link/icons/link.png",
                "plugins/link/icons/unlink.png",
                "plugins/link/icons/anchor.png",
-               "plugins/link/icons/anchor-rtl.png"
+               "plugins/link/icons/anchor-rtl.png",
+               "plugins/copyformatting/icons/copyformatting.png"
        ],
        "7": [
                [
                "skins/moono/images/lock-open.png",
                "skins/moono/images/refresh.png"
        ]
-}
\ No newline at end of file
+}
index 1f3704bee2e33ec00ff519c4772da0556cc120eb..93907bee2722085234c2f665dd9b995a36e77862 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
@@ -284,7 +284,7 @@ a.cke_dialog_tab_selected
 \r
 /* A hover state for selected tab. */\r
 a.cke_dialog_tab_selected:hover,\r
-a.cke_dialog_tab_selected:focus,\r
+a.cke_dialog_tab_selected:focus\r
 {\r
        background: #ededed;\r
        background: linear-gradient(to bottom, #ededed 0%,#ffffff 100%);\r
index 16480b7e37a05363eda792a4686a59a5834dec48..af86642405ad1385134de223b9a00d5a4c26200b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index e4eba128c9cb60478a870e6d29fde0c17165a2d7..148645d330b980e0fd5d65bedb678d44f2327367 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index cf642eb4889fc5530821b7c3a12332f3e71a4071..1926e5033afec57343fc47321d2010e3a1d97a61 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index daa0afa8ea2e0fe2662a6423cc97203afae1534b..2f89fdf33fb97006ba1ae4e0fcb7d8980c5d1350 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 9f960364882f6f488520d4170deb1ce83e3e5e30..f3f65df4385423947e4e334f01328b80b1c97f31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index c3f3398ef1d72079586a1d83800195a75e8265d2..370ffff98d2a12ff4c61f4d7ed4763f463dc83a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 19df7fd291e493eb325288cf1454b6bf25f12e06..504789fbf813e5a0f7896919fbfa359b7480cdc7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index e2c3c6c41c39963467e9448021595f24ca4b3696..8079504230625b2ee6107dda865c4ff461fb04cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 902a9da25b268ad6e54ba3fce967f2e554b42004..9862024b151f22bbf461acd51d852aac986cbb6d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 06bcb60a85916ff9f2b01b9833704abea913951e..237699227d0ec3b5a52a65862fa059b5b27283c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index c8e12feb3b6e53894743c5480313ad8c5abe0003..3bf10d67dc4d477576a4541b005b7e3af23190cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
diff --git a/sources/skins/moono/icons/about.png b/sources/skins/moono/icons/about.png
new file mode 100644 (file)
index 0000000..d36b8a1
Binary files /dev/null and b/sources/skins/moono/icons/about.png differ
diff --git a/sources/skins/moono/icons/anchor-rtl.png b/sources/skins/moono/icons/anchor-rtl.png
new file mode 100644 (file)
index 0000000..a07d34e
Binary files /dev/null and b/sources/skins/moono/icons/anchor-rtl.png differ
diff --git a/sources/skins/moono/icons/anchor.png b/sources/skins/moono/icons/anchor.png
new file mode 100644 (file)
index 0000000..2d2f91d
Binary files /dev/null and b/sources/skins/moono/icons/anchor.png differ
diff --git a/sources/skins/moono/icons/bgcolor.png b/sources/skins/moono/icons/bgcolor.png
new file mode 100644 (file)
index 0000000..549f0fa
Binary files /dev/null and b/sources/skins/moono/icons/bgcolor.png differ
diff --git a/sources/skins/moono/icons/bidiltr.png b/sources/skins/moono/icons/bidiltr.png
new file mode 100644 (file)
index 0000000..8a11ec5
Binary files /dev/null and b/sources/skins/moono/icons/bidiltr.png differ
diff --git a/sources/skins/moono/icons/bidirtl.png b/sources/skins/moono/icons/bidirtl.png
new file mode 100644 (file)
index 0000000..318e245
Binary files /dev/null and b/sources/skins/moono/icons/bidirtl.png differ
diff --git a/sources/skins/moono/icons/blockquote.png b/sources/skins/moono/icons/blockquote.png
new file mode 100644 (file)
index 0000000..61d8fd3
Binary files /dev/null and b/sources/skins/moono/icons/blockquote.png differ
diff --git a/sources/skins/moono/icons/bold.png b/sources/skins/moono/icons/bold.png
new file mode 100644 (file)
index 0000000..885e916
Binary files /dev/null and b/sources/skins/moono/icons/bold.png differ
diff --git a/sources/skins/moono/icons/bulletedlist-rtl.png b/sources/skins/moono/icons/bulletedlist-rtl.png
new file mode 100644 (file)
index 0000000..617096f
Binary files /dev/null and b/sources/skins/moono/icons/bulletedlist-rtl.png differ
diff --git a/sources/skins/moono/icons/bulletedlist.png b/sources/skins/moono/icons/bulletedlist.png
new file mode 100644 (file)
index 0000000..6bef9a5
Binary files /dev/null and b/sources/skins/moono/icons/bulletedlist.png differ
diff --git a/sources/skins/moono/icons/button.png b/sources/skins/moono/icons/button.png
new file mode 100644 (file)
index 0000000..c0f2fcc
Binary files /dev/null and b/sources/skins/moono/icons/button.png differ
diff --git a/sources/skins/moono/icons/checkbox.png b/sources/skins/moono/icons/checkbox.png
new file mode 100644 (file)
index 0000000..45397d4
Binary files /dev/null and b/sources/skins/moono/icons/checkbox.png differ
diff --git a/sources/skins/moono/icons/codesnippet.png b/sources/skins/moono/icons/codesnippet.png
new file mode 100644 (file)
index 0000000..6493f6f
Binary files /dev/null and b/sources/skins/moono/icons/codesnippet.png differ
diff --git a/sources/skins/moono/icons/copy-rtl.png b/sources/skins/moono/icons/copy-rtl.png
new file mode 100644 (file)
index 0000000..1d65071
Binary files /dev/null and b/sources/skins/moono/icons/copy-rtl.png differ
diff --git a/sources/skins/moono/icons/copy.png b/sources/skins/moono/icons/copy.png
new file mode 100644 (file)
index 0000000..1d65071
Binary files /dev/null and b/sources/skins/moono/icons/copy.png differ
diff --git a/sources/skins/moono/icons/copyformatting.png b/sources/skins/moono/icons/copyformatting.png
new file mode 100644 (file)
index 0000000..0eb02ee
Binary files /dev/null and b/sources/skins/moono/icons/copyformatting.png differ
diff --git a/sources/skins/moono/icons/creatediv.png b/sources/skins/moono/icons/creatediv.png
new file mode 100644 (file)
index 0000000..79d5bb5
Binary files /dev/null and b/sources/skins/moono/icons/creatediv.png differ
diff --git a/sources/skins/moono/icons/cut-rtl.png b/sources/skins/moono/icons/cut-rtl.png
new file mode 100644 (file)
index 0000000..97f826e
Binary files /dev/null and b/sources/skins/moono/icons/cut-rtl.png differ
diff --git a/sources/skins/moono/icons/cut.png b/sources/skins/moono/icons/cut.png
new file mode 100644 (file)
index 0000000..97f826e
Binary files /dev/null and b/sources/skins/moono/icons/cut.png differ
diff --git a/sources/skins/moono/icons/docprops-rtl.png b/sources/skins/moono/icons/docprops-rtl.png
new file mode 100644 (file)
index 0000000..1e6d212
Binary files /dev/null and b/sources/skins/moono/icons/docprops-rtl.png differ
diff --git a/sources/skins/moono/icons/docprops.png b/sources/skins/moono/icons/docprops.png
new file mode 100644 (file)
index 0000000..dd7e1e8
Binary files /dev/null and b/sources/skins/moono/icons/docprops.png differ
diff --git a/sources/skins/moono/icons/find-rtl.png b/sources/skins/moono/icons/find-rtl.png
new file mode 100644 (file)
index 0000000..8d94455
Binary files /dev/null and b/sources/skins/moono/icons/find-rtl.png differ
diff --git a/sources/skins/moono/icons/find.png b/sources/skins/moono/icons/find.png
new file mode 100644 (file)
index 0000000..8d94455
Binary files /dev/null and b/sources/skins/moono/icons/find.png differ
diff --git a/sources/skins/moono/icons/flash.png b/sources/skins/moono/icons/flash.png
new file mode 100644 (file)
index 0000000..6b7c843
Binary files /dev/null and b/sources/skins/moono/icons/flash.png differ
diff --git a/sources/skins/moono/icons/form.png b/sources/skins/moono/icons/form.png
new file mode 100644 (file)
index 0000000..68c5b6b
Binary files /dev/null and b/sources/skins/moono/icons/form.png differ
diff --git a/sources/skins/moono/icons/hiddenfield.png b/sources/skins/moono/icons/hiddenfield.png
new file mode 100644 (file)
index 0000000..ddc547f
Binary files /dev/null and b/sources/skins/moono/icons/hiddenfield.png differ
diff --git a/sources/skins/moono/icons/hidpi/.DS_Store b/sources/skins/moono/icons/hidpi/.DS_Store
new file mode 100644 (file)
index 0000000..9d2abe5
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/.DS_Store differ
diff --git a/sources/skins/moono/icons/hidpi/about.png b/sources/skins/moono/icons/hidpi/about.png
new file mode 100644 (file)
index 0000000..8ecc4a6
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/about.png differ
diff --git a/sources/skins/moono/icons/hidpi/anchor-rtl.png b/sources/skins/moono/icons/hidpi/anchor-rtl.png
new file mode 100644 (file)
index 0000000..318a138
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/anchor-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/anchor.png b/sources/skins/moono/icons/hidpi/anchor.png
new file mode 100644 (file)
index 0000000..53486a8
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/anchor.png differ
diff --git a/sources/skins/moono/icons/hidpi/bgcolor.png b/sources/skins/moono/icons/hidpi/bgcolor.png
new file mode 100644 (file)
index 0000000..20fcf37
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bgcolor.png differ
diff --git a/sources/skins/moono/icons/hidpi/bidiltr.png b/sources/skins/moono/icons/hidpi/bidiltr.png
new file mode 100644 (file)
index 0000000..6fb7456
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bidiltr.png differ
diff --git a/sources/skins/moono/icons/hidpi/bidirtl.png b/sources/skins/moono/icons/hidpi/bidirtl.png
new file mode 100644 (file)
index 0000000..80f063d
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bidirtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/blockquote.png b/sources/skins/moono/icons/hidpi/blockquote.png
new file mode 100644 (file)
index 0000000..965f910
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/blockquote.png differ
diff --git a/sources/skins/moono/icons/hidpi/bold.png b/sources/skins/moono/icons/hidpi/bold.png
new file mode 100644 (file)
index 0000000..613319b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bold.png differ
diff --git a/sources/skins/moono/icons/hidpi/bulletedlist-rtl.png b/sources/skins/moono/icons/hidpi/bulletedlist-rtl.png
new file mode 100644 (file)
index 0000000..34da46b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bulletedlist-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/bulletedlist.png b/sources/skins/moono/icons/hidpi/bulletedlist.png
new file mode 100644 (file)
index 0000000..f322ed9
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/bulletedlist.png differ
diff --git a/sources/skins/moono/icons/hidpi/button.png b/sources/skins/moono/icons/hidpi/button.png
new file mode 100644 (file)
index 0000000..a7b2b42
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/button.png differ
diff --git a/sources/skins/moono/icons/hidpi/checkbox.png b/sources/skins/moono/icons/hidpi/checkbox.png
new file mode 100644 (file)
index 0000000..53ac357
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/checkbox.png differ
diff --git a/sources/skins/moono/icons/hidpi/codesnippet.png b/sources/skins/moono/icons/hidpi/codesnippet.png
new file mode 100644 (file)
index 0000000..a9b3a98
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/codesnippet.png differ
diff --git a/sources/skins/moono/icons/hidpi/copy-rtl.png b/sources/skins/moono/icons/hidpi/copy-rtl.png
new file mode 100644 (file)
index 0000000..6c9a0fe
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/copy-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/copy.png b/sources/skins/moono/icons/hidpi/copy.png
new file mode 100644 (file)
index 0000000..6c9a0fe
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/copy.png differ
diff --git a/sources/skins/moono/icons/hidpi/copyformatting.png b/sources/skins/moono/icons/hidpi/copyformatting.png
new file mode 100644 (file)
index 0000000..4f95e7a
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/copyformatting.png differ
diff --git a/sources/skins/moono/icons/hidpi/creatediv.png b/sources/skins/moono/icons/hidpi/creatediv.png
new file mode 100644 (file)
index 0000000..808e466
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/creatediv.png differ
diff --git a/sources/skins/moono/icons/hidpi/cut-rtl.png b/sources/skins/moono/icons/hidpi/cut-rtl.png
new file mode 100644 (file)
index 0000000..39c4af0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/cut-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/cut.png b/sources/skins/moono/icons/hidpi/cut.png
new file mode 100644 (file)
index 0000000..39c4af0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/cut.png differ
diff --git a/sources/skins/moono/icons/hidpi/docprops-rtl.png b/sources/skins/moono/icons/hidpi/docprops-rtl.png
new file mode 100644 (file)
index 0000000..de8722f
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/docprops-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/docprops.png b/sources/skins/moono/icons/hidpi/docprops.png
new file mode 100644 (file)
index 0000000..74af812
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/docprops.png differ
diff --git a/sources/skins/moono/icons/hidpi/find-rtl.png b/sources/skins/moono/icons/hidpi/find-rtl.png
new file mode 100644 (file)
index 0000000..ff0e0c6
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/find-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/find.png b/sources/skins/moono/icons/hidpi/find.png
new file mode 100644 (file)
index 0000000..ff0e0c6
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/find.png differ
diff --git a/sources/skins/moono/icons/hidpi/flash.png b/sources/skins/moono/icons/hidpi/flash.png
new file mode 100644 (file)
index 0000000..7323b19
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/flash.png differ
diff --git a/sources/skins/moono/icons/hidpi/form.png b/sources/skins/moono/icons/hidpi/form.png
new file mode 100644 (file)
index 0000000..90f4813
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/form.png differ
diff --git a/sources/skins/moono/icons/hidpi/hiddenfield.png b/sources/skins/moono/icons/hidpi/hiddenfield.png
new file mode 100644 (file)
index 0000000..fd10781
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/hiddenfield.png differ
diff --git a/sources/skins/moono/icons/hidpi/horizontalrule.png b/sources/skins/moono/icons/hidpi/horizontalrule.png
new file mode 100644 (file)
index 0000000..0ae87fb
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/horizontalrule.png differ
diff --git a/sources/skins/moono/icons/hidpi/iframe.png b/sources/skins/moono/icons/hidpi/iframe.png
new file mode 100644 (file)
index 0000000..a56ecb0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/iframe.png differ
diff --git a/sources/skins/moono/icons/hidpi/image.png b/sources/skins/moono/icons/hidpi/image.png
new file mode 100644 (file)
index 0000000..e9579fb
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/image.png differ
diff --git a/sources/skins/moono/icons/hidpi/imagebutton.png b/sources/skins/moono/icons/hidpi/imagebutton.png
new file mode 100644 (file)
index 0000000..f38b758
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/imagebutton.png differ
diff --git a/sources/skins/moono/icons/hidpi/indent-rtl.png b/sources/skins/moono/icons/hidpi/indent-rtl.png
new file mode 100644 (file)
index 0000000..44eea22
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/indent-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/indent.png b/sources/skins/moono/icons/hidpi/indent.png
new file mode 100644 (file)
index 0000000..417f092
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/indent.png differ
diff --git a/sources/skins/moono/icons/hidpi/italic.png b/sources/skins/moono/icons/hidpi/italic.png
new file mode 100644 (file)
index 0000000..07b1d1d
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/italic.png differ
diff --git a/sources/skins/moono/icons/hidpi/justifyblock.png b/sources/skins/moono/icons/hidpi/justifyblock.png
new file mode 100644 (file)
index 0000000..4535a39
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/justifyblock.png differ
diff --git a/sources/skins/moono/icons/hidpi/justifycenter.png b/sources/skins/moono/icons/hidpi/justifycenter.png
new file mode 100644 (file)
index 0000000..8749f69
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/justifycenter.png differ
diff --git a/sources/skins/moono/icons/hidpi/justifyleft.png b/sources/skins/moono/icons/hidpi/justifyleft.png
new file mode 100644 (file)
index 0000000..50a4307
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/justifyleft.png differ
diff --git a/sources/skins/moono/icons/hidpi/justifyright.png b/sources/skins/moono/icons/hidpi/justifyright.png
new file mode 100644 (file)
index 0000000..6d127e7
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/justifyright.png differ
diff --git a/sources/skins/moono/icons/hidpi/language.png b/sources/skins/moono/icons/hidpi/language.png
new file mode 100644 (file)
index 0000000..d778031
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/language.png differ
diff --git a/sources/skins/moono/icons/hidpi/link.png b/sources/skins/moono/icons/hidpi/link.png
new file mode 100644 (file)
index 0000000..fed6b91
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/link.png differ
diff --git a/sources/skins/moono/icons/hidpi/maximize.png b/sources/skins/moono/icons/hidpi/maximize.png
new file mode 100644 (file)
index 0000000..eeaa700
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/maximize.png differ
diff --git a/sources/skins/moono/icons/hidpi/newpage-rtl.png b/sources/skins/moono/icons/hidpi/newpage-rtl.png
new file mode 100644 (file)
index 0000000..c5e1d3b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/newpage-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/newpage.png b/sources/skins/moono/icons/hidpi/newpage.png
new file mode 100644 (file)
index 0000000..139279b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/newpage.png differ
diff --git a/sources/skins/moono/icons/hidpi/numberedlist-rtl.png b/sources/skins/moono/icons/hidpi/numberedlist-rtl.png
new file mode 100644 (file)
index 0000000..b449c2b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/numberedlist-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/numberedlist.png b/sources/skins/moono/icons/hidpi/numberedlist.png
new file mode 100644 (file)
index 0000000..b7442ef
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/numberedlist.png differ
diff --git a/sources/skins/moono/icons/hidpi/outdent-rtl.png b/sources/skins/moono/icons/hidpi/outdent-rtl.png
new file mode 100644 (file)
index 0000000..a642bca
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/outdent-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/outdent.png b/sources/skins/moono/icons/hidpi/outdent.png
new file mode 100644 (file)
index 0000000..6d715a5
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/outdent.png differ
diff --git a/sources/skins/moono/icons/hidpi/pagebreak-rtl.png b/sources/skins/moono/icons/hidpi/pagebreak-rtl.png
new file mode 100644 (file)
index 0000000..6fc486b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pagebreak-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/pagebreak.png b/sources/skins/moono/icons/hidpi/pagebreak.png
new file mode 100644 (file)
index 0000000..a19ecc0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pagebreak.png differ
diff --git a/sources/skins/moono/icons/hidpi/paste-rtl.png b/sources/skins/moono/icons/hidpi/paste-rtl.png
new file mode 100644 (file)
index 0000000..14f9eff
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/paste-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/paste.png b/sources/skins/moono/icons/hidpi/paste.png
new file mode 100644 (file)
index 0000000..14f9eff
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/paste.png differ
diff --git a/sources/skins/moono/icons/hidpi/pastefromword-rtl.png b/sources/skins/moono/icons/hidpi/pastefromword-rtl.png
new file mode 100644 (file)
index 0000000..fb9ef9e
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pastefromword-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/pastefromword.png b/sources/skins/moono/icons/hidpi/pastefromword.png
new file mode 100644 (file)
index 0000000..7666b0f
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pastefromword.png differ
diff --git a/sources/skins/moono/icons/hidpi/pastetext-rtl.png b/sources/skins/moono/icons/hidpi/pastetext-rtl.png
new file mode 100644 (file)
index 0000000..b30fc9b
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pastetext-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/pastetext.png b/sources/skins/moono/icons/hidpi/pastetext.png
new file mode 100644 (file)
index 0000000..e811afc
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/pastetext.png differ
diff --git a/sources/skins/moono/icons/hidpi/placeholder.png b/sources/skins/moono/icons/hidpi/placeholder.png
new file mode 100644 (file)
index 0000000..0874f14
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/placeholder.png differ
diff --git a/sources/skins/moono/icons/hidpi/preview-rtl.png b/sources/skins/moono/icons/hidpi/preview-rtl.png
new file mode 100644 (file)
index 0000000..06d06c0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/preview-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/preview.png b/sources/skins/moono/icons/hidpi/preview.png
new file mode 100644 (file)
index 0000000..993e79e
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/preview.png differ
diff --git a/sources/skins/moono/icons/hidpi/print.png b/sources/skins/moono/icons/hidpi/print.png
new file mode 100644 (file)
index 0000000..42064c2
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/print.png differ
diff --git a/sources/skins/moono/icons/hidpi/radio.png b/sources/skins/moono/icons/hidpi/radio.png
new file mode 100644 (file)
index 0000000..c84bc00
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/radio.png differ
diff --git a/sources/skins/moono/icons/hidpi/redo-rtl.png b/sources/skins/moono/icons/hidpi/redo-rtl.png
new file mode 100644 (file)
index 0000000..c8583ea
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/redo-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/redo.png b/sources/skins/moono/icons/hidpi/redo.png
new file mode 100644 (file)
index 0000000..fb25750
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/redo.png differ
diff --git a/sources/skins/moono/icons/hidpi/removeformat.png b/sources/skins/moono/icons/hidpi/removeformat.png
new file mode 100644 (file)
index 0000000..738ebcd
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/removeformat.png differ
diff --git a/sources/skins/moono/icons/hidpi/replace.png b/sources/skins/moono/icons/hidpi/replace.png
new file mode 100644 (file)
index 0000000..3944ec3
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/replace.png differ
diff --git a/sources/skins/moono/icons/hidpi/save.png b/sources/skins/moono/icons/hidpi/save.png
new file mode 100644 (file)
index 0000000..21f92bf
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/save.png differ
diff --git a/sources/skins/moono/icons/hidpi/scayt.png b/sources/skins/moono/icons/hidpi/scayt.png
new file mode 100644 (file)
index 0000000..5f0b6d9
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/scayt.png differ
diff --git a/sources/skins/moono/icons/hidpi/select-rtl.png b/sources/skins/moono/icons/hidpi/select-rtl.png
new file mode 100644 (file)
index 0000000..925c06d
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/select-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/select.png b/sources/skins/moono/icons/hidpi/select.png
new file mode 100644 (file)
index 0000000..0e995f9
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/select.png differ
diff --git a/sources/skins/moono/icons/hidpi/selectall.png b/sources/skins/moono/icons/hidpi/selectall.png
new file mode 100644 (file)
index 0000000..68f3239
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/selectall.png differ
diff --git a/sources/skins/moono/icons/hidpi/showblocks-rtl.png b/sources/skins/moono/icons/hidpi/showblocks-rtl.png
new file mode 100644 (file)
index 0000000..d210fad
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/showblocks-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/showblocks.png b/sources/skins/moono/icons/hidpi/showblocks.png
new file mode 100644 (file)
index 0000000..d6d51d1
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/showblocks.png differ
diff --git a/sources/skins/moono/icons/hidpi/smiley.png b/sources/skins/moono/icons/hidpi/smiley.png
new file mode 100644 (file)
index 0000000..5a70b89
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/smiley.png differ
diff --git a/sources/skins/moono/icons/hidpi/source-rtl.png b/sources/skins/moono/icons/hidpi/source-rtl.png
new file mode 100644 (file)
index 0000000..64b2266
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/source-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/source.png b/sources/skins/moono/icons/hidpi/source.png
new file mode 100644 (file)
index 0000000..4e732c0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/source.png differ
diff --git a/sources/skins/moono/icons/hidpi/sourcedialog-rtl.png b/sources/skins/moono/icons/hidpi/sourcedialog-rtl.png
new file mode 100644 (file)
index 0000000..64b2266
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/sourcedialog-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/sourcedialog.png b/sources/skins/moono/icons/hidpi/sourcedialog.png
new file mode 100644 (file)
index 0000000..4e732c0
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/sourcedialog.png differ
diff --git a/sources/skins/moono/icons/hidpi/specialchar.png b/sources/skins/moono/icons/hidpi/specialchar.png
new file mode 100644 (file)
index 0000000..5874ea3
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/specialchar.png differ
diff --git a/sources/skins/moono/icons/hidpi/spellchecker.png b/sources/skins/moono/icons/hidpi/spellchecker.png
new file mode 100644 (file)
index 0000000..5f0b6d9
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/spellchecker.png differ
diff --git a/sources/skins/moono/icons/hidpi/strike.png b/sources/skins/moono/icons/hidpi/strike.png
new file mode 100644 (file)
index 0000000..45c3269
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/strike.png differ
diff --git a/sources/skins/moono/icons/hidpi/subscript.png b/sources/skins/moono/icons/hidpi/subscript.png
new file mode 100644 (file)
index 0000000..d59e216
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/subscript.png differ
diff --git a/sources/skins/moono/icons/hidpi/superscript.png b/sources/skins/moono/icons/hidpi/superscript.png
new file mode 100644 (file)
index 0000000..2951416
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/superscript.png differ
diff --git a/sources/skins/moono/icons/hidpi/table.png b/sources/skins/moono/icons/hidpi/table.png
new file mode 100644 (file)
index 0000000..795e8c8
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/table.png differ
diff --git a/sources/skins/moono/icons/hidpi/templates-rtl.png b/sources/skins/moono/icons/hidpi/templates-rtl.png
new file mode 100644 (file)
index 0000000..0784b00
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/templates-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/templates.png b/sources/skins/moono/icons/hidpi/templates.png
new file mode 100644 (file)
index 0000000..0784b00
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/templates.png differ
diff --git a/sources/skins/moono/icons/hidpi/textarea-rtl.png b/sources/skins/moono/icons/hidpi/textarea-rtl.png
new file mode 100644 (file)
index 0000000..4bc1c06
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/textarea-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/textarea.png b/sources/skins/moono/icons/hidpi/textarea.png
new file mode 100644 (file)
index 0000000..8156e51
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/textarea.png differ
diff --git a/sources/skins/moono/icons/hidpi/textcolor.png b/sources/skins/moono/icons/hidpi/textcolor.png
new file mode 100644 (file)
index 0000000..42c5e4f
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/textcolor.png differ
diff --git a/sources/skins/moono/icons/hidpi/textfield-rtl.png b/sources/skins/moono/icons/hidpi/textfield-rtl.png
new file mode 100644 (file)
index 0000000..1d5970a
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/textfield-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/textfield.png b/sources/skins/moono/icons/hidpi/textfield.png
new file mode 100644 (file)
index 0000000..1d5970a
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/textfield.png differ
diff --git a/sources/skins/moono/icons/hidpi/uicolor.png b/sources/skins/moono/icons/hidpi/uicolor.png
new file mode 100644 (file)
index 0000000..dbd21ff
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/uicolor.png differ
diff --git a/sources/skins/moono/icons/hidpi/underline.png b/sources/skins/moono/icons/hidpi/underline.png
new file mode 100644 (file)
index 0000000..53302c6
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/underline.png differ
diff --git a/sources/skins/moono/icons/hidpi/undo-rtl.png b/sources/skins/moono/icons/hidpi/undo-rtl.png
new file mode 100644 (file)
index 0000000..fb25750
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/undo-rtl.png differ
diff --git a/sources/skins/moono/icons/hidpi/undo.png b/sources/skins/moono/icons/hidpi/undo.png
new file mode 100644 (file)
index 0000000..c8583ea
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/undo.png differ
diff --git a/sources/skins/moono/icons/hidpi/unlink.png b/sources/skins/moono/icons/hidpi/unlink.png
new file mode 100644 (file)
index 0000000..dc7fc78
Binary files /dev/null and b/sources/skins/moono/icons/hidpi/unlink.png differ
diff --git a/sources/skins/moono/icons/horizontalrule.png b/sources/skins/moono/icons/horizontalrule.png
new file mode 100644 (file)
index 0000000..513d193
Binary files /dev/null and b/sources/skins/moono/icons/horizontalrule.png differ
diff --git a/sources/skins/moono/icons/iframe.png b/sources/skins/moono/icons/iframe.png
new file mode 100644 (file)
index 0000000..2393ca5
Binary files /dev/null and b/sources/skins/moono/icons/iframe.png differ
diff --git a/sources/skins/moono/icons/image.png b/sources/skins/moono/icons/image.png
new file mode 100644 (file)
index 0000000..281dbc7
Binary files /dev/null and b/sources/skins/moono/icons/image.png differ
diff --git a/sources/skins/moono/icons/imagebutton.png b/sources/skins/moono/icons/imagebutton.png
new file mode 100644 (file)
index 0000000..e26854b
Binary files /dev/null and b/sources/skins/moono/icons/imagebutton.png differ
diff --git a/sources/skins/moono/icons/indent-rtl.png b/sources/skins/moono/icons/indent-rtl.png
new file mode 100644 (file)
index 0000000..23ab113
Binary files /dev/null and b/sources/skins/moono/icons/indent-rtl.png differ
diff --git a/sources/skins/moono/icons/indent.png b/sources/skins/moono/icons/indent.png
new file mode 100644 (file)
index 0000000..8c2ee08
Binary files /dev/null and b/sources/skins/moono/icons/indent.png differ
diff --git a/sources/skins/moono/icons/italic.png b/sources/skins/moono/icons/italic.png
new file mode 100644 (file)
index 0000000..0983afe
Binary files /dev/null and b/sources/skins/moono/icons/italic.png differ
diff --git a/sources/skins/moono/icons/justifyblock.png b/sources/skins/moono/icons/justifyblock.png
new file mode 100644 (file)
index 0000000..72164e7
Binary files /dev/null and b/sources/skins/moono/icons/justifyblock.png differ
diff --git a/sources/skins/moono/icons/justifycenter.png b/sources/skins/moono/icons/justifycenter.png
new file mode 100644 (file)
index 0000000..5721c9e
Binary files /dev/null and b/sources/skins/moono/icons/justifycenter.png differ
diff --git a/sources/skins/moono/icons/justifyleft.png b/sources/skins/moono/icons/justifyleft.png
new file mode 100644 (file)
index 0000000..0b1fa97
Binary files /dev/null and b/sources/skins/moono/icons/justifyleft.png differ
diff --git a/sources/skins/moono/icons/justifyright.png b/sources/skins/moono/icons/justifyright.png
new file mode 100644 (file)
index 0000000..f039348
Binary files /dev/null and b/sources/skins/moono/icons/justifyright.png differ
diff --git a/sources/skins/moono/icons/language.png b/sources/skins/moono/icons/language.png
new file mode 100644 (file)
index 0000000..dfa11fa
Binary files /dev/null and b/sources/skins/moono/icons/language.png differ
diff --git a/sources/skins/moono/icons/link.png b/sources/skins/moono/icons/link.png
new file mode 100644 (file)
index 0000000..2bf8900
Binary files /dev/null and b/sources/skins/moono/icons/link.png differ
diff --git a/sources/skins/moono/icons/maximize.png b/sources/skins/moono/icons/maximize.png
new file mode 100644 (file)
index 0000000..95427dc
Binary files /dev/null and b/sources/skins/moono/icons/maximize.png differ
diff --git a/sources/skins/moono/icons/newpage-rtl.png b/sources/skins/moono/icons/newpage-rtl.png
new file mode 100644 (file)
index 0000000..e88f7f4
Binary files /dev/null and b/sources/skins/moono/icons/newpage-rtl.png differ
diff --git a/sources/skins/moono/icons/newpage.png b/sources/skins/moono/icons/newpage.png
new file mode 100644 (file)
index 0000000..410eb50
Binary files /dev/null and b/sources/skins/moono/icons/newpage.png differ
diff --git a/sources/skins/moono/icons/numberedlist-rtl.png b/sources/skins/moono/icons/numberedlist-rtl.png
new file mode 100644 (file)
index 0000000..d40582d
Binary files /dev/null and b/sources/skins/moono/icons/numberedlist-rtl.png differ
diff --git a/sources/skins/moono/icons/numberedlist.png b/sources/skins/moono/icons/numberedlist.png
new file mode 100644 (file)
index 0000000..beaa1b2
Binary files /dev/null and b/sources/skins/moono/icons/numberedlist.png differ
diff --git a/sources/skins/moono/icons/outdent-rtl.png b/sources/skins/moono/icons/outdent-rtl.png
new file mode 100644 (file)
index 0000000..bd7bb34
Binary files /dev/null and b/sources/skins/moono/icons/outdent-rtl.png differ
diff --git a/sources/skins/moono/icons/outdent.png b/sources/skins/moono/icons/outdent.png
new file mode 100644 (file)
index 0000000..b48e099
Binary files /dev/null and b/sources/skins/moono/icons/outdent.png differ
diff --git a/sources/skins/moono/icons/pagebreak-rtl.png b/sources/skins/moono/icons/pagebreak-rtl.png
new file mode 100644 (file)
index 0000000..c8b22cc
Binary files /dev/null and b/sources/skins/moono/icons/pagebreak-rtl.png differ
diff --git a/sources/skins/moono/icons/pagebreak.png b/sources/skins/moono/icons/pagebreak.png
new file mode 100644 (file)
index 0000000..616dfcd
Binary files /dev/null and b/sources/skins/moono/icons/pagebreak.png differ
diff --git a/sources/skins/moono/icons/paste-rtl.png b/sources/skins/moono/icons/paste-rtl.png
new file mode 100644 (file)
index 0000000..beb842b
Binary files /dev/null and b/sources/skins/moono/icons/paste-rtl.png differ
diff --git a/sources/skins/moono/icons/paste.png b/sources/skins/moono/icons/paste.png
new file mode 100644 (file)
index 0000000..beb842b
Binary files /dev/null and b/sources/skins/moono/icons/paste.png differ
diff --git a/sources/skins/moono/icons/pastefromword-rtl.png b/sources/skins/moono/icons/pastefromword-rtl.png
new file mode 100644 (file)
index 0000000..234e660
Binary files /dev/null and b/sources/skins/moono/icons/pastefromword-rtl.png differ
diff --git a/sources/skins/moono/icons/pastefromword.png b/sources/skins/moono/icons/pastefromword.png
new file mode 100644 (file)
index 0000000..39afbe3
Binary files /dev/null and b/sources/skins/moono/icons/pastefromword.png differ
diff --git a/sources/skins/moono/icons/pastetext-rtl.png b/sources/skins/moono/icons/pastetext-rtl.png
new file mode 100644 (file)
index 0000000..7dffd18
Binary files /dev/null and b/sources/skins/moono/icons/pastetext-rtl.png differ
diff --git a/sources/skins/moono/icons/pastetext.png b/sources/skins/moono/icons/pastetext.png
new file mode 100644 (file)
index 0000000..f5aba32
Binary files /dev/null and b/sources/skins/moono/icons/pastetext.png differ
diff --git a/sources/skins/moono/icons/placeholder.png b/sources/skins/moono/icons/placeholder.png
new file mode 100644 (file)
index 0000000..8bd808a
Binary files /dev/null and b/sources/skins/moono/icons/placeholder.png differ
diff --git a/sources/skins/moono/icons/preview-rtl.png b/sources/skins/moono/icons/preview-rtl.png
new file mode 100644 (file)
index 0000000..a1402fb
Binary files /dev/null and b/sources/skins/moono/icons/preview-rtl.png differ
diff --git a/sources/skins/moono/icons/preview.png b/sources/skins/moono/icons/preview.png
new file mode 100644 (file)
index 0000000..256fa5a
Binary files /dev/null and b/sources/skins/moono/icons/preview.png differ
diff --git a/sources/skins/moono/icons/print.png b/sources/skins/moono/icons/print.png
new file mode 100644 (file)
index 0000000..e2fd5c3
Binary files /dev/null and b/sources/skins/moono/icons/print.png differ
diff --git a/sources/skins/moono/icons/radio.png b/sources/skins/moono/icons/radio.png
new file mode 100644 (file)
index 0000000..136e433
Binary files /dev/null and b/sources/skins/moono/icons/radio.png differ
diff --git a/sources/skins/moono/icons/redo-rtl.png b/sources/skins/moono/icons/redo-rtl.png
new file mode 100644 (file)
index 0000000..9e03f4a
Binary files /dev/null and b/sources/skins/moono/icons/redo-rtl.png differ
diff --git a/sources/skins/moono/icons/redo.png b/sources/skins/moono/icons/redo.png
new file mode 100644 (file)
index 0000000..f7119cb
Binary files /dev/null and b/sources/skins/moono/icons/redo.png differ
diff --git a/sources/skins/moono/icons/removeformat.png b/sources/skins/moono/icons/removeformat.png
new file mode 100644 (file)
index 0000000..4e74dfc
Binary files /dev/null and b/sources/skins/moono/icons/removeformat.png differ
diff --git a/sources/skins/moono/icons/replace.png b/sources/skins/moono/icons/replace.png
new file mode 100644 (file)
index 0000000..9597eb1
Binary files /dev/null and b/sources/skins/moono/icons/replace.png differ
diff --git a/sources/skins/moono/icons/save.png b/sources/skins/moono/icons/save.png
new file mode 100644 (file)
index 0000000..97635c8
Binary files /dev/null and b/sources/skins/moono/icons/save.png differ
diff --git a/sources/skins/moono/icons/scayt.png b/sources/skins/moono/icons/scayt.png
new file mode 100644 (file)
index 0000000..46d7570
Binary files /dev/null and b/sources/skins/moono/icons/scayt.png differ
diff --git a/sources/skins/moono/icons/select-rtl.png b/sources/skins/moono/icons/select-rtl.png
new file mode 100644 (file)
index 0000000..33dd89d
Binary files /dev/null and b/sources/skins/moono/icons/select-rtl.png differ
diff --git a/sources/skins/moono/icons/select.png b/sources/skins/moono/icons/select.png
new file mode 100644 (file)
index 0000000..c3d89cc
Binary files /dev/null and b/sources/skins/moono/icons/select.png differ
diff --git a/sources/skins/moono/icons/selectall.png b/sources/skins/moono/icons/selectall.png
new file mode 100644 (file)
index 0000000..a4cff3d
Binary files /dev/null and b/sources/skins/moono/icons/selectall.png differ
diff --git a/sources/skins/moono/icons/showblocks-rtl.png b/sources/skins/moono/icons/showblocks-rtl.png
new file mode 100644 (file)
index 0000000..6f391b1
Binary files /dev/null and b/sources/skins/moono/icons/showblocks-rtl.png differ
diff --git a/sources/skins/moono/icons/showblocks.png b/sources/skins/moono/icons/showblocks.png
new file mode 100644 (file)
index 0000000..0b240e8
Binary files /dev/null and b/sources/skins/moono/icons/showblocks.png differ
diff --git a/sources/skins/moono/icons/smiley.png b/sources/skins/moono/icons/smiley.png
new file mode 100644 (file)
index 0000000..e7607ca
Binary files /dev/null and b/sources/skins/moono/icons/smiley.png differ
diff --git a/sources/skins/moono/icons/source-rtl.png b/sources/skins/moono/icons/source-rtl.png
new file mode 100644 (file)
index 0000000..c734db6
Binary files /dev/null and b/sources/skins/moono/icons/source-rtl.png differ
diff --git a/sources/skins/moono/icons/source.png b/sources/skins/moono/icons/source.png
new file mode 100644 (file)
index 0000000..004e73b
Binary files /dev/null and b/sources/skins/moono/icons/source.png differ
diff --git a/sources/skins/moono/icons/sourcedialog-rtl.png b/sources/skins/moono/icons/sourcedialog-rtl.png
new file mode 100644 (file)
index 0000000..c734db6
Binary files /dev/null and b/sources/skins/moono/icons/sourcedialog-rtl.png differ
diff --git a/sources/skins/moono/icons/sourcedialog.png b/sources/skins/moono/icons/sourcedialog.png
new file mode 100644 (file)
index 0000000..004e73b
Binary files /dev/null and b/sources/skins/moono/icons/sourcedialog.png differ
diff --git a/sources/skins/moono/icons/specialchar.png b/sources/skins/moono/icons/specialchar.png
new file mode 100644 (file)
index 0000000..4dafefd
Binary files /dev/null and b/sources/skins/moono/icons/specialchar.png differ
diff --git a/sources/skins/moono/icons/spellchecker.png b/sources/skins/moono/icons/spellchecker.png
new file mode 100644 (file)
index 0000000..46d7570
Binary files /dev/null and b/sources/skins/moono/icons/spellchecker.png differ
diff --git a/sources/skins/moono/icons/strike.png b/sources/skins/moono/icons/strike.png
new file mode 100644 (file)
index 0000000..8007832
Binary files /dev/null and b/sources/skins/moono/icons/strike.png differ
diff --git a/sources/skins/moono/icons/subscript.png b/sources/skins/moono/icons/subscript.png
new file mode 100644 (file)
index 0000000..89e8bf4
Binary files /dev/null and b/sources/skins/moono/icons/subscript.png differ
diff --git a/sources/skins/moono/icons/superscript.png b/sources/skins/moono/icons/superscript.png
new file mode 100644 (file)
index 0000000..1a269c6
Binary files /dev/null and b/sources/skins/moono/icons/superscript.png differ
diff --git a/sources/skins/moono/icons/table.png b/sources/skins/moono/icons/table.png
new file mode 100644 (file)
index 0000000..f29d051
Binary files /dev/null and b/sources/skins/moono/icons/table.png differ
diff --git a/sources/skins/moono/icons/templates-rtl.png b/sources/skins/moono/icons/templates-rtl.png
new file mode 100644 (file)
index 0000000..0ebeb55
Binary files /dev/null and b/sources/skins/moono/icons/templates-rtl.png differ
diff --git a/sources/skins/moono/icons/templates.png b/sources/skins/moono/icons/templates.png
new file mode 100644 (file)
index 0000000..0ebeb55
Binary files /dev/null and b/sources/skins/moono/icons/templates.png differ
diff --git a/sources/skins/moono/icons/textarea-rtl.png b/sources/skins/moono/icons/textarea-rtl.png
new file mode 100644 (file)
index 0000000..6ae1560
Binary files /dev/null and b/sources/skins/moono/icons/textarea-rtl.png differ
diff --git a/sources/skins/moono/icons/textarea.png b/sources/skins/moono/icons/textarea.png
new file mode 100644 (file)
index 0000000..4edac92
Binary files /dev/null and b/sources/skins/moono/icons/textarea.png differ
diff --git a/sources/skins/moono/icons/textcolor.png b/sources/skins/moono/icons/textcolor.png
new file mode 100644 (file)
index 0000000..48ed589
Binary files /dev/null and b/sources/skins/moono/icons/textcolor.png differ
diff --git a/sources/skins/moono/icons/textfield-rtl.png b/sources/skins/moono/icons/textfield-rtl.png
new file mode 100644 (file)
index 0000000..a0564ea
Binary files /dev/null and b/sources/skins/moono/icons/textfield-rtl.png differ
diff --git a/sources/skins/moono/icons/textfield.png b/sources/skins/moono/icons/textfield.png
new file mode 100644 (file)
index 0000000..a0564ea
Binary files /dev/null and b/sources/skins/moono/icons/textfield.png differ
diff --git a/sources/skins/moono/icons/uicolor.png b/sources/skins/moono/icons/uicolor.png
new file mode 100644 (file)
index 0000000..b633a3c
Binary files /dev/null and b/sources/skins/moono/icons/uicolor.png differ
diff --git a/sources/skins/moono/icons/underline.png b/sources/skins/moono/icons/underline.png
new file mode 100644 (file)
index 0000000..2ac6fb7
Binary files /dev/null and b/sources/skins/moono/icons/underline.png differ
diff --git a/sources/skins/moono/icons/undo-rtl.png b/sources/skins/moono/icons/undo-rtl.png
new file mode 100644 (file)
index 0000000..f7119cb
Binary files /dev/null and b/sources/skins/moono/icons/undo-rtl.png differ
diff --git a/sources/skins/moono/icons/undo.png b/sources/skins/moono/icons/undo.png
new file mode 100644 (file)
index 0000000..4c80228
Binary files /dev/null and b/sources/skins/moono/icons/undo.png differ
diff --git a/sources/skins/moono/icons/unlink.png b/sources/skins/moono/icons/unlink.png
new file mode 100644 (file)
index 0000000..8a4c84d
Binary files /dev/null and b/sources/skins/moono/icons/unlink.png differ
diff --git a/sources/skins/moono/images/anchor.png b/sources/skins/moono/images/anchor.png
new file mode 100644 (file)
index 0000000..1c802f5
Binary files /dev/null and b/sources/skins/moono/images/anchor.png differ
index 6a04ab5275b321ce911c4e1416df7e0184d05f51..2d0297731b2551c8463233b7190f92f01682f0e8 100644 (file)
Binary files a/sources/skins/moono/images/close.png and b/sources/skins/moono/images/close.png differ
diff --git a/sources/skins/moono/images/hidpi/anchor.png b/sources/skins/moono/images/hidpi/anchor.png
new file mode 100644 (file)
index 0000000..17cca97
Binary files /dev/null and b/sources/skins/moono/images/hidpi/anchor.png differ
index e406c2c35ba11a410291fe484d5bb406657b62eb..de4eedf6572063a79d9a3ed21479e20d0e83532b 100644 (file)
Binary files a/sources/skins/moono/images/hidpi/close.png and b/sources/skins/moono/images/hidpi/close.png differ
index edbd12f3bdc10a969f350a8c482f92c224d1c466..594f0d3394355b3eeafdd9969023066a9c871a55 100644 (file)
Binary files a/sources/skins/moono/images/hidpi/lock-open.png and b/sources/skins/moono/images/hidpi/lock-open.png differ
index 1b87bbb7a14ceac0e259d75bdbc03365f01e9acf..1e23a0b2d9d529ef2c443753551521d45261b37f 100644 (file)
Binary files a/sources/skins/moono/images/hidpi/lock.png and b/sources/skins/moono/images/hidpi/lock.png differ
index c6c2b86e6d1cd21bd352a54321ae13100b78e581..42d94a91ac7ebe5ac3422bb025f70ee54379b71a 100644 (file)
Binary files a/sources/skins/moono/images/hidpi/refresh.png and b/sources/skins/moono/images/hidpi/refresh.png differ
index 04769877aa6d074e476f9560638d06cb158aaf1b..7d24c5f81db13b35cadeaea2a54f79f7bf8e0e3b 100644 (file)
Binary files a/sources/skins/moono/images/lock-open.png and b/sources/skins/moono/images/lock-open.png differ
index c5a14400d5ddfe1c564c7c93799c24d03f0e9618..8baeaa4b885a20881936df3272c52a99de7692f5 100644 (file)
Binary files a/sources/skins/moono/images/lock.png and b/sources/skins/moono/images/lock.png differ
index 1ff63c3090ab7dc443a74be76c1d7b52fabb71d4..d8106b032f5a279922b5079629ef9de6232121d4 100644 (file)
Binary files a/sources/skins/moono/images/refresh.png and b/sources/skins/moono/images/refresh.png differ
index 57bc309c9e6be7da6e6b1e3cdff38b255c260cff..6ad85efa15896f28305eee94af0092b0dbacdd62 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 671e01ee72a3b21c6d792cf6acf6cb3880f1b8af..0c1ab59d0568f28a4d969099354ad6e70367a644 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
@@ -133,6 +133,12 @@ Special outer level classes used in this file:
        vertical-align: middle;\r
 }\r
 \r
+/* Keyboard shortcut placed next to the label. */\r
+.cke_menubutton_shortcut\r
+{\r
+       color: #979797;\r
+}\r
+\r
 .cke_menubutton_disabled .cke_menubutton_label\r
 {\r
        /* Greyed label text indicates a disabled menu item. */\r
index 9a25f765c2e3b8568f3e7022b3aae9f8fbb2e89e..659fef78cef4332f25d546dc663c318ff64a4220 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index e38702a5c772980b68eb00974bb015b52df63d7f..b1f457f3ee44341186b08d7abe2bf8d24e6e8e1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 3f4881eb44e0d76fef55ee65088280dfe6ab8f3a..2d06debb503538dd5ae0db26d937f52c5725e78e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index fc9a5449557cf9f66efa1d1efd2534bfb91d6683..4a4ed6b2b8bd8e21bb2b5b6675a6e88450ac32f1 100644 (file)
@@ -1,8 +1,8 @@
 "Moono" Skin\r
 ====================\r
 \r
-This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor\r
-[skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
+This skin has been chosen for the **default skin** of CKEditor 4.x (replaced by "Moono-lisa" skin since CKEditor 4.6.0),\r
+elected from the CKEditor [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by\r
 the CKEditor team. "Moono" is maintained by the core developers.\r
 \r
 For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)\r
@@ -44,6 +44,6 @@ Other parts:
 License\r
 -------\r
 \r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 \r
 For licensing, see LICENSE.md or [http://ckeditor.com/license](http://ckeditor.com/license)\r
index 169308d0120666f7cda7bd635284e282bb8657fd..d64bf8230e7e6318512a339aef32802d0bd06ab7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 103225e2775f9a24a0b67421c88d2de71f50db4e..7897a66921b5e10d20a77dcab87ad41158b28d36 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 6dbdaa933348716bf2198fbd55c942c59eb0b51c..420b22ecdaba45e029bf19d1e047a2f89505439b 100644 (file)
@@ -1,5 +1,5 @@
 /**\r
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
  * For licensing, see LICENSE.md or http://ckeditor.com/license\r
  */\r
 \r
@@ -276,9 +276,6 @@ CKEDITOR.skin.chameleon = ( function() {
 // ----------------------------------------------------------\r
 // (http://docs.cksource.com/CKEditor_4.x/Skin_SDK/Icons)\r
 //\r
-// Note: As "moono" is the default CKEditor skin, it provides no custom icons,\r
-// thus this code is commented out.\r
-//\r
 // This code is here just to make the skin work fully when using its "source"\r
 // version. Without this, the skin will still work, but its icons will not be\r
 // used (again, on source version only).\r
@@ -291,29 +288,29 @@ CKEDITOR.skin.chameleon = ( function() {
 // If a required icon is not available here, the plugin defined icon will be\r
 // used instead. This means that a skin is not required to provide all icons.\r
 // Actually, it is not required to provide icons at all.\r
-//\r
-// (function() {\r
-//             // The available icons. This list must match the file names (without\r
-//             // extension) available inside the "icons" folder.\r
-//             var icons = ( 'about,anchor-rtl,anchor,bgcolor,bidiltr,bidirtl,blockquote,' +\r
-//                     'bold,bulletedlist-rtl,bulletedlist,button,checkbox,copy-rtl,copy,' +\r
-//                     'creatediv,cut-rtl,cut,docprops-rtl,docprops,find-rtl,find,flash,form,' +\r
-//                     'hiddenfield,horizontalrule,icons,iframe,image,imagebutton,indent-rtl,' +\r
-//                     'indent,italic,justifyblock,justifycenter,justifyleft,justifyright,' +\r
-//                     'link,maximize,newpage-rtl,newpage,numberedlist-rtl,numberedlist,' +\r
-//                     'outdent-rtl,outdent,pagebreak-rtl,pagebreak,paste-rtl,paste,' +\r
-//                     'pastefromword-rtl,pastefromword,pastetext-rtl,pastetext,preview-rtl,' +\r
-//                     'preview,print,radio,redo-rtl,redo,removeformat,replace,save,scayt,' +\r
-//                     'select-rtl,select,selectall,showblocks-rtl,showblocks,smiley,' +\r
-//                     'source-rtl,source,specialchar,spellchecker,strike,subscript,' +\r
-//                     'superscript,table,templates-rtl,templates,textarea-rtl,textarea,' +\r
-//                     'textcolor,textfield-rtl,textfield,uicolor,underline,undo-rtl,undo,unlink' ).split( ',' );\r
-//\r
-//             var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' + ( CKEDITOR.env.hidpi ? 'hidpi/' : '' ) );\r
-//\r
-//             for ( var i = 0; i < icons.length; i++ ) {\r
-//                     CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );\r
-//             }\r
-// })();\r
+\r
+function() {\r
+       // The available icons. This list must match the file names (without\r
+       // extension) available inside the "icons" folder.\r
+       var icons = ( 'about,anchor-rtl,anchor,bgcolor,bidiltr,bidirtl,blockquote,' +\r
+               'bold,bulletedlist-rtl,bulletedlist,button,checkbox,copy-rtl,copy,copyformatting,' +\r
+               'creatediv,cut-rtl,cut,docprops-rtl,docprops,find-rtl,find,flash,form,' +\r
+               'hiddenfield,horizontalrule,icons,iframe,image,imagebutton,indent-rtl,' +\r
+               'indent,italic,justifyblock,justifycenter,justifyleft,justifyright,' +\r
+               'link,maximize,newpage-rtl,newpage,numberedlist-rtl,numberedlist,' +\r
+               'outdent-rtl,outdent,pagebreak-rtl,pagebreak,paste-rtl,paste,' +\r
+               'pastefromword-rtl,pastefromword,pastetext-rtl,pastetext,preview-rtl,' +\r
+               'preview,print,radio,redo-rtl,redo,removeformat,replace,save,scayt,' +\r
+               'select-rtl,select,selectall,showblocks-rtl,showblocks,smiley,' +\r
+               'source-rtl,source,specialchar,spellchecker,strike,subscript,' +\r
+               'superscript,table,templates-rtl,templates,textarea-rtl,textarea,' +\r
+               'textcolor,textfield-rtl,textfield,uicolor,underline,undo-rtl,undo,unlink' ).split( ',' );\r
+\r
+       var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' + ( CKEDITOR.env.hidpi ? 'hidpi/' : '' ) );\r
+\r
+       for ( var i = 0; i < icons.length; i++ ) {\r
+               CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );\r
+       }\r
+)();\r
 \r
 // %REMOVE_END%\r
index 013afa034d0f6b3f06c9e86d2df7631b87e09d1e..a5d32d401d6ea0b0d4755a4766869941d16f72c2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.md or http://ckeditor.com/license\r
 */\r
 \r
index 5c50ef44834c0ae20531060095d75513ff8d8f81..dd9680ed6eff61fcb90819d715cf2a72c80754c4 100644 (file)
@@ -1,22 +1,24 @@
 /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  * For licensing, see LICENSE.md or http://ckeditor.com/license
  */
 
 // This file contains style definitions that can be used by CKEditor plugins.
 //
-// The most common use for it is the "stylescombo" plugin, which shows a combo
-// in the editor toolbar, containing all styles. Other plugins instead, like
-// the div plugin, use a subset of the styles on their feature.
+// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down
+// list containing all styles in the editor toolbar. Other plugins, like
+// the "div" plugin, use a subset of the styles for their features.
 //
-// If you don't have plugins that depend on this file, you can simply ignore it.
-// Otherwise it is strongly recommended to customize this file to match your
+// If you do not have plugins that depend on this file in your editor build, you can simply
+// ignore it. Otherwise it is strongly recommended to customize this file to match your
 // website requirements and design properly.
+//
+// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules
 
 CKEDITOR.stylesSet.add( 'default', [
-       /* Block Styles */
+       /* Block styles */
 
-       // These styles are already available in the "Format" combo ("format" plugin),
+       // These styles are already available in the "Format" drop-down list ("format" plugin),
        // so they are not needed here by default. You may enable them to avoid
        // placing the "Format" combo in the toolbar, maintaining the same features.
        /*
@@ -43,11 +45,11 @@ CKEDITOR.stylesSet.add( 'default', [
                }
        },
 
-       /* Inline Styles */
+       /* Inline styles */
 
        // These are core styles available as toolbar buttons. You may opt enabling
-       // some of them in the Styles combo, removing them from the toolbar.
-       // (This requires the "stylescombo" plugin)
+       // some of them in the Styles drop-down list, removing them from the toolbar.
+       // (This requires the "stylescombo" plugin.)
        /*
        { name: 'Strong',                       element: 'strong', overrides: 'b' },
        { name: 'Emphasis',                     element: 'em'   , overrides: 'i' },
@@ -77,22 +79,22 @@ CKEDITOR.stylesSet.add( 'default', [
        { name: 'Language: RTL',        element: 'span', attributes: { 'dir': 'rtl' } },
        { name: 'Language: LTR',        element: 'span', attributes: { 'dir': 'ltr' } },
 
-       /* Object Styles */
+       /* Object styles */
 
        {
-               name: 'Styled image (left)',
+               name: 'Styled Image (left)',
                element: 'img',
                attributes: { 'class': 'left' }
        },
 
        {
-               name: 'Styled image (right)',
+               name: 'Styled Image (right)',
                element: 'img',
                attributes: { 'class': 'right' }
        },
 
        {
-               name: 'Compact table',
+               name: 'Compact Table',
                element: 'table',
                attributes: {
                        cellpadding: '5',
@@ -106,7 +108,31 @@ CKEDITOR.stylesSet.add( 'default', [
        },
 
        { name: 'Borderless Table',             element: 'table',       styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
-       { name: 'Square Bulleted List', element: 'ul',          styles: { 'list-style-type': 'square' } }
+       { name: 'Square Bulleted List', element: 'ul',          styles: { 'list-style-type': 'square' } },
+
+       /* Widget styles */
+
+       { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
+       { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },
+
+       { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
+
+       { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },
+
+       { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },
+       { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },
+       { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },
+       { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },
+       { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },
+
+       // Adding space after the style name is an intended workaround. For now, there
+       // is no option to create two styles with the same name for different widget types. See http://dev.ckeditor.com/ticket/16664.
+       { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },
+       { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },
+       { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },
+       { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },
+       { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }
+
 ] );
 
 // %LEAVE_UNMINIFIED% %REMOVE_LINE%